这是我的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">×</a>
</div>我无法达到“在登录表单所在的同一位置显示验证错误。例如,在submit按钮下”。在我到达此代码之前,我的第一段代码输出一个错误,但不符合登录表单。它在另一个网页上显示错误。因此,我修改了它,以便在输入标签或字段框本身下显示错误。但是现在我的代码发生了什么,当我点击登录按钮时,它会重定向到另一个没有结果的网页。只是普通的白纸。我使用了标题(‘Location: login.php');这是我的php验证所在的位置。当我将其更改为登录表单的位置时,即log-modal.php(请注意,我使用了对dir的正确调用,无论您如何称呼它),它将重定向到另一个页面,该页面没有基础框架和CSS。只是普通的登录表格。同时,也没有显示的验证错误。 我只是一个新手,后端网络开发,所以请容忍我。也请帮帮我。我被这个问题困扰很久了。谢谢。我非常感谢你的帮助。
发布于 2015-07-27 05:56:21
使用jquery进行相同的页面更新'AJAX‘。简单的PHP编码不会有效。当您使用简单PHP时,它将用于重新加载目的,而如果使用jquery,它将用于刷新。
https://stackoverflow.com/questions/31645722
复制相似问题