1

我已经在我的管理面板中的所有页面上设置了会话,如下所示:

session_start();

if(!isset($_SESSION['username']))
   header("Location: login.php?e=please+login+first");

这似乎在我的所有页面上都可以正常工作,但是现在当我刷新页面或单击链接时,页面会自动重定向到login.php. 这似乎很少发生。我不明白是什么导致了这个问题

例如,我的菜单栏如下:

home : doctors: hospitals:  feedback

如果我在hospitals.php,几分钟后我点击feedback.php(或任何其他链接)我被重定向到login.php。下次如果我再次单击该链接,我将不会被重定向

这是我的 dologin.php 代码

$qry = "select * from admin where username='$uname' and password='$pwd'";
//echo $qry;exit;
$rs = mysql_query($qry,$con);
if($rec= mysql_fetch_array($rs))
{
  $_SESSION['username'] = $rec['username'];
    header("Location: index.php");
}
 else if (empty($uname))
{
     header("Location: login.php?e=Please+enter+username");
}
 else
 {
     header("Location: login.php?e=Invalid+username+or+password");
 }
4

2 回答 2

3

编辑:替换您的查询:

$qry = "select * from admin where username='$uname' and password='$pwd'";

有了这个:

$qry = "select * from admin where username='" . $uname . "' and password='" . $pwd . "'";

还要替换您的:

session_start();

和:

if (!isset($_SESSION)) {
  session_start();
}

建议:我还建议将在文件之间重用的内容放在 PHP 包含中,例如 header.php。

PS:尝试接受更多的答案,它有助于激励人们回答你的问题。也让社区保持活力。

于 2012-05-09T15:30:11.667 回答
1

您可以尝试在使用标头重定向之前调用 session_write_close() 以确保会话已关闭。

于 2012-05-09T15:31:34.970 回答