[英]PHP remember me, COOKIE
I don't know where went wrong. 我不知道哪里出了问题。 When I tick the remember me checkbox The page didn't go to userarea page and seems like cookie didn't work as well It works when I just login without tick the remember me checkbox 当我勾选记住我的复选框页面没有进入userarea页面,似乎cookie不能正常工作当我刚登录时没有勾选记住我复选框
<?PHP
session_start();
$connect=mysql_connect("localhost", "root", "");
mysql_select_db("phplogin", $connect);
function loggedin(){
if(isset($_SESSION['email']) || isset($_COOKIE['username'])){
$loggedin=TRUE;
return $loggedin;
}
}
if(loggedin()){
header("Location:userarea.php");}
if(isset($_POST['login'])){
$email=$_POST['email'];
$password=$_POST['password'];
$rememberme=$_POST['rememberme'];
if($email && $password){
$login=mysql_query("SELECT * FROM users WHERE email='$email'");
while($row=mysql_fetch_assoc($login)){
$db_email=$row['email'];
$db_password=$row['password'];
$db_firstname=$row['firstname'];
$db_lastname=$row['lastname'];
if($password==$db_password){$log=TRUE;}
else{$log=FALSE;}
}
if($log==TRUE){
if($rememberme=="on"){
setcookie("email", $email, time()+7200);
}
else if($rememberme==""){
$_SESSION['email']=$email;
header("Location:userarea.php");
}
}
else{die("Wrong email or password");}
}
}
?>
<html>
<form action="index.php" method="POST">
<input type="text" name="email" value="" placeholder="email" /><br/>
<input type="password" name="password" value="" placeholder="password"/><br/>
<input type="checkbox" name="rememberme"> Remember me | <a href="register.php">Register?</a><br/>
<input type="submit" name="login" value="Login" />
</form>
</html>
Wrong cookie variable name in the function loggedin(). 函数loggedin()中的cookie变量名错误。 Its should be isset($_COOKIE['email']) 它应该是isset($ _ COOKIE ['email'])
function loggedin(){
if(isset($_SESSION['email']) || isset($_COOKIE['email'])){
$loggedin=TRUE;
return $loggedin;
}
}
Change like the following 改变如下
if(isset($_POST['rememberme'])){
$rememberme = $_POST['rememberme'];
}
Then 然后
if($log==TRUE){
if(isset($rememberme)){
setcookie("email", $email, time()+7200);
}
else{
$_SESSION['email']=$email;
}
header("Location:userarea.php");
exit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.