2017-04-12 78 views
-1

我很新的PHP和我想創建一個登錄div在右側欄上。那麼它似乎工作,但是當我登錄它表明我:「歡迎用戶」在同一頁面上沒有文本框

user name [  textbox   ] 
password [  textbox   ] 
      [  login button ] 


welcome new2 

很顯然,我不是intrested顯示textboxing和登錄按鈕,因爲用戶已經登錄的。

這裏是主頁的代碼(templat.php):

<?php 
    session_start(); 
    $db=mysqli_connect("localhost","root","","mydb"); 
?> 

<!DOCTYPE html> 
<html lang="he"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title><?php echo $title; ?></title> 
     <link rel="stylesheet" type="text/css" href="Styles/Stylesheet2.css" /> 
    </head> 
    <body dir="rtl"> 
     <div id="wrapper"> 
      <div id="banner">    
      </div> 

      <nav id="navigation" dir="rtl"> 
       <ul id="nav"> 
        <li><a href="index.php">home</a></li> 
        <li><a href="indexForum.php">topics</a></li> 
        <li><a href="#">on us</a></li> 
       </ul> 
      </nav> 

      <!-- 
      <div id="content_area"> 
       <?php 
       //echo $content; ?> 

      </div> 
      --> 
      <div id="sidebar"> 

    <div id="main-wrapper"> 
    <center><h2>Login Form</h2></center> 
      <div class="imgcontainer"> 
          <center> 
       <img src="images/avatar.png" width='60' height='60' alt="Avatar" class="avatar"> 
          </center> 
      </div> 
     <form action="Template.php" method="post"> 
      <div class="inner_container"> 
       <label><b>Username</b></label> 
           <br/> 
       <input type="text" placeholder="Enter Username" name="username" required> 
           <br/> 
       <label><b>Password</b></label> 
           <br/> 
       <input type="password" placeholder="Enter Password" name="password" required> 
           <br/> 
       <button class="login_button" name="login" 
      type="submit">Login</button> 
      </div> 
     </form> 
     <?php 
      if(isset($_POST['login'])) 
      { 


       $username = mysqli_real_escape_string($db, $_POST['username']); 
       $password = mysqli_real_escape_string($db, $_POST['password']); 
       $password=md5($password); //Remember we hashed password before storing last time 


       $sql="SELECT * FROM users WHERE username='$username' AND password='$password'"; 

       $result=mysqli_query($db,$sql); 
       $row = mysqli_fetch_array($result); 
       $num = mysqli_num_rows($result); 
       if($num==1) 
       { 
        $_SESSION['message']="You are now Loggged In"; 
        $_SESSION['username']=$username; 
        $id=$row['id']; 
        $_SESSION['id']=$id; 
       ?> 
        <div id="main-wrapper"> 
     <center><h3>Welcome <?php echo $_SESSION['username']; ?></h3></center> 

     <form action="Template.php" method="post"> 
      <div class="imgcontainer"> 
       <img src="images/avatar.png" alt="Avatar" width='60' height='60' class="avatar"> 
      </div> 
      <div class="inner_container"> 
       <button class="logout_button" type="submit">Log Out</button>  
      </div> 
     </form> 
    </div> 



       <?php 
       } 
       else 
       { 
        $_SESSION['message']="Username and Password combiation incorrect"; 
       } 
      } 
      ?> 

       </br> 
      </div> 

      </div> 
      <footer> 
       <p>aaa</p> 
      </footer> 
     </div> 
    </body> 
</html> 

更新:logout.php:

<?php 
session_start(); 
session_destroy(); 
unset($_SESSION['username']); 
$_SESSION['message']="You are now logged out"; 
header("Location:login.php"); 
?> 
+0

您可以用會話確認是用戶登錄重定向 –

+0

另一頁有登錄和內部內容不同的頁面。 – Justinas

+0

你需要在那裏放置一個if條件。就像if(empty($ _ SESSION))顯示登錄div else顯示歡迎用戶 –

回答

0

您需要檢查,如果用戶已經登錄你可以檢查$_SESSION['username']是否爲空。

更新您的登錄表單這樣的:

<?php if(!isset($_SESSION['username'])) { ?> 

<form action="Template.php" method="post"> 
     <div class="inner_container"> 
      <label><b>Username</b></label> 
      <br/> 
      <input type="text" placeholder="Enter Username" name="username" required> 
      <br/> 
      <label><b>Password</b></label> 
      <br/> 
      <input type="password" placeholder="Enter Password" name="password" required> 
      <br/> 
      <button class="login_button" name="login" 
        type="submit">Login 
      </button> 
     </div> 
</form> 

<?php }; ?> 
+0

zadrazil,你確定嗎?因爲現在它甚至在我消失的時候也沒有向我顯示文本框。 – Jordan1200

+0

看到我的評論。 – Jordan1200

+0

@ Jordan1200它取決於您在註銷後使用$ _SESSION進行的操作。只有完全取消設置$ _SESSION ['用戶名']才能使用此工作。試試if(empty($ _ SESSION ['username'])),您需要取消設置$ _SESSION ['username']或將其設置爲空。 –