首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP登录验证问题

问PHP登录验证问题
EN

Stack Overflow用户
提问于 2015-07-27 05:47:34
回答 1查看 153关注 0票数 0

这是我的PHP验证代码

代码语言:javascript
复制
    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');
    }
  }

这是我在一个模式中的登录表单

代码语言:javascript
复制
<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>

我无法达到“在登录表单所在的同一位置显示验证错误。例如,在submit按钮下”。在我到达此代码之前,我的第一段代码输出一个错误,但不符合登录表单。它在另一个网页上显示错误。因此,我修改了它,以便在输入标签或字段框本身下显示错误。但是现在我的代码发生了什么,当我点击登录按钮时,它会重定向到另一个没有结果的网页。只是普通的白纸。我使用了标题(‘Location: login.php');这是我的php验证所在的位置。当我将其更改为登录表单的位置时,即log-modal.php(请注意,我使用了对dir的正确调用,无论您如何称呼它),它将重定向到另一个页面,该页面没有基础框架和CSS。只是普通的登录表格。同时,也没有显示的验证错误。 我只是一个新手,后端网络开发,所以请容忍我。也请帮帮我。我被这个问题困扰很久了。谢谢。我非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-07-27 05:56:21

使用jquery进行相同的页面更新'AJAX‘。简单的PHP编码不会有效。当您使用简单PHP时,它将用于重新加载目的,而如果使用jquery,它将用于刷新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31645722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档