Jump to content
php.lv forumi

Ielogošanās / reģistrēšanās sistēma


daGrevis

Recommended Posts

Labrīt,

Es savām vajadzībām, vairāk jau treniņam, veidoju reģistrācijas sistēmu.

Saskāros ar problēmu, ka, ja lietotājs, ielogošanās procesā, ir atķeksējis 'Remember me!', tiek izveidoti cepumi, lai pēc tam lietotājs, kad pārlūks jau būtu haotiski vērts vaļā un ciet 10'iem reižu, atkal būtu ielogojies. Tik tāl vēl nav problēma, nē... :D Viss standartā balstās uz sesijām, un tagad rodās jautājums. Ja skripts konstatē, ka sesiju nav, bet ir cepumi, skriptam "turpināt dzīvot", tas ir darboties uz cepumiem, vai kaut kā definēt sesijas, lai viņš standartā atkal darbotos uz sesijām... Ko sakāt? :)

Un jā, šo problēmu konstatēju, jo 'index.php' lapā biju uzrakstījis...

 

<?php echo $_SESSION['user__username']; ?>

 

Un nez kā tas varētu darboties, ja nav sesijas, bet ir cepumi... :D

Link to comment
Share on other sites

Nu protams pastāv vēl tāds variants, kas liekas stulbs... :D

 

<?php

if(isSet($_SESSION['user__username'])) {

echo $_SESSION['user__username'];

} else {

echo $_COOKIE['user__username'];

}

?>

Link to comment
Share on other sites

Nesapratu.

 

Nevar būt sesijas, ja nav cepumi (nu var būt, bet tad tur kabinās saitēm klāt sesid).

 

Cepumā tiek glabāt sesijas identifikators, kas norāda, ka šim lietotājam ir šī attiecīgā sesija. (Tāpēc, ja kāds tev nozags cepumu, viņš var uzdoties par tevis, cerams, ka to zini. Pagūglē: "session hijacking")

 

Nezinu vai sesijā vajag glabāt daudz lietotāja datus, jo var vienkārši galbāt kaut kādu vienu lietotāja ID un pēc tā atlasīt vajadzīgos datus.

 

Ņem vērā, ka cepumiem lietotājs pats var piekļūt, labot kā tīk, bet sessijas datiem nevar, jo tie glabājas uz servera.

Link to comment
Share on other sites

Nu varbūt nepareizi izteicos.

 

Vai nu es glabāju lietotājvārdu un hešotu paroli cepumos (divos), ja ir aktivizēta "Remember me!" funkcija, vai nu ir leiotājvārds glabāts sesijā.

 

Es laikam daru ko hroniski nepareizi... :D

Link to comment
Share on other sites

Ja ir cepumi

Ja ir
uzstādīta sesija, pārbaudam, vai viņa nav viltota (vai nav zagta). Viss ok, turpinam darbu.

Ja nav
uzstādīta sesija, uzstādam, ielasam datus, turpinam darbu.

Nav cepumi ->

Paziņojam, ka tālāk bez cepumiem nav ko darīt :)

Ja ir Remember me, uzliekam sesijas identifikatora cepumam lielāku taimautu (defaultā viņš ir līdz pārlūka aizvēršanas brīdim, tad dzēšas cepums)

Gūglē pēc šī: php session cookie timeout

 

 

Paroli nebūtu prātīgi glabāt cepumā. Vispār neko vērtīgu cepumos nevar glabāt, jo kā teicu, lietotājs to var brīvi rediģēt utt.

Sesijā ieteicams vēl glabāt teiksim, lietotāja USER_AGENT, lai pārbaudīt, vai šī sesija nav zagta.

Edited by briedis
Link to comment
Share on other sites

Ja ir cepumi

Ja ir
uzstādīta sesija, pārbaudam, vai viņa nav viltota (vai nav zagta). Viss ok, turpinam darbu.

Ja nav
uzstādīta sesija, uzstādam, ielasam datus, turpinam darbu.

 

Sesijā glabājās SID? :)

Link to comment
Share on other sites

Ja ir cepumi

Ja ir
uzstādīta sesija, pārbaudam, vai viņa nav viltota (vai nav zagta). Viss ok, turpinam darbu.

Ja nav
uzstādīta sesija, uzstādam, ielasam datus, turpinam darbu.

Nav cepumi ->

Paziņojam, ka tālāk bez cepumiem nav ko darīt :)

 

Vai loģiskāk nebūtu:

 

Ja ir sesija{viss ok, turpinam darbu sistēmā}

Ja nav sesija{
a. ja atrod cepumu, veido sesiju.. paliekam sistēmā
// vai..
b. ja nav cepuma, prasam autorizēties
}

Edited by pilots
Link to comment
Share on other sites

Nu to es arī prasīju... Vienkārši nemācēju izteikties...

 

ja atrod cepumu, veido sesiju.. paliekam sistēmā

 

Vai palikt un darboties uz cepumiem, vai veidot sesiju...

 

Paldies. Tomēr nekas nav tik hroniski nepareizi! :)

Link to comment
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...