2016-06-12 21 views
1

私は自分のサインアップを設定し、サーバー上にあるphpファイルにサインインしています。サインインして簡単にサインアップすることができます。しかし、私はpassword_hash()メソッドを追加してユーザーパスワードのセキュリティを確保すると、サインアップしようとするとXcodeでエラーが発生します。これ以上動作しない場合は、パスワードを安全に保存する方法はありますか? Xcodeの経由PHPとSwift:password_hash()の致命的なエラー

エラー:あなたはこのlibraryを使用することができます

DATA: <br /> 
<b>Fatal error</b>: Call to undefined function password_hash() in <b>/*/*/public_html/*/signup.php</b> on line <b>92</b><br /> 

signup.php

// Hash password and insert new user to table 

$hashPassword = password_hash($password, PASSWORD_DEFAULT); 
$command = " INSERT INTO USER 
       (firstname, lastname, username, email, password) 
      VALUES 
       ('$firstname', '$lastname', '$username', '$email', '$hashPassword')"; 

if (mysqli_query($DB, $command)) { 

    // Search for newUser 

    $command = "SELECT * FROM USER WHERE username = '$username'"; 
    $sql = mysqli_query($DB, $command); 

    if (mysqli_num_rows($sql) != 0) { 
     $newUser = mysqli_fetch_array($sql); 

     $returnData["status"]  = "200"; 
     $returnData["message"]  = "Success!"; 
     $returnData["ID"]   = $newUser["ID"]; 
     $returnData["firstname"] = $newUser["firstname"]; 
     $returnData["lastname"]   = $newUser["lastname"]; 
     $returnData["username"]   = $newUser["username"]; 
     $returnData["email"]  = $newUser["email"]; 

    } 

    echo json_encode($returnData); 
    return; 

} else { 

    $returnData["status"] = "400"; 
    $returnData["message"] = "Sorry, something must've went wrong. Please try again..."; 
    echo json_encode($returnData); 
    return; 

} 

signin.php

// Find user from table and sign in 

$command = "SELECT * FROM USER WHERE email = '$email'"; 
$sql = mysqli_fetch_array(mysqli_query($DB, $command)); 

if (isset($sql)) { 

    $hashPassword = $sql["password"]; 

    if (password_verify($password, $hashPassword)) { 

     $returnData["status"] = "200"; 
     $returnData["message"] = "Success!"; 
     $returnData["ID"] = $sql["ID"]; 
     $returnData["username"] = $sql["username"]; 

    } 

    echo json_encode($returnData); 
    return;  

} else { 

    $returnData["status"] = "400"; 
    $returnData["message"] = "Sorry, something must've went wrong. Please try again..."; 

    echo json_encode($returnData); 
    return; 

} 

答えて

0

はい、私は、PHP 5.5.34がインストールされています関数password_*()を入手してください。また、PHP 5.5のサポートを<で提供しています。

+0

私もそれを試みましたが、全く動作しませんでした。 –