所有链接都重定向到index.php

时间:2015-06-06 04:28:56

标签: php server

我有一个PHP脚本。我的很多客户都在使用它。但是他们说很少,他们能够登录,但是当他们点击菜单中的任何链接时,它只会重定向到index.php

我已经检查了我的代码,菜单链接,文件夹...我甚至检查过用户浏览器设置,防病毒,防火墙......但没问题。

我不知道为什么会发生这种情况。这是我的会话文件,同时提交登录详细信息我包含此文件

admin_auth.php

pahole

login_submit.php

session_start();
if(isset($_SESSION['ADMIN']))
{
    $_SESSION['name'] = $_SESSION['ADMIN'];

 try {
 $bdd = new PDO('mysql:host=localhost;dbname=nerp', 'root', '');
 } catch(Exception $e) {
  exit('Unable to connect to database.');
 }  

    $m1 = "select * from users where username='".$_SESSION['ADMIN']."'";

    $resultat = $bdd->query($m1) or die(print_r($bdd->errorInfo()));

    //$m2 = mysql_query($m1) or die (mysql_error());
    //$m3 = mysql_fetch_array($resultat);
    $m3 = $resultat->fetch(PDO::FETCH_ASSOC);
    $_SESSION['uid'] = $m3['id'];
    $_SESSION['name'] = $m3['firstname'] ." ". $m3['lastname'];
    $_SESSION['pos']= $m3['position'];
    $_SESSION['department'] =$m3['department'];
    $_SESSION['location'] =$m3['location'];
    $_SESSION['password'] =$m3['password'];
    $_SESSION['auth'] = md5( date('Ymd') . $_SESSION['password'] );
    $_SESSION['email'] = $m3['email'];
}

else

if(!isset($_SESSION['ADMIN']) )
{

header("location:index.php");
}

这有什么问题吗? 。如果没有,为什么他们无法打开任何链接。

1 个答案:

答案 0 :(得分:1)

根据您的代码以及您描述的少数用户的症状,看起来很少有用户禁止使用Cookie。因此,当禁止使用cookie的用户在进行身份验证后进行后续请求时,他们不会发送PHPSESSID cookie(此处您可以看到示例)PHPSESSID

所以,代码中发生的情况是,服务器看到isset($ _ SESSION [' ADMIN'])设置,并将它们放到你的底部代码,将它们发送回index.php。

您可以通过在浏览器中禁用Cookie来测试此问题。修复它的方法(除告诉用户启用cookie之外)是将某种ID附加到URL并在用户通过站点移动时维护ID。如果您设置:

,PHP可以为您执行此操作
<?php
     ini_set("session.use_cookies",1);
     ini_set("session.use_only_cookies",0);
     ini_set("session.use_trans_sid",1);
     session_start();
?>

虽然我应该提到这适用于常规的html链接。它由PHP预处理器将其代码添加到您的链接。由于您提到了一个菜单,如果您的菜单链接是由javascript生成的,那么PHP预处理器不会知道将其代码添加到那里的链接。