PHP登录验证问题

时间:2015-07-27 05:47:35

标签: php validation login modal-dialog

  

这是我的PHP验证码

    include 'core/init.php';

if (empty($_POST) === false) {
  $username = $_POST['username'];
  $password = $_POST['password'];

    if (empty($username) === true || empty($password) === true) {
      $errors[] = 'Enter a valid username or password.';
    }
      elseif (user_exists($username) === false) {
        $errors[] = 'User does not exist.';
      }
      elseif (user_active($username) === false) {
        $errors[] = 'Please activate your account first.';
      }
      else {

        if (strlen($password) > 32) {
          $errors[] = 'Password too long. <br>';
        }

        $login = login($username, $password);

        if ($login === false) {
          $errors[] = 'Incorrect username or password.';
        }
          else {
            $_SESSION['user_id'] = $login; //login returns user_id  
            header('Location: hashtagphotowall.php');
            exit();
          }
        }

    //visual representation of error arrays
    //print_r($errors);

}
  else {
    if (empty($errors) === false) {
      $_SESSION['validation_errors'] = $errors;
      header('Location: login.php');
    }
  }
  

这是我在模态

中的登录表单
<div class="row">
  <div class="large-12 large-centered columns">

    <!--first modal form for login window-->
    <div id="firstModal" class="reveal-modal" data-reveal aria-hidden="true" role="dialog">

          <?php if(isset($_SESSION['validation_errors'])): ?>
            <div class="validation_error_box">
              <?php output_errors($_SESSION['validation_errors']); ?>
            </div>
          <?php endif; ?>

      <p class="modal-row"><em>Sign In.</em><hr></p>
      <a href="#" class="button small">Connect with Facebook</a>
      <p class="hr-enclosed">or login with email</p>

        <form action="login.php" method="post">

          <div class="field-box">
            <input type="text" name="username" placeholder="Username:" />
            <input type="password" name="password" placeholder="Password:" />
            <input type="submit" name="loginbutton" class="button small" value="LOGIN" />

              <?php
                function output_errors($errors) {
                  echo '<ul><li>' . implode('</li><li>', $errors) . '</li></ul>';
                }
              ?>
          </div>
        </form>

      <p class="modal-row-sub">forgot your password? get help <a href="#">here</a>.<br>
        new user? sign up <a href="#" data-reveal-id="secondModal">here</a>.</p>
      <a class="close-reveal-modal" aria-label="Close">&#215;</a>

    </div>
  

我无法实现我的目标,即在我的登录表单所在的同一位置显示验证错误。例如,在提交按钮下。&#34;在我使用此代码之前,我的第一个代码输出错误但未与登录表单内联。它在另一个网页上显示错误。所以我修改了它,以便我可以在输入标签下或在字段框本身下显示错误。但是现在我的代码发生了什么,当我点击登录按钮时,它重定向到另一个没有结果的网页。只是纯白页。我使用了标题(&#39;位置:login.php&#39;);这是我的PHP验证所在的地方。当我将其更改为我的登录表单是login-modal.php(注意我使用了正确的dir调用,无论你怎么称呼它),它重定向到另一个页面 NO 基础框架和CSS。只是简单的登录表单。还有没有显示验证错误

     

我只是一个后端网络开发的新手,所以请耐心等待。还请帮帮我。我一直坚持这个问题。谢谢。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用jquery进行同一页面更新&#39; AJAX&#39;。简单的PHP编码将无效。 当您使用简单的PHP时,它将用于重新加载目的,而如果您使用jquery,它将适用于刷新。