如果会话不存在,则重定向

3
我正在尝试在用户填写错误信息时重定向到尝试页面... 另一方面,如果尝试页面被刷新,希望将其重定向到登录页面... 我正在使用会话来实现这一点...
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');
    }
}

上述代码正在重定向到attempt1.php,但是attempt1.php上的代码会将其重定向回index.php。
session_start();
if (!isset($_SESSION["att"]))
{
    echo "<meta http-equiv=\"refresh\" content=\"0; url=index.php\">";
}

我希望你能将attempt1.php代码翻译成中文,实现如果会话未设置,则重定向用户到index.php页面。并且在刷新或直接加载页面时销毁会话...这样可以通过直接访问此页面导致重定向到主页。请帮助我。 答案: 在存储会话变量时,我犯了一些愚蠢的错误,在这个问题中我没有启动会话。请在登录脚本的第一行添加以下代码。
session_start();
3个回答

8
//try this code  
<?php 
session_start();
  if (!isset($_SESSION["att"]))
   {
      header("location: index.php");
   }
?>

4
我认为您是在询问如何在会话不存在时进行重定向,因为会话需要ID,所以您可以根据其进行检查:
if(!(session_id()) header("Location: /mypage.php");

会话ID是自动创建的,它是将用户与服务器上存储的内容联系起来的ID。无论是在cookie中还是通过URL传递。 - Matthew Riches

2

试试这个:

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

谢谢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接