2013-04-29 47 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(); 

需要成爲每頁上調用的第一件東西。