2013-04-29 103 views
1

我正在使用正常工作的登录系统制作网页。 我也做了一个人必须登录才能查看的页面。它也工作正常,当用户登录时它也会给出一个欢迎的“用户名”消息。会话变量在某些页面上丢失

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

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

<?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...... 

回声$ currentuser上印刷什么该页面。这是假设打印登录的用户,但由于某种原因,事实并非如此。

请帮助,因为我真的不知道什么是错的! 韩国社交协会提前。

+2

你尝试var_dump($ _ SESSION);检查会话是否正确存储? – Fabio 2013-04-29 21:17:18

+1

可能是你打电话给session_start();在require(“member.php”); ? – voodoo417 2013-04-29 21:26:05

+0

在成员页我有一个函数Tat检查如果用户登录.....但我没有会话启动 – user2307236 2013-04-30 21:11:12

回答

0
session_start(); 

需要成为每页上调用的第一件东西。