【问题标题】:redirect if session doen't exist如果会话不存在则重定向
【发布时间】:2013-10-16 12:40:08
【问题描述】:

如果用户填写不正确的信息,我正在尝试重定向到尝试页面... 另一方面,如果尝试页面被刷新,希望它被重定向到登录页面...... 我正在使用会话...

if (isset($c))
{
    $q = mysql_query("select * from registeration where email='$a' and password='$b'");
    $r = mysql_num_rows($q);

    if($r)
    {
        $_SESSION["Authenticated"] = 1;
        $_SESSION['id'] = $a;
    }
    else
    {
        $_SESSION["Authenticated"] = 0;
        $_SESSION["att"] = 1;
    }

    if(isset($_SESSION["att"]))
    {
        header("location:attempt1.php");
    }
    else
    {
        session_write_close();
        header('location:profile.php');
    }
}

上面提到的代码在尝试1.php上重定向 但是尝试1.php上的代码重定向回index.php

session_start();
if (!isset($_SESSION["att"]))
{
    echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
}

如果未设置会话,我希望尝试 1.php 代码重定向到 index.php 上的用户。 并在刷新或直接页面加载时销毁会话... 这样直接访问此页面会导致重定向到索引页面 请帮助朋友..

回答 回答 回答 我问的所有问题我都犯了愚蠢的错误...... 在这个问题中,我没有开始会话以存储会话变量.... 在登录脚本的第一行添加以下代码

session_start();

【问题讨论】:

    标签: php session redirect


    【解决方案1】:

    如果会话不存在,我认为您要求重定向,因为会话需要一个 ID,您应该能够检查该 ID:

    if(!(session_id()) header("Location: /mypage.php");
    

    【讨论】:

    • 会话 ID 是自动创建的,它是将您的用户与服务器上存储的内容联系起来的 ID。无论是在 cookie 中还是通过 URL。
    【解决方案2】:

    试试这个:

    if(empty($_SESSION))
    {
      header("Location: /mypage.php");
    }
    else
    {
        // do something ....
    }
    

    - 谢谢

    【讨论】:

      【解决方案3】:
      //try this code  
      <?php 
      session_start();
        if (!isset($_SESSION["att"]))
         {
            header("location: index.php");
         }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多