Jump to content
php.lv forumi

Vajag ielikt cookies sava login sistema


dAivEd

Recommended Posts

Rekur mana login sistema, man vajag pievienot pie vinjas cookies, lai katru reiz kad ienaak nebutu jaraksta NIKS un PAROLE,

 

 

if(mysql_result($result,0,'COUNT(*)') == 1)	 <------------ Tipa pirms shita te visa vinsh teste datubaze vai ir tads lietotajs
{
$_SESSION['id'] = $id;
setcookie("id", $id);									  <---- REKUR ES MEGINAJU IELIKT PATS BET NESANAK
setcookie("nick", $nick);								-||-
setcookie("password", $password);				-||-
$laiks = "+15 mins";
$time = date('Y-m-d H:i:s', strtotime("$laiks", strtotime(date("Y-m-d H:i:s"))));
mysql_query("UPDATE users SET last_login = '$time' WHERE id = '$id'");
mysql_query("UPDATE `users` SET `online` = 'y' WHERE `id` = '$id'");
header("location: index.php?page=$page");

}
else

{
  header("location: index.php?err=1");
}
}


if(!isset($_SESSION['id']))
{
echo "

<form method=post action=login.php?action=login>
<table>

<tr><td>Niks:</td><td><input type=text name=nick /></td></tr>
<tr><td>Parole:</td><td><input type=password name=password /></td></tr>
	<tr><td></td><td><input type=submit value=Ielogoties /></td></tr>

</table>
</form>

";

}

TALAAAK IET TIPA, JA IR SESSIJA TAD RAADA MENU

 

 

Ja kads zin luudzu palidziet :) Paldies!

Edited by dAivEd
Link to comment
Share on other sites

kukijam vajag norādīt arī laiku, pameklē tač guglē kā pareizi jātaisa kukījs LOLiķi!

tak es noraadu vienalga nekas nenotiek tipa time() +3600 pec mainiga $value, tipa cookies saglabajas es skatijos, bet vienalga ieeju un raada LOGIN un PAROLE

Edited by dAivEd
Link to comment
Share on other sites

Personīgi es daru šādi.

 

Pie ielogošanās es uzgenerēju randomā 10 ciparu garu kodu kuru ievietoju lietotāja tabulā. Un taisu 2 cookijus, vienā lietotaajaid un otraa uzgenerēto kodu.

 

Pie izlogošanās uzgenerēto kodu nodzēšu.

 

Katra php faila sākumā lieku includi ar cookie pārbaudi.. Ja ir kookijs, tad pārbaudam vai sakrīt lietotāja id un lietotāja kods, ja jā tad ielogojamies..

Link to comment
Share on other sites

Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā:

 

md5(lietotājaId + lietotāja_ip_adrese + slepenais hash)

 

Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās.

Edited by black
Link to comment
Share on other sites

Var, protams. Tas ir gaumes jautājums. Lielākām lapām varētu būt problēmas - ja sesijai expire uzliksi, teiksim, 2 nedēļas, un lapai ir pāris miljoni apmeklētāju, tad vajadzēs makten daudz vietas uz diska, kur sesijas tiks glabātas. Tas, protams, pieņemot, ka sesijā tiek likti arī citi dati.

Edited by black
Link to comment
Share on other sites

Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā:

 

md5(lietotājaId + lietotāja_ip_adrese + slepenais hash)

 

Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās.

 

 

Tieši tā..! :)

Link to comment
Share on other sites

Labums ir tāds, ka tajā speciālājā cepumiņā var iekodēt arī papildus informāciju. To veidojam apmēram tā:

 

md5(lietotājaId + lietotāja_ip_adrese + slepenais hash)

 

Un, tā kā tiek izmantota IP adrese (var vēl pielikt browsera id), tad to izmantot uz citas sistēmas jau būs drusku grūtāk. Šo variantu parasti izmanto, lai supportētu 'remember me on this computer' pie ielogošanās.

A ja es lietotāju paroles aizkodēju tikai ar md5, es varu slepenā hash vietā izmantot šo fciju, kas ģenerē rand kodu?

 

function createRandomPassword() {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '';
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}

un tad mans kukījs izstītos:

 

md5(lietotājaId + lietotāja_ip_adrese + createRandomPassword())

 

Tas būtu pietiekami droši?

Link to comment
Share on other sites

"md5(lietotājaId + lietotāja_ip_adrese + createRandomPassword())" diez vai derees - ja peedeejaa dalja ir random (un genereetaa random parole netiek saglabaata, piemeeram, lietotaaju tabulaa), tad peec tam nevareesi saliidzinaat, vai lietotaaja kuukijaa saglabaatais kods ir pareizs.

Link to comment
Share on other sites

Nē nu ja es to visu lietotāja id + Ip +randompass pie logina inertoju lietotāju tabulā, laukā kukījs, un tad vnk visur kur tiek pieprasīts pārbaudu, vai tas kukījs i vienāds ar lietotāja tabulā esošu kukiju? Ta nevarēs?

Link to comment
Share on other sites

×
×
  • Create New...