你好我在使用crypt函數時遇到了問題。我想檢查數據庫和輸入的密碼。如何加密密碼並在函數中使用它?
我遇到的問題是,當我輸入密碼時,即使密碼完全不同,它甚至會重定向。這對我來說很奇怪。
,所以我使用此功能:
function salt_crypt($login_password, $rounds = 7) {
$salt = "";
$salt_chars = array_merge(range('A','Z'), range('a','z'), range(0,9)); for($i=0; $i < 22; $i++) {
$salt .= $salt_chars[array_rand($salt_chars)];
}
return crypt($login_password, sprintf('$2a$%02d$', $rounds) . $salt);
我將得到從返回的數組的函數所存儲的密碼:
function ab($a){
global $db;
$query = $db->query("SELECT col_a, col_b FROM table WHERE Field= '$a' ");
$check = $query->fetch_assoc();
return ($check);
}
,這將在此函數中使用:
function login($a, $login_password){
$user_data = user_data($a);
global $db;
$uname = sanitize($uname);
$crypted_password = salt_crypt($login_password);
if(crypt($user_data['col_b'], $crypted_password) == $crypted_password) {
$query = $db->query("SELECT col_a FROM table WHERE Field_a= '$a' AND Field_b = '$crypted_password' ");
$check = $query->num_rows;
return ($check == 1) ? true : false;
}
}
該功能將被調用,並在返回結果標題的情況下:
$login = login($a, $login_password);
if ($login === false){
$errors[] = "text";
} else {
header('Location: page.php');
}
並非所有的代碼路徑中'功能登錄返回一個值($ A,$ login_password)' – 2013-02-22 12:35:01
添加'返回false; – AmazingDreams 2013-02-22 12:36:25