2017-03-22 44 views
-4

我使用html,css,jquery和php製作頁面,這裏是一個登錄函數,當我成功登錄時,頁面會顯示我的用戶名。但是當我刷新我的頁面時,用戶名會變成「登錄」。每當我刷新時,它是否會自動註銷?如何防止這種情況發生? 我使用ajax將數據追加到html,如果設置會話該怎麼辦?如何在刷新我的頁面時阻止註銷?

LOGIN USERNAME

<?php 
 
    session_start(); 
 

 
    // include "maroon5/includes/dbh.php"; 
 
    define ("root",$_SERVER['DOCUMENT_ROOT']);// 
 
    include root."maroon5/includes/dbh.php"; 
 

 
    if(isset($_SESSION['id'])){ 
 
     // echo $_SESSION['id']; 
 
     //WHAT SHOULD I DO HERE??? 
 
    } 
 
    
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
\t <title>Maroon5 | Official Site</title> 
 
\t <link rel="stylesheet" type="text/css" href="styles/style.css">
的jQuery:

$(document).ready(function(){ 
$(document).on('click',"#submit",function(){ 
    var email = $("#edit-name").val(); 
    var pass = $("#edit-pass").val(); 
    // alert (email); 
    $.ajax({ 
     url:"functions/php/login.php", 
     type:"POST", 
     data:{ email:email,pass:pass}, 
     beforeSend: function() { 

     }, 
     success:function(data){ 

      console.log(data); 
      // alert(data); 
      $("#edit-name").val(" "); 
      $("#edit-pass").val(" "); 
      // $("#user-login-register").hide(); 
      $("#popup-box1").hide(); 
      // 
      $(".user-link-login").css({"display":"none"}); 
      $(".user-menu").append(data); 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert(XMLHttpRequest.status); 
      alert(XMLHttpRequest.readyState); 
      alert(textStatus); 
     }, 
    }); 
    return false; 
}); 

}); 

PHP:

<?php 

session_start(); 

error_reporting(E_ALL); 
ini_set('display_errors',1); 

define ("root",$_SERVER['DOCUMENT_ROOT']); 
// echo root; 
include root.'/maroon5/includes/dbh.php'; 
// var_dump($_REQUEST); 

$email = $_POST['email']; 
$pass = $_POST['pass']; 

$conn = mysqli_connect("localhost", "root", "", "maroon5"); 
$sql = "SELECT * FROM user WHERE email= '$email' AND pass='$pass' "; 
$res = mysqli_query($conn, $sql); 
$num = mysqli_num_rows($res); 

$row = $res ->fetch_assoc(); 

if(!$email & !$pass){ 
    echo "All fields required"; 
}elseif(!$email){ 
    echo "Email required"; 
}elseif (!$pass) { 
    echo "Password required"; 
}elseif ($num == 0) { 
    echo "wrong"; 
}else{ 
    // echo "success"; 
    $_SESSION['id'] = $row['id']; 
    ?> 
    <li class="user-profile"> 
     <a class="" > 
      <img src = "<?php echo $row["pic"] ?>" /> 
      <span class="user-username"><?php echo $row["username"];  ?></span> 
     </a> 
     <ul class="menu-dropdown"> 
      <li class="user-pro"><a href="">VIEW PROFILE</a></li> 
      <li class="user-verify-account"> <a class="user-parent-account" href=""><i class="fa fa-envelope-o" aria-hidden="true"></i>VERIFY ACCOUNT</a></li> 
      <li class="user-logout"><a class="user-parent-logout" href=""><i class="fa fa-sign-out" aria-hidden="true"></i>LOGOUT</a></li> 
     </ul> 
    </li> 

    <?php 
} 

?> 
+5

您需要在會話中存儲用戶的詳細信息,然後在每次連續頁面加載時從會話中讀回。如果你的Google已經有很多資源可以覆蓋如何做到這一點。 –

+1

你的代碼在哪裏? – Deep

+1

看來你並沒有保存狀態。你在使用會話嗎?你需要發佈你的代碼。 – jeroen

回答

1

也許嘗試設置的SA會話變量擁有你的名字或唯一的ID。這樣,您可以更輕鬆地刷新信息時重新加載信息。

+4

這是一條評論,而不是答案。 –

+0

是的意思是把它留作評論。但是,謝謝你重申對方剛剛說的話。直到你出現,我都沒有明白。 – AlexGimson