-3

PHP エラーが発生し、hurl.it で空の本文が返されます。DB 内の既存のユーザーのパスワードをハッシュしようとしています。

user_id を POST として使用し、新しく作成された列の DB に更新します

// Create connection
$con = mysqli_connect($dbPath,$dbUserName,$dbPassword,$dbSchema);

// Check connection
if (mysqli_connect_errno()) {
  $error = "DB connection error";
}

$user_id = $_POST['user_id'];  


//exisitng password
$sql = mysqli_query($con, "SELECT password FROM user_table 
                            WHERE user_id = '$user_id'");

if(!$sql) $error = "SELECT user_table error";

$i=0;
while($result = mysqli_fetch_assoc($sql)){

    $hash[$i] = $result;

    if($hash[$i]) {
        $check_hash = password_hash($hash[$i], PASSWORD_DEFAULT);

        //store into DB
        $result2 = mysqli_query($con, "INSERT INTO user_table (password_secure) VALUES   ('$check_hash')"); 
    }
    $i++;
}



if(!$result2) $error = "INSERT user_table error";
// Set returns
if (!$error) $status = "successful";
4

2 に答える 2

1

コードには多くの問題がありますが、主な原因は、実際に使用INSERTする必要があるときに使用するという事実UPDATEです。

UPDATE user_table SET password_secure=? WHERE user_id=?
于 2014-08-15T08:32:30.377 に答える
0

$result は配列になります。使用してmysqli_fetch_assoc()いるため、配列をハッシュしようとしています

$password = $result['password'];

if($password){
    $check_hash = password_hash($password, PASSWORD_DEFAULT);
于 2014-08-15T08:41:03.960 に答える