Jump to content
php.lv forumi

Problēma Login script


Recommended Posts

Dabūju gatava login script,bet man met error ārā visu laiku

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at I:\xampp\htdocs\forum\login.php:1) in I:\xampp\htdocs\forum\login.php  on line 2

Links uz koda

Link to post
Share on other sites

Nav pa tēmu atradu un pārtaisīju vienu script

Reku links

Man visu laiku prasa "Jūs nēsat ielogojies lai labotu profilu!!!"

Kas īsti jāraksta

$q = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id = '".intval($_COOKIE['Kas te īsti jāraksta'])."'"));

Man datubāzes saturs ir

id vai username to īsti neesmu sapratis

es jau divas nedēļas mācos php tapēcs visu vel nezinu,bet mēģinu vel apgūt visu.

Link to post
Share on other sites

Ja tu tiešām gribi PHP mācīties , tad tev vajadzētu vispirms pašam savu kodu rakstīt un

skatīties "kas notiek" pirms mēģini iebraukt svešos darbos.

 

Anyway, tu zini kas $_COOKIES vispār atrodas iekšā un ko tas dara ?

Link to post
Share on other sites

Es tev ieteiktu metodi kā iesākt mācīties sekojošu:

 

1. Etaps - Izplāno ko tu gribi uztaisīt un loģiski padomā variantu (spēles veidā ar cilvēkiem - iedomātiem) kā tu varētu uztaisīt to ko vēlies.

2. Etaps - Uzliec to plānu uz papīra un paskaties vai tas ir loģiski izpildāms un vai gadījumā tur kaut ko nevar optimizēt.

3. Etaps - Izskaidro šo plānu kādam (var arī sev, bet galvenais, lai tu saproti pats gana labi ko tu gribi izdarīt un kā) tā lai tas to saprot...

4. Etaps - Sāc rakstīt un risini savas problēmas sekojošā secībā:

- Jautājums php.net lapai

- Jautājums google.com - un nevis 1. lapa un viss, bet kādas 5 stundas pasercho...

- Forumi - izlasi no sākuma citu postus un ja neatrod neko piemērotu vai nekas neuzvedina uz idejām uzdod savu postu... Raksti postu pēc ievadot visu ar paraugiem un sīki smalki paskaidrojot ko tu kā un kāpēc tā gribi darīt. Vēlāk pēdējo jautājumu vari neatbildēt (jo tas var ietvert informāciju, kuru negribi dot citiem), bet sākumā vitāli vajag, lai citi tev var pilnvērtīgi palīdzēt...

5. Etaps - notestē visu ko esi uztaisījis un iedod kādam citam paskatīties (ne forumos - tas var besīt).

* Rakstot kodu vienmēr komentē ko tu ar to gribēji izdarīt. Marazmā nevajag aiziet, bet jo vairāk komentēsi jo labāk pašam un citiem, kas tev palīdzēs, kad tu piemēram peistosi kodu iekšā, lai atrod tev bugus...

 

Ja kādi jautājumi vari prasīt arī man...

 

Piemērs šiem etapiem tavai problēmai

 

1. Etaps - Nepieciešams, lai durvju sargs iegaumē visus, kas ir ienākuši pēc kaut kāda parametra. Tātad durvju sargs uzraksta cilvēka vārdu uz lapiņas un atņem viņam cepuri(ID) un noliek plauktiņā(atmiņā) pie citām cepurēm. Cilvēks nākot iekšā pienāk pie durvju sarga un pasaka savu vārdu, slepeno frāzi, kas ļauj iekļūt klubā un atdod cepuri (submit). Pie izlogošanās cilvēks pienāk un savāc savu cepuri un durvju sargs zinot, ka cepures vairs nav zin arī to, ka cilvēka vairs nav klubā (sistēmā).

2. Zīmēt te nevaru, bet ideja vienkārša. Ievada username un password un salīdzina tos ar to kas ir datubāzē. Ja tāda lietotāja nav atgriež, ka tāda lietotāja nav. Ja ir lietotājs, bet nepareiza parole, tad atgriež ka nepareiza parole. Ja lietotājs ir un parole ir pareiza, tad $_SESSION globālo mainīgo masīvs iegaumē visu, ko tev var projekta laikā vajadzēt izmantot no lietotāja. Visoptimālāk ir iegaumēt ID kas ir lietotājam un varbūt vēl vārdu un uzvārdu, bet ja tev ir ID tad visu var dabūt no datu bāzēm. (Ceru, ka zini, kas ir HTML un $_POST un $_GET globālie masīvi? Ja nē interesējies manis noradītajā problēmu secībā par to kas tas ir).

3. - 4. man nebūs nepieciešams šinī gadījumā

5. Etaps šeit tiks izpildīts ar darbību secību izklāstu php valodā:

 

<?php
// Piestartējam iespēju lietot $_SESSION globālo masīvu
session_start();
// Nosakām vai lietotājs un parole pareizi ievadīti un pasakam sesijai, ka ir kaut kāds ID
if($_POST['lietotajs']=='admin' and $_POST['parole']=='parole'){$_SESSION['id']==1;}

// Visur, kur nepieciešams nelaist bez paroles 1. rindiņā var likt piemēram šādi
if($_SESSION['id']!=1){die('Jums pieeja ir liegta!');}
?>

 

Manis rakstītais kods nav kods, kas strādā tas tikai skaidro darbību secību.

Sesijas pašā iesākumā nepūderēšu smadzenes, bet šādi, ka esmu uzrakstījis nav diez ko prātīgi organizēt sesijas. Labāk tās dalīt apakšmasīvos un veidot kokveida sistēmu, lai vajadzības gadījumā vēlāk kad vairāk rubīsi vari lietot tādu foršu lietu kā sesiju atcerēšanos un glabāšanu datu bāzēs, lai cilvēki priecīgāki, kad nākamreiz ienāk sistēmā...

 

Ceru, ka drusku paskaidroju kā būtu forši mācīties un ietu daudz vieglāk - kā arī atsaucīgāki būs cilvēki forumos...

 

 

 

 

 

Koments pārējiem, kas rubī:

1. zinu, ka ne pa tēmu, bet tomēr a ja nu noder ;)

2. pieņemu, ka metodikai + - piekritīsiet...

3. besī, ja cilvēki neiedziļinās otra cilvēka problēmā un nemēģina palīdzēt kā vien var, tāpēc centos ne tikai iemest tizlu risinājumu, kas piemēram strādātu anyway viņam (tur nezinu ar entajiem liekajiem ifiem, lai jebkurā gadījumā iet, ja vien ir apacis un PHP) kā daļa dara vai arī kā lielākā daļa vienkārši pušplēsta frāze vai vispār nodirsiens, bet iemetu skaidrojumu pēc kura viņš ne tikai šādu skriptu uztaisīs, kuru izskaidroju, bet entos citus...

 

Remember PHP is a never ending story! Just keep reading the fucking manual! :)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...