PHP 会话在下一页死亡


PHP Sessions Dies on next page

我有一个登录页面,该页面将变量发送到另一个页面,验证登录是真(1(还是假(0(。我可以在第 1 页上回显 $_SESSION['logon'],但就在我转到第 2 页时,我的会话似乎已经死了,给了我 * 注意:未定义的索引:登录 * 我已经摆弄了 php.ini但无济于事。顺便说一下,Register_globals = 关闭。我是菜鸟,所以我可能传递了一些错误的东西,没有在 php.ini 中更改正确的参数,不知道。

登录页面:

<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
 <head>
 <title>Alpha</title>
 <link rel="stylesheet" href="CSS.css">  
 <script type="text/javascript" src="js/jquery-1.3.1.min.js"></script>
 <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
 <script type="text/javascript" src="js/jquery.history.js"></script>  
</head>
<body>
<form id="logbox" method="post" action="verylog.php">
User     <input id="user" name="user" type="text" required/>
Password <input id="pass" name="pass" type="PASSWORD" required/>
<input id="send" type="submit"/>
</form>     
<?php
if(isset($_POST['user'])){
    header("Location: verylog.php");
}
?>
</body>
</html>

非常日志。PHP"page1">

 <?php
  session_start();
  $user=$_POST['user'];
  $pass=$_POST['pass'];
  $_SESSION['logon']=0;
  $cost   = ['cost' => 10,];
  $hasheduser=password_hash($user, PASSWORD_BCRYPT,$cost);
  $hashedpass=password_hash($pass, PASSWORD_BCRYPT,$cost);
  $storeuserhash=file_get_contents('sunburn/userburn.txt');
  $storepasshash=file_get_contents('sunburn/passburn.txt');
  if(password_verify($user, $storeuserhash) && password_verify($pass, $storepasshash)){
    session_regenerate_id(true);
    $_SESSION['logon']=1;
    header ("Location: ../sunburn/selector.php");   
    die();
    //echo $_SESSION['logon'];
  } else{
   header ("Location: ../burnlogin.php");
   die();
  }
?>

选择器.php"第 2 页">

<?php
      session_start();
      $logon=$_SESSION['logon'];
    if($logon==0){
        //header("Location: index.php");
        exit();
        echo $_SESSION['logon'];
    }else{
?>
                            <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
<head>
<link rel="stylesheet" href="localhost/CSS.css"> 
<link rel="stylesheet" href="CSS.css">  
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div class="divreg">    
        <div>
        <a href="../sunburn/register.php">
        <button  type="button" >-REGISTRAR-</button>
        </a>
        </div>
        <div>
        <a href="../sunburn/deltePAGE.php">
        <button class="button1"  type="button" value="deltePAGE" >-DELETAR-</button>
        </a>
        </div>          
</div>          
    <div id="select">
    </div>
</body>
<?php
    }
    ?>

对于我可能发送的任何错别字,我深表歉意。

您在echo之前使用exit,您需要检查pag2的条件.php如下所示:

if(isset($_SESSION['logon']) && $_SESSION['logon'] != "") {
    $logon=$_SESSION['logon'];
        if($logon==0){
        //header("Location: index.php");
        echo $_SESSION['logon'];
        exit();
       }
}