这是我的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>
我无法实现我的目标,即在我的登录表单所在的同一位置显示验证错误。例如,在提交按钮下。&#34;在我使用此代码之前,我的第一个代码输出错误但未与登录表单内联。它在另一个网页上显示错误。所以我修改了它,以便我可以在输入标签下或在字段框本身下显示错误。但是现在我的代码发生了什么,当我点击登录按钮时,它重定向到另一个没有结果的网页。只是纯白页。我使用了标题(&#39;位置:login.php&#39;);这是我的PHP验证所在的地方。当我将其更改为我的登录表单是login-modal.php(注意我使用了正确的dir调用,无论你怎么称呼它),它重定向到另一个页面 NO 基础框架和CSS。只是简单的登录表单。还有没有显示验证错误。
我只是一个后端网络开发的新手,所以请耐心等待。还请帮帮我。我一直坚持这个问题。谢谢。我非常感谢你的帮助。
答案 0 :(得分:0)
使用jquery进行同一页面更新&#39; AJAX&#39;。简单的PHP编码将无效。 当您使用简单的PHP时,它将用于重新加载目的,而如果您使用jquery,它将适用于刷新。