【问题标题】:PHP Remember me redirectingPHP 记住我重定向
【发布时间】:2018-07-15 10:27:45
【问题描述】:

我是 PHP 初学者。我正在使用 login/passwordremember me 创建 PHP 登录表单, 我的问题是它一直重定向到 userarea.php

即使我没有点击记住我(复选框)。

我不知道是 cookie 还是变量的问题。我尝试了很多解决方案,但没有任何结果。

这是我的代码:

    session_start();


    //checking if remember me == true

function loggedin()
{   
    if(isset($_SESSION["email"]) || isset($_COOKIE["email"]))
    {
        $loggedin = true;
        return $loggedin;
    }
}

if(loggedin())
{
    header("Location: userarea.php");
}

if(isset($_POST['submit'])){

require 'db.php';

$email = mysqli_real_escape_string($connection,$_POST["email"]);
$password = mysqli_real_escape_string($connection,$_POST["password"]);

$query = "SELECT * FROM users WHERE email = '$email' and pwd='$password'";
$result = mysqli_query($connection,$query);

if (!$query)
{
    die('Error: ' . mysqli_error($connection));
}
$count = mysqli_num_rows($result);
    if($count > 0){

    $row = mysqli_fetch_assoc($result);
    $_SESSION["email"] = $row["email"];
    $_SESSION["civile"] = $row["civile"];
    $_SESSION["nom"] = $row["nom"];
    $_SESSION["prenom"] = $row["prenom"];
    $_SESSION["address"] = $row["address"];
    $_SESSION["city"] = $row["city"];
    $_SESSION["zip"] = $row["zip"];
    $_SESSION["telephone"] = $row["telephone"];

    //saving checkbox into variable

    if(isset($_POST['rememberme'])){
        setcookie("email", $email, time()+7200);
    }


    echo '<div class="alert alert-success">
    Hi '.$_SESSION["nom"].' ! you will be redirected in few seconds.
    </div>';
}else{

    echo '<div class="label label-warning">
    Username or password are incorrect.
    </div>';

}

}

这里是 HTML 代码:

        <input id="email" type="text" size="40" class="form-control" name="email" placeholder="Email">


        <input id="password" type="password" size="40" class="form-control" name="password" placeholder="Password">

    <input class="btn btn-success" type="submit" value="Submit" name="submit">


<td> <input type="checkbox" name="rememberme" id="rememberme" value="1"> 
    <label> Remember me  </label>

【问题讨论】:

    标签: php mysql session cookies


    【解决方案1】:

    您还在会话中检查您始终设置的电子邮件,这就是您面临此问题的原因。

       session_start();
    
    
        //checking if remember me == true
    
    function loggedin()
    {   
        if(isset($_COOKIE["email"]))
        {
            $loggedin = true;
            return $loggedin;
        }
    }
    
    if(loggedin())
    {
        header("Location: userarea.php");
    }
    
    if(isset($_POST['submit'])){
    
    require 'db.php';
    
    $email = mysqli_real_escape_string($connection,$_POST["email"]);
    $password = mysqli_real_escape_string($connection,$_POST["password"]);
    
    $query = "SELECT * FROM users WHERE email = '$email' and pwd='$password'";
    $result = mysqli_query($connection,$query);
    
    if (!$query)
    {
        die('Error: ' . mysqli_error($connection));
    }
    $count = mysqli_num_rows($result);
        if($count > 0){
    
        $row = mysqli_fetch_assoc($result);
        $_SESSION["email"] = $row["email"];
        $_SESSION["civile"] = $row["civile"];
        $_SESSION["nom"] = $row["nom"];
        $_SESSION["prenom"] = $row["prenom"];
        $_SESSION["address"] = $row["address"];
        $_SESSION["city"] = $row["city"];
        $_SESSION["zip"] = $row["zip"];
        $_SESSION["telephone"] = $row["telephone"];
    
        //saving checkbox into variable
    
        if(isset($_POST['rememberme'])){
            setcookie("email", $email, time()+7200);
        }
    
    
        echo '<div class="alert alert-success">
        Hi '.$_SESSION["nom"].' ! you will be redirected in few seconds.
        </div>';
    }else{
    
        echo '<div class="label label-warning">
        Username or password are incorrect.
        </div>';
    
    }
    
    }
    

    【讨论】:

    • @clackj 如果这个答案对你有用,那么接受或投票
    猜你喜欢
    • 2014-06-29
    • 2013-03-04
    • 1970-01-01
    • 2015-01-30
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2014-08-07
    相关资源
    最近更新 更多