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

时间:2013-10-16 12:40:08

标签: php session redirect

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

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上重定向 但try1.php上的代码重定向回index.php

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

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

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

session_start();

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

试试这个:

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

- 感谢