Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加密的注册和登录密码出错_Php_Mysql_Login_Passwords_Encryption - Fatal编程技术网

Php 加密的注册和登录密码出错

Php 加密的注册和登录密码出错,php,mysql,login,passwords,encryption,Php,Mysql,Login,Passwords,Encryption,我有一个注册脚本: function NewUser() { $fullname = $_POST['name']; $userName = $_POST['user']; $email = $_POST['email']; $password = $_POST['pass']; $confirm_password = $_POST['cpass']; $salt = 'a salt(not

我有一个注册脚本:

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";
}

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

创建带有身份验证系统的网站的更好方法是使用内置的


一个很好的例子是,它有一个非常强大的功能,您可以直接使用。

表中密码字段的大小是多少?您的意思是什么@不管你在这里干什么,停下来。你做错了。这离建立一个合适的用户身份验证系统还差得远。请不要重新发明轮子,最终得到一个正方形的。请仔细阅读,否则您将创建一个极易受攻击的网站。对于一个新的应用程序,更好的方法是选择一个满足您需求的应用程序,并使用一个经过测试、现场验证的身份验证系统。@tadman我确实是新的,我对它不太了解,这就是为什么我需要登录帮助的原因code@user3442233老实说,把它烧成灰烬,然后重新开始。您不能在新应用程序中使用
mysql\u query
。这太危险了。你在这里的简短例子充满了,而且追求这种发展方式是完全不计后果的。作为一名新的开发人员没关系,但你在这里犯了一些严重的错误,可能会让你付出高昂的代价。最好使用可信的、经过测试的代码并在坚实的基础之上构建,这就是开发框架所做的。它们为您提供了一个大的起点。它适用于任何可以运行PHP的东西。我看到的laravel原因:/usr/local/bin和terminal一词,这是Linux的典型用法。它描述了如何在Windows上安装。程序大体上是相同的,用“cmd”代替“terminal”。如果你不知道yetI在这里用“application”来描述任何PHP代码,那么这不是应用程序,而是一个网站。