1
我創建了一個簡單的php腳本,可從我的I-Phone應用程序中獲取用戶名和密碼的值。我確信它會抓取正確的用戶名和密碼,因爲它會向數據庫插入正確的用戶名和密碼。但是,當我在插入數據庫之前嘗試散列密碼時,它失敗了。未將PHP哈希密鑰插入到數據庫中
腳本在下面。 $查詢語句沒有通過,我不知道爲什麼。 謝謝!
<?php
@session_start();
@ob_start();
$host='localhost';
$user='root';
$pass='root';
$db_name="deep_freeze";
$connection = mysqli_connect($host,$user,$pass, $db_name);
$username_p = $_POST['username'];
$password_p = $_POST['password'];
// Hash the password. $hashedPassword will be a 60-character string.
$hashPwd = mysql_real_escape_string(password_hash('hello', PASSWORD_DEFAULT));
if(!$connection){
die('Connection Failed');
}
else{
$dbconnect = @mysqli_select_db($connection, $db_name);
if(!$dbconnect){
die('Could not connect to Database');
}
else{
//echo $hashPwd;
$query = "INSERT INTO deep_freeze VALUES ('$username_p','$hashPwd')";
mysqli_query($connection, $query) or die(mysql_error());
echo 'Successfully added.';
echo $query;
echo $username_p.$password_p;
}
}
?>
您正在使用mysqli進行連接,並使用mysql_real_escape_string作爲轉義字符串。 –
請勿混用mysql_ *和mysqli_ *函數。也不要使用mysql_ *函數。 – Musa
數據庫中的密碼長度是多少?如果你的哈希長度是100個字符,並且在你的數據庫中你已經將字段設置爲'varchar(80)',那麼密碼將被截斷。另外,如上所述,只使用mysqli_ *函數,而不是mysql_ * – AnthonyB