首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记住我,小甜饼

问记住我,小甜饼
EN

Stack Overflow用户
提问于 2012-12-06 17:12:25
回答 2查看 10.2K关注 0票数 3

我不知道哪里出了问题。当我勾选了remember me复选框时,页面没有转到用户区域页面,并且看起来cookie不起作用,当我只是登录而没有勾选remember me复选框时,它是有效的

代码语言:javascript
复制
<?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 17:33:03

loggedin()函数中的cookie变量名错误。它应该是isset($_COOKIE‘’email‘)

代码语言:javascript
复制
function loggedin(){
    if(isset($_SESSION['email']) || isset($_COOKIE['email'])){
       $loggedin=TRUE;
       return $loggedin;   
    }
}
票数 4
EN

Stack Overflow用户

发布于 2012-12-06 18:02:53

如下所示更改

代码语言:javascript
复制
if(isset($_POST['rememberme'])){
    $rememberme = $_POST['rememberme'];
}

然后

代码语言:javascript
复制
if($log==TRUE){
    if(isset($rememberme)){
        setcookie("email", $email, time()+7200);
    }
    else{
        $_SESSION['email']=$email;  
    }
    header("Location:userarea.php");
    exit();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13740273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档