1
私は自分のI-Phoneアプリからユーザー名とパスワードの値を取得する簡単なPHPスクリプトを作成しました。正しいユーザー名とパスワードをデータベースに挿入するため、正しいユーザー名とパスワードを取得することが確実です。しかし、データベースに挿入する前にパスワードをハッシュしようとすると、パスワードが正しく機能しませんでした。PHPハッシュされたパスワードがデータベースに挿入されていない
スクリプトは以下のとおりです。 $ queryステートメントは実行されません。理由はわかりません。 ありがとうございました!あなたのコードで
<?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)'にフィールドを設定した場合、パスワードは切り捨てられます。また、上で述べたように、mysql_ *ではなくmysqli_ *関数を使用してください。 – AnthonyB