php - 加密的注册和登录密码出错

标签 php mysql authentication passwords encryption

我有一个注册脚本:

function NewUser() 
{ 
        $fullname = $_POST['name']; 
        $userName = $_POST['user']; 
        $email = $_POST['email']; 
        $password = $_POST['pass'];
        $confirm_password = $_POST['cpass'];
        $salt = 'a salt(not in my real script)';
        $password = crypt($password, $salt);
        $query = "INSERT INTO WebsiteUsers (fullname,userName,email,pass) VALUES ('$fullname','$userName','$email','$password')"; 
        $data = mysql_query ($query)or die(mysql_error()); 
        if($data) 
        { 
        echo "YOUR REGISTRATION IS COMPLETED..."; 
        } 
    } 

效果很好,它存储了包括加密密码在内的所有内容。 我还有一个检查登录代码:

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT pass FROM $tbl_name WHERE userName='$myusername' ";
$result = mysql_query($sql); 

if (crypt($user_input, $password) == $password){

// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}

这段代码出了问题,阻止了我的login_success.php,它会说这是错误的用户名或密码,我知道是我的密码加密出了问题。有人可以帮我调试这段代码,以便它能以正确的方式看到加密的密码。因为我正在测试网站登录,但它不起作用,因为(我认为)它看不到正确的加密密码。(抱歉我的英语不好)

最佳答案

创建具有身份验证系统的站点的更好方法是使用 development framework已经内置了一个。

一个很好的例子是 Laravel它有一个非常强大的 authentication platform您可以开箱即用。

关于php - 加密的注册和登录密码出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22994863/

相关文章:

php - MySQL查询。如何先拉出特定条目,然后显示其余部分?

安卓应用程序 : how to display resultset in Listview?

authentication - React-redux 客户端 token

mysql - 重写条件总和和计数查询/日期范围比较的更好方法

node.js - 为什么未发送 Set-Cookie header ? -- 使用 Restify

objective-c - 在 Mac 上创建登录项?

php - PHP 中的初学者数据缓存

php - Laravel Eloquent 在哪里替换和比较

php - 用 php 启动 freerdp 的 bash 脚本

mysql - .在 ActiveRecord 中查找方法