doukun1450 2014-12-03 08:40
浏览 33

使用会话的用户身份验证导致重定向循环

I am trying to make a authentication script, to redirect logged/unlogged users to proper page but its causing redirect loop. I have two page index.php which has the login form and the mobile.php which has the contents for valid users. For authentication i have this code on the very first lines of index.php

session_start();
if (isset($_SESSION["username"]) && isset($_SESSION["userid"])) {
    header("location: mobile.php");
    exit();
}

and the very first lines of mobile.php is

session_start();
if(!isset($_SESSION["username"])){ 
    header("location: index.php"); 
}

But I dont know why its causing a redirect loop. Here are some screenshots. Thanks for your time. here you can see the redirectshere are the headers being sent

Here are some codes from index.php, these codes lines are followed by the form for login. In the validate function all I do is check if the username and password is valid, if yes then i regenerate session id, and set session variable username and userid. and return true.

if(isset($username) && isset($password)){
    $username = preg_replace('/[^a-zA-Z0-9]/', '', $username);  
    $password = preg_replace('/[^a-zA-Z0-9]/', '', $password);
    $returnmsg = validate($username,$password);
    if($returnmsg===true){
        // header("location: mobile.php");
        exit;
    } else {
        $returnmsg = 'Invalid username or password.';
    }           
}
  • 写回答

1条回答 默认 最新

  • dqeonr8554 2014-12-03 08:44
    关注

    Allways exit after location header.

    session_start();
    if(!isset($_SESSION["username"])){ 
       header("location: index.php"); 
       exit();
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b