PHP在header()之后丢失SESSION变量


PHP lost SESSION vars after header()

使用header()重定向后,我不断丢失SESSION变量。我尝试了在类似问题中找到的所有解决方案,比如每页顶部的session_start()和header()之后的exit(),但都不起作用。每次我在succlog.php页面中收到"id not set"。重定向到succlog.php非常有效。你能帮帮我吗?这是代码:

登录页面:

session_name("session1");
session_start();
     ..........
$qry = "SELECT * FROM `members` WHERE `usr` = '$username' AND `pass` = '" . md5($password) . "'";
$result = mysql_query($qry);
//Check whether the query was successful or not
if(mysql_num_rows($result) == 1) {
    while($row = mysql_fetch_assoc($result)) {
        $_SESSION['id'] = $row['id'];
        $_SESSION['usr'] = $username;
        session_write_close(); 
        header("location: succlog.php"); //Redirect
        exit();
    }
}

succlog.php:

   session_name("session1");
   session_start(); 
    ...........
   <?php 
  if(isset($_SESSION['id'])){
    echo "id".$_SESSION['id'];
  }
  else{
    echo "id not set";
  }
  ?>

根据询问者:

好的,我找到了!这是iPage的一个错误。以下是解决方案:)http://www.ipage.com/knowledgebase/read_article.bml?kbid=600