创建PHP会话变量会挂起我的浏览器

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了创建PHP会话变量会挂起我的浏览器脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚从我的ASP洞穴中出现,并且无法适应 PHP的阳光.

我目前的问题在于一个简单登录序列,我在其中创建了一个会话变量 – 该步骤导致我的浏览器挂起然后行为不正常.

从我的登录页面(A.PHP),登录表单被定向到B.PHP(下面),它处理密码,创建会话变量,然后将用户重定向到另一个文件(C.PHP).

为简洁起见,我只是假设登录成功. B.PHP包含以下内容

<?PHP
session_start();
require "../scripts/base/toolBox.PHP";

fnPRocessLogin();

function fnProcessLOGin(){
    $passwd = strtoupPEr($_POST["passwd"]);
    if (strlen($passwd)==0)
    {
    $passwd=strtoupper($_SESSION['plpassword']);
    unset($_SESSION['plpassword']);
  } 
  try{
    $db = Database::getDB();
    $sql="SELECT securitylevel,staffID,staffname,stafflname,staffemail,iRoleiD From staff WHERE staffpasswd=?;";
    $data = array($passwd);
    $query = $db->prepare($sql);
    $query->execute($data);
    if($query->rowcount()>0){
      $row = $query->fetch();
      $a=$passwd."|".$row['staffID']."|".$row['staffname']."|".$row['stafflname']."|".$row['staffemail']."|".$row['iRoleID'];
      $_SESSION['admin'] = $a;
      header('Location: C.PHP');
    }

 } 
  catch(PDOException $pe){
    echo "We are sorry,but we cannot complete this database operation.";
    file_put_contents('PDOerrors.txt',$pe->getMessage(),FILE_APPEND);
  }
} 

?>

如果我注释掉“$_SESSION [‘admin’] = $a;”换行,重定向工作正常,但是一旦我尝试创建该会话变量,我的浏览器就会挂起,直到最终转到C.PHP,它无法正确加载任何文件.后退按钮操作似乎将浏览器置于无限循环中.

这个穴居人做错了什么?

谢谢,

布莱恩.

解决方法

我只是在这里猜测.

你需要一个exIT();在您的位置标题后.如果在重定向输出更多数据(例如,尝试设置cookie的会话),重定向将失败.

给它一个测试,看看会发生什么.

您还可以在会话分配后尝试session_write_close(),以在尝试重定向之前强制完成所有与会话相关的数据.我仍然强烈推荐exit();虽然.

脚本宝典总结

以上是脚本宝典为你收集整理的创建PHP会话变量会挂起我的浏览器全部内容,希望文章能够帮你解决创建PHP会话变量会挂起我的浏览器所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。