2016-05-14 53 views
0

我对web开发非常陌生,现在正在开展一个学校项目。 我的登录码有问题,但我无法弄清楚它是什么。 当我提交表单时,页面似乎只是重新加载,并且没有设置会话。这个php登录页面有什么问题?

我的缩短登录页面:

<?php include "connect.php"; 

if (isset($POST['login'])) { 
    $user_email_username = mysqli_real_escape_string($link, $_POST['email_username']); 
    $user_password = mysqli_real_escape_string($link, $_POST['password']); 

    $email_username_query = mysqli_query($link, "SELECT * FROM User WHERE email='$user_email_username' OR username='$user_email_username'"); 

    if (mysqli_num_rows($email_username_query) == 0) { 
     $not_registered_error = "It looks like you still don't have an account. <a href=\"signup.php\">Sign up</a>."; 
    } else { 
     $row = mysqli_fetch_array($email_username_query); 
     if (sha1($user_password) != $row['password']) { 
      $wrong_password_error = "The password you submitted is wrong."; 
     } else { 
      $_SESSION['user_id'] = $row['idUser']; 
      $_SESSION['user_name'] = $row['name']; 
      $_SESSION['user_username'] = $row['username']; 
      header("Location: index.php"); 
     } 
    } 
} 
?> 
<!--metadata--> 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-6 col-md-offset-3"> 
      <div id="login" class="login-panel panel panel-default"> 
       <div class="panel-body"> 
        <form role="form" method="post" action="login.php"> 
         <fieldset> 
          <!--login form--> 
         </fieldset> 
         <?php if (isset($not_registered_error)) { 
          echo "<div class=\"alert alert-danger\" role=\"alert\">" . $not_registered_error . "</div>"; 
         } 
         if (isset($wrong_password_error)) { 
          echo "<div class=\"alert alert-danger\" role=\"alert\">" . $wrong_password_error . "</div>"; 
         } ?> 
         <p>Haven't joined yet? <a href="signup.php">Sign up</a>.</p> 
        </form> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
//... 

不像我在网上找到的大多数例子,我想在这里完成是有计划要弄清楚的用户名(或电子邮件)是否不存在或该用户名的密码错误。 我写的注册程序非常棒。问题本身已经足够长了,所以我没有添加signup.php。让我知道它是否有帮助。 将mysql用于本地数据库并使用Bootstrap进行样式设置。

我知道这个问题对许多人都没有帮助,因为它被问到,但我不知道如何更好地制定它。

谢谢大家:d

+0

*不像你找到最例子*?这似乎是登录的基础...... – jeroen

+0

我的意思是,大多数示例使用这样的查询:“SELECT * FROM用户WHERE电子邮件='$ user_email_username'和密码='$密码'”;这种方式,你不能告诉问题是在电子邮件提交或在密码... –

+0

瑞安文森特,谢谢:) –

回答

7
if (isset($POST['login'])) { 

需要是:

if (isset($_POST['login'])) { 
+0

还在学习堆栈溢出:P – iGNEOS

+0

这是一个疏忽......对不起 –