登录页面PHP JS MYSQL问题



我的问题是我想为一个网站做一个登录页面它允许我用错误的用户名和密码登录,js部分是我认为我有问题的但这里是我的代码可能会有一些问题

JS上的login.php:

<script type="text/javascript">
$(function(){
$('#login').click(function(e){
var valid = this.form.checkValidity();
if (valid) {
var username = $('#username').val();
var password = $('#password').val();
e.preventDefault();
$.post('jslogin.php',
{
username: username,
password: password
},
function(data,status){
if (status === 'success') {
Swal.fire(
'Successful',
'You logged in successfully',
'success'
).then(function() {
window.location = "index.php";
})
}else{
Swal.fire(
'Error',
"We couldn't log you in with what you just entered!",
'error'
).then(function() {
window.location - "login.php";
})
}
});
}else {
}
})
});
jlogin .php从ajax命令
<?php
require_once('config.php');
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1";
$stmtselect = $db->prepare($sql);
$result = $stmtselect->execute([$username, $password]);
if ($result) {
$user = $stmtselect->fetch(PDO::FETCH_ASSOC);
if ($stmtselect->rowCount() > 0) {
echo '1';
}else{
echo 'there is no user for what you have entered!';
}
}
else{
echo 'error at connecting to database';
}
?>

config.php from jlogin .php

<?php
$db_user = "root";
$db_pass = "";
$db_name = "user accounts";
$db = new PDO('mysql:host=localhost;dbname=' . $db_name . ';charset=utf8', $db_user, $db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

总是" success ";因为响应码是200。您需要修改PHP,以便在凭据错误时发送不同的状态码(如401)。见https://www.php.net/manual/en/function.http-response-code.php

最新更新