首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和Swift : password_hash()上的致命错误

PHP和Swift : password_hash()上的致命错误
EN

Stack Overflow用户
提问于 2016-06-12 13:59:36
回答 1查看 122关注 0票数 1

我已经注册并登录了php文件,它们在服务器上,它可以与我的swift应用程序一起工作。我可以轻松地登录和注册。但是,当我将password_hash()方法添加到用户密码的had安全性时,当我尝试注册时,它在Xcode上给出一个错误。如果密码不再起作用,有没有其他方法可以安全地存储密码。是的,我已经安装了php 5.5.34:

通过Xcode产生的错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
// 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

代码语言:javascript
复制
// 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;

}
EN

回答 1

Stack Overflow用户

发布于 2016-06-12 16:53:27

您可以使用此library来获取password_*()函数。还提供了< PHP 5.5支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37771184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档