Sākumlapa › Forumi › Mājas lapu izstrāde › Servera puse (php, java, ruby, perl, python) › Divi jautājumi par PHP.
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ā?
Vai tad ar sesijām var panākt, ka lietotājs pēc browsera aizvēršanas un pēc tam atkal atvēršanas ir pieslēdzies?
Un ja būtu visur unikods, tad nebūtu šādas problēmas 🙂
mysql_query(“SET NAMES utf8”, $db_connection);
mysql_query(“SET CHARACTER SET utf8”, $db_connection );
Kur vēl vajag?
P.S.
Laikam kļūdījos, un tik vienkārši vis nav. Aspkaties te:
Cita lieta – vai vispār vajag, lai var piereģistrēties divi dažādi lietotāji – “Ansis Abele” un “Ansis Ä€bele”?
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”);
}
}
2) Gadiem ilgā bezdarbība ir man likusi kautko svarīgu aizmirst vai arī vienkārši es nespēju izprast, kāpēc lietotājvārdu un paroli nevarēja likt vienā vaicājumā?
Ja gribi glabāt lietotāja datus kūkijos, tev ar kādu algoritmu vajadzetu piedomāt pie šo datu kodēšanas tajā pašā AES ja pieejams mcrypt paplašinājums, piemēram to pašu rijndael. Protams ka atkal nākas izmantot hard coded statisku atslēgu, vai arī authhashu no ip utml datiem. Bet plainā glabāt šos datus ir idiotisms.
Mad – neesmu vēl tik gudrs, tāpēc mēģināju tos kūkijus padarīt cik vien drošus var ar savām zināšanām.
Bet tad vēl jautājums – ko īsti kūkijā būtu droši likt no lietotāja datiem? kā sapratu tad ar vienkāršu random ciparu kurš stāv datubāzē kamēr lietotājs ir pieslēdzies, nepietiks..
Preses relīzes