【发布时间】:2013-08-02 01:33:15
【问题描述】:
当我使用“a href ..”重定向到另一个页面时,我丢失了所有 SESSION 变量。 所以我只想通过使用 header() php函数来重定向。 我如何创建一个链接,当用户使用它时,它会使用 header() 将他重定向到另一个页面? 谢谢
这是我的代码: 源页面:
session_save_path("myrootdir/cgi-bin/tmp");
session_start();
....
$id = $_SESSION['id']; //session variable passed succesfully from log in page
$usr = $_SESSION['usr'];//by using header('sourcepage.php');
....
< a href='http://targetpage.php'>target< / a>
目标页面:
session_save_path("myrootdir/cgi-bin/tmp");
session_start();
...
if(isset($_SESSION['id']) && isset($_SESSION['usr'])) {
echo "success";
}
else{
echo "failed to pass";
}
我总是不及格!
更新
现在我有另一个奇怪的问题...
$_SESSION['id']=$_POST['id'];
$_SESSION['usr']=$_POST['usr'];
if(isset($_SESSION['id']) && isset($_SESSION['usr'])) {
$id = $_SESSION['id'];
$usr = $_SESSION['usr'];
$qry = mysql_query("SELECT * FROM members WHERE id = '". mysql_real_escape_string( $id ) ."' AND usr = '". mysql_real_escape_string( $usr ) ."'");
echo "Welcome ".$usr;
echo "Session id".session_id();
if(mysql_num_rows($qry) != 1) { Destroy(); }
} else { Destroy(); }
当我检查是否有人像这样登录时,它在每个页面中都能完美运行,但是当我删除回显线时,它会调用 Destroy() 函数。
【问题讨论】:
-
使用标头重定向我没有任何问题。通过使用 html href 重定向,我丢失了所有 SESSION 变量。你的意思是我必须在 href 中调用 exit() ?
-
我在每个页面上都使用 session_start
-
好的,我用代码编辑了问题
-
header()函数调用在哪里? -
header('sourcepage.php') 在登录页面中,成功重定向到带有会话变量的 sourcepage.php