Php 这个登录和注册表单有什么问题吗?
所以我写了一篇cms,奇怪的问题发生了 这是我的注册函数:Php 这个登录和注册表单有什么问题吗?,php,mysql,Php,Mysql,所以我写了一篇cms,奇怪的问题发生了 这是我的注册函数: function register($email,$fullname,$password ) { global $connection; $date = time(); $pass = md5($password . SECURE_KEY); return mysql_query("INSERT INTO users(email, fullname, date, password)
function register($email,$fullname,$password )
{
global $connection;
$date = time();
$pass = md5($password . SECURE_KEY);
return mysql_query("INSERT INTO users(email, fullname, date, password)
VALUES('$email', '$fullname', '$date', '$pass')") or die(mysql_error());
}
这是我的登录名:
function login($email, $password, $remember)
{
global $connection;
$login = mysql_query("SELECT * FROM users WHERE email = '$email' AND password = md5('$password')");
if(mysql_num_rows($login)>0)
{
$loginResult = mysql_fetch_assoc($login);
$_SESSION['userid'] =$loginResult['id'];
$_SESSION['fullname'] =$loginResult['fullname'];
if($loginResult['isAdmin'] == '1')
$_SESSION['isadmin'] ='admin';
if($remember)
{
setcookie('userid',$loginResult['id'], time() + 30, '/' );
}
return true;
}
else
{
return false;
}
}
我无法与我现在注册的用户登录这是登录页面:
$message = '';
if(isset($_POST['submit']))
{
$remember = false;
if(isset($_POST['chkRemember']) && $_POST['chkRemember'] == 'remember')
$remember = true;
$loginResult = login($_POST['txtEmail'], $_POST['txtPassword'], $remember);
if(!$loginResult)
{
$message = ;
}
else
{
redirect_to("index.php");
}
}
这是注册页面:
if(isset($_POST['submit']))
{
register($_POST['txtEmail'],$_POST['txtFullname'], $_POST['txtPassword'] ) ;
}
当我注册一个用户时,它会添加到我的数据库中,但当我尝试使用它登录时,它会说用户名和密码是错误的
我的代码已损坏或是数据库问题???您的密码错误。请不要使用md5,并研究如何使用
密码\u散列
您的密码是错误的,因为您在注册时附加了一个常量,但在登录时却没有。当您使用
密码\u hash
时,请将其删除,因为它会为您处理盐渍问题。(1)它对SQL注入开放。(2) md5现在很弱。(3) $message=代码>是一个语法错误。。。我肯定还有更多,但这基本上是一个离题的问题,因为它只是“为我调试我的代码”。这对将来的任何人都没有帮助。@developerwjk-md5从来都不弱。它不是为密码设计的,它是一个简单的“工作”较少的散列算法。有什么问题吗?使用mysql\u*
函数、全局变量、用于密码散列的md5、SQL Injectional漏洞,因此不推荐使用mysql\u*
函数。开始使用mysqli.*
或PDO。