Php 登录功能不支持';无法验证
我有一个登录表单,如果用户名和密码都正确,它可以成功地将用户登录到该站点。但是,如果这些凭证中的任何一个错误或为空,它会将我重定向到空白页custom_functions.php。它不会验证我的用户名和密码,应该是这样的。感谢您的帮助。这是我的密码 login.phpPhp 登录功能不支持';无法验证,php,validation,Php,Validation,我有一个登录表单,如果用户名和密码都正确,它可以成功地将用户登录到该站点。但是,如果这些凭证中的任何一个错误或为空,它会将我重定向到空白页custom_functions.php。它不会验证我的用户名和密码,应该是这样的。感谢您的帮助。这是我的密码 login.php <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to Lov
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Love Her Feet</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/login_assets/css/style.css">
<link href="https://fonts.googleapis.com/css?family=Raleway:300,400,500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/login_assets/css/media.css">
<script src="/login_assets/js/jquery.min.js"></script>
<script src="/login_assets/js/modernizr.custom.js"></script>
</head>
<body>
<header class="clear hBlack">
<div class="jLogo"><a href="/"><img src="/login_assets/images/logo.png" alt=""></a></div>
</header>
<div class="logArea clear">
<form action="custom_functions.php" method="post" enctype="application/x-www-form-urlencoded">
<div class="logbox">
<div class="box clear">
<h2>Members Area</h2>
<div class="logTypes">
<input type="text" name="username" class="logtextbox" placeholder="Username or email">
<span class="text-danger"><?php echo $username_error; ?></span>
<input type="password" name="password" class="logtextbox" placeholder="Password"><br>
<span class="text-danger"><?php echo $password_error; ?></span>
<!-- <input type="text" name="captcha" class="logtextbox" placeholder="Enter the code shown below"><br>
<img style="margin: 0 auto;" src="captcha.php">
<span class="text-danger"><?php echo $captcha_error; ?></span> -->
<div style="text-align: center">Remember my login: <input name="remember" type="checkbox"></div>
</div>
</div>
<input type="submit" value="submit" class="logBtn" name="submit">
</div>
</form>
<div class="logtext1">
</div>
<div class="logtext2">
</div>
</div>
</div>
<footer class="clear">
<p class="fNav"><a href="/">Home</a><span>|</span>
<a href="/">Log Out</a>
</p>
</footer>
</body>
</html>
欢迎来到爱她的脚
成员区
记住我的登录名:
|
自定义函数.php
<?php
function validation($form_data)
{
$form_data = trim(stripcslashes(htmlspecialchars($form_data)) );
return $form_data;
}
if ($_SERVER['REQUEST_METHOD'] == "POST"){
if(isset($_POST["submit"])) {
login_function();
}
}
function login_function() {
session_start();
require 'connection.php';
$username_error = "";
$password_error = "";
$v_username = $_POST['username'];
$v_password = $_POST['password'];
$username = validation($v_username);
$password = validation($v_password);
$remember = isset($_POST['remember']);
if(empty($username))
{
$username_error = "<p>Please enter your username!</p>";
}
if(empty($password))
{
$password_error = "<p>Please enter your password!</p>";
}
if(!empty($username) && !empty($password)) {
$sql = "SELECT * FROM member_auth WHERE username = :username";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':username', $username);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
$cryptpass = $user['cryptpass'];
if($user === false){
$username_error = "<p>User doesn't exist</p>";
} elseif($user) {
$newPass = crypt($password, $cryptpass);
if($cryptpass == $newPass) {
$_SESSION['loggedin'] = TRUE;
$_SESSION['username'] = $username;
if($remember == "on") {
setcookie("remember", $username, time()+3600);
}
header('Location: login_success.php');
} else {
$password_error = "<p>Password is not correct!</p>";
}
}
}
}
?>
登录\u success.php
<?php
session_start();
if(isset($_SESSION["loggedin"]) || $_COOKIE["remember"]) {
echo "Welcome, {$_SESSION["username"]} <br>";
echo "<a href='logout.php'>Logout</a>";
} else {
header("Location: login.php");
}
不是。虽然是同一个函数,但不是同一个问题。现在它通过了,它登录到用户,如果我输入了错误或空的凭证,它就不会显示我的验证。错误只存在于函数中。你从未对它们做过任何事。你激活过错误吗?正如@aynber在他的评论中所说,您只设置了一个带有错误的变量,但并没有像echo$password那样使用它_error@aynber它们位于login.php下面的表单输入字段中。