У меня есть этот набор кодов
$user = htmlentities($_POST['user']);
$pass = htmlentities($_POST['pass']);
function sha512($str) { return hash("sha512", $str); }
$pass = sha512($pass);
$tzlogin = sprintf("SELECT * FROM users WHERE user='%s' AND pass='%s'",
mysql_real_escape_string($user), mysql_real_escape_string($pass));
$tzlogged = mysql_query($tzlogin, $config) or die(mysql_error());
if (mysql_num_rows($tzlogged) == 0){
header (sprintf("Location: ./login.php?status=error"));
} else {
if (isset($_POST['tz-remember'])){
$query = mysql_query("SELECT uid FROM users WHERE user='".$user."'", $config);
$id = mysql_fetch_row($query);
foreach($id as $uid){
setcookie('uid', $uid, time() + 60*60*24*30*11, '/', '.localhost');
}
header (sprintf("Location: ./index.php"));
} else {
$query = mysql_query("SELECT uid FROM users WHERE user='".$user."'", $config);
$id = mysql_fetch_row($query);
foreach($id as $uid){
$_SESSION['uid'] = $uid;
}
header (sprintf("Location: ./index.php"));
}
}
все правильно, я думаю, потому что раньше я был в состоянии войти в систему правильно, но вдруг я не зашифровал пароль в формате хэша при регистрации и во время входа в системуя снова сначала зашифровал его, затем выбрал, и когда я внимательно посмотрел, во вставленных данных в базе данных отсутствуют некоторые строки, в то время как введенные данные немного длиннее, как при вводе теста пароля, теперь вставленные данные * * * * * * * * * * * * *
, в то время как опубликованные данные равны
"ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b148f0385fa5ff0308f5378305325305325303