会话变量在某些页面上丢失

时间:2013-04-29 21:13:14

标签: php

我正在使用一个工作正常的登录系统制作一个网站。 我还创建了一个必须登录才能查看的页面。它也工作正常,当用户登录时也会发出欢迎的“用户名”消息。

但是由于未知原因,此会话变量未存储到其他页面。问题是我使用了与登录限制页面相同的方法。

以下是我的登录页面。 (工作正常)。

<?php
    session_start();
?>
  <form id="login_form" method="post" action="">

      <p>
        <?php
    if(isset($_POST["username"]) && isset($_POST["password"])){
        $username = $_POST["username"];
        $password = $_POST["password"];

        if(strlen($username) < 4 || strlen($password) < 4){
            echo "Username or Password are invalid.";
        }else{
            require("connect.php"); 

            $login = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'  ") or die(mysql_error());

            if(mysql_num_rows($login) == 0){
                echo "Username or Password are incorrect!";
            } else{
                require("member.php");

                $member_info = mysql_fetch_assoc($login);
                setMember($member_info["id"]);
                $_SESSION['user'] = "$username";
                echo "Welcome ".$member_info["fname"]." ".$member_info["lname"]."<br />";
                echo "Redirecting... Please wait.";
                jumpTo("my_logs_testing.php",2);
            }

            //Free result & close connection.
            mysql_free_result($login);
            mysql_close($link);
        }
    }else{
    }

  ?>
      </p>
      <table frame="box" bgcolor="" width="40%" border="0" cellpadding="6" align="center">
        <tr>
      <td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Diving Advisor | Log In System</strong></font> </div>      </tr>
          <tr>
            <td width="25%"><font color="#FFFFFF"><strong><label for="username2">Username:</label></strong></font></td>
            <td width="75%" align="left"><input name="username" type="text" id="username" size="30" maxlength="20" /></td>
          </tr>
          <tr>
            <td><font color="#FFFFFF"><label for="password"><strong>Password:</label></strong></font></td>
            <td align="left"><input name="password" type="password" id="password" size="30" maxlength="20" /></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="submit_login" id="submit_login" value="Log In" /></td>
          </tr>
    </table>
  </form>

这是具有登录限制的页面(工作正常)。

<?php

    session_start();
    $current_user = $_SESSION['user'];
    require("member.php");

    if( !isMember() ){
        header("Location: login.php");  
    } else {
?>
 <?php

if(mysql_connect('localhost', 'root','') && mysql_select_db('diving_advisor')){

    echo "Welcome ".$current_user;  
    $errors = array();

    if(isset($_POST['datepicker'],$_POST['location'],$_POST['description'])) {
cont.......................

这是其他页面之一无效(会话变量似乎丢失了!这就是问题!!!!

<?php

    session_start();
    $current_user = $_SESSION['user'];

    require("member.php");

?>
Here is code from template.......................
Then the editable region....
<?php
echo $current_user;
?>

  <p><strong>Heading 1</strong></p>
  <p>This is the home page of the diving advisor application.
  Lore......

echo $ currentuser在页面上没有打印任何内容。假设打印登录用户但由于某种原因不是。

请帮忙,因为我真的不知道有什么问题! 请事先提前。

1 个答案:

答案 0 :(得分:0)

session_start();

需要成为每页调用的第一件事。