【问题标题】:php session variable value dont update in same pagephp会话变量值不在同一页面中更新
【发布时间】:2016-04-16 19:14:27
【问题描述】:

我有一个名为“logerr”的会话变量,如果该变量等于 0 用户尚未登录或登录正常...但如果未找到用户/pswd .. 变量更改为 1 并且主页显示“登录错误 像这样 index.php


<?php 
    session_start(); 
    if(isset($_SESSION['openclose']) && $_SESSION['openclose']=='1') {
        header("location:index2.php");
        exit();     
    }
?>
<?php 
   if(isset($_SESSION['logerr'])) {
    $errlog=$_SESSION['logerr'];
   } else {
    $errlog=0;   
   }
?>
bla
bla
 <?php
 if($errlog==1) {
  ?>
    <h5 class="redfont">Error de Login!!</h5>
       <?php
  }
    ?>                 
<h2>write user & pswd</h2>
 <form id="form1" name="form1" method="post" action="f1.php">

废话 呵呵

f1.php


ob_start();
bla
bla

if($count==1){  <-- means if the user or paswd was found
session_start();
    $_SESSION['logerr']=0;
    $_SESSION['openclose'] = '1';
bla
bla
    header("location:index2.php");
    exit();

} else {
    $_SESSION['logerr']=1;
    header("location:index.php");
    exit();
}
?>

问题是登录错误短语永远不会出现,并且错误变量始终为零..

【问题讨论】:

    标签: php session variables


    【解决方案1】:

    尝试将会话开始移动到 if 语句之前的行。在您的情况下,会话只会在您没有错误时开始,因此您无法设置错误变量。

        ob_start();
    // bla bla
    session_start(); // moved //
    
    if($count==1){  <-- means if the user or paswd was found
    $_SESSION['logerr']=0;
    $_SESSION['openclose'] = '1';
    bla
    bla
    header("location:index2.php");
    exit();
    
    } else {
    $_SESSION['logerr']=1;
    header("location:index.php");
    exit();
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2014-07-07
      • 1970-01-01
      相关资源
      最近更新 更多