安全な認証を必要とする最初のプロジェクトに取り組んでいます。私のホスティングはまだ PHP 5.3.27 を使用しているため、ここにある password_hash() 互換性パッチを使用しています。私の問題はreturn password_hash($password, PASSWORD_BCRYPT, array('cost'=>$cost));
、 $password は文字列でなければならないというエラーが出ることです。なぜ文字列ではないのですか?どこからデバッグを開始すればよいかさえわかりません。
パスワードを取得する HTML
<form method='post' action='register.php' name='loginform'>
<label for="inputpass">Password</label>
<input type="password" class="form-control" id="inputpass" placeholder="Enter a password">
</form>
register.php の内容
<?php
require 'validate.php';
$password = $_POST['password'];
var_dump(validations::generate_hash($password));
?>
validate.php の内容 *password.php は password_hash() の 5.3 互換パッチです*
<?php
require 'plugins/password.php';
class validations {
function generate_hash($password){
$cost = 11;
return password_hash($password, PASSWORD_BCRYPT, array('cost'=>$cost));
}
function validate_pw($password, $hash){
return crypt($password, $hash)==$hash;
}
}
?>