2017-04-12 79 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']或将其设置为空。 –