所以我写了一个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)
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'] ) ;
}
当我注册一个用户时,它会添加到我的数据库但是当我尝试用它登录时它说用户名和传递是错误的 我的代码坏了或者是数据库问题????
答案 0 :(得分:1)
您的密码错误。请不要使用md5并查看使用password_hash
。 Read about it here
您的密码错误,因为您在注册期间附加了一个常量,但在登录期间没有。当您使用password_hash
时,请将其删除,因为它会照顾您的盐渍。