Divi jautājumi par PHP.
autors: guitarman
Čau visiem,
Taisu loginu iekš php. Viss tākā būtu ok, tikai lieta tāda ka mans logins neatšķir LV burtus kā arī CAPS. Respektīvi ja man ir lietotājs ar niku 'ansis', viņš var ielogoties arī kā 'ANSIS' vai arī kā 'ĀŅŠĪŠ'. Ok, tie caps var palikt, jo tik un tā negribas divus lietotājus ar vienādu vārdu, tikai vienam ir CAPS, otram nav. Bet gribētos lai logins atšķir garumzīmes un mīkstinājuma zīmes. Kādi ir varianti?
Ā un vēl pie viena - kas iesācējam būtu jāzin par drošu Cookies lietošanu? Piemēram cik esmu sapratis tad vienkārši cookijā ielikt lietotāja id vai lietotāja vārdu nav prāta darbs? Hashot cookija satura vai kā?
Komentāri
Saistītās tēmas

Mad182 : 18 Jūlijs 2010 18:44:42
guitarman : 18 Jūlijs 2010 18:56:39
Mad182 : 18 Jūlijs 2010 18:58:06
guitarman : 18 Jūlijs 2010 19:06:03
Mad182 : 18 Jūlijs 2010 19:07:33
guitarman : 18 Jūlijs 2010 19:11:11
Mad182 : 18 Jūlijs 2010 19:12:15
guitarman : 18 Jūlijs 2010 19:17:52
Creep : 18 Jūlijs 2010 19:18:08
Mad182 : 18 Jūlijs 2010 19:19:46
Creep : 18 Jūlijs 2010 19:22:45
guitarman : 18 Jūlijs 2010 19:22:48
if (isset($_POST["submit"])) {
$username = trim(addslashes($_POST["username"]));
$password = trim(addslashes($_POST["password"]));
$hashed_password = sha1($password);
$result_username = mysql_query("SELECT * FROM users WHERE username = '$username' ");
$result_password = mysql_query("SELECT * FROM users WHERE password = '$hashed_password' ");
if (mysql_num_rows($result_username) == 0) {
echo "Šāds lietotājs neeksistē";
}
elseif (mysql_num_rows($result_username) == 1 && mysql_num_rows($result_password) == 0 ) {
echo "Nepareiza parole";
}
else {
$lcode1 = rand(11111111,99999999);
$lcode2 = $hashed_password;
$login_code = $lcode1.$lcode2;
mysql_query("UPDATE users SET login_code = '$login_code' WHERE username = '$username' AND password = '$hashed_password' ");
$result = mysql_query("SELECT * FROM users WHERE login_code = '$login_code' ");
$row = mysql_fetch_array($result);
$login_code = $row["login_code"];
setcookie("troksnis", $login_code, time()+7200);
header("Location: index.php");
}
}
_________________
Mana ģitārmūzika: draugiem.lv/rolandsbrazis
Un iekš yūtūba: http://www.youtube.com/user/rolandsbrazis
guitarman : 18 Jūlijs 2010 19:25:52
Creep : 18 Jūlijs 2010 19:28:39
Mad182 : 18 Jūlijs 2010 20:10:32
root : 18 Jūlijs 2010 20:24:49
guitarman : 18 Jūlijs 2010 20:34:28
root : 18 Jūlijs 2010 20:53:48
Mad182 : 18 Jūlijs 2010 21:12:20
Creep : 19 Jūlijs 2010 14:59:47
$lcode2 = $hashed_password;
$login_code = $lcode1.$lcode2;
mysql_query("UPDATE users SET login_code = '$login_code' WHERE username = '$username' AND password = '$hashed_password' ");
$result = mysql_query("SELECT * FROM users WHERE login_code = '$login_code' ");
$row = mysql_fetch_array($result);
$login_code = $row["login_code"];
setcookie("troksnis", $login_code, time()+7200);
Nesapratu, kur jūs izrāvāt, ka paroles hašs tiek glabats kūkijos? Šeit tiek ģenerēts random strings, kas arī tiek iemests datubāzē kā identifikācijas nummurs un tas ari tiek lietots kūkijam, viss ir bumbās. Cilvekam droši vien, ka galvu sajaucāt.
No otras puses piekritīšu Mad, daudz vienkāršāk to visu butu panākt ar sessijām...
http://php.net/manual/en/features.sessions.php
P.S. Ja gribi maksimālu drošību, tad uztaisi, lai, pieņemsim, reizi divās stundās tiek veikta veco kodu dzēšana no datubazes...
daGrevis : 19 Jūlijs 2010 16:55:35