gpt4 book ai didi

javascript/ajax登录系统

转载 作者:行者123 更新时间:2023-11-29 22:20:22 25 4
gpt4 key购买 nike

我想为我的登录系统使用 script/ajax。到目前为止,我已经能够返回包含所有错误的数组,如果登录成功,则设置 $_SESSION['id']:

<script type="text/javascript">
$(document).ready(function() {
$("input[type=button]").click(function () {
var username = $('input[id=username]').val(); // get the username
var password = $('input[id=password]').val(); // and the password
if (username != '' || password !='') { // if not empty

$.ajax({
type: "POST",
url: "loginUser.php",
data : "username="+username+"&password="+password,
dataType: "json",
success: function (data) {
var success = data['success'];
if(success == 'false'){
var error = data['message'];
alert(error); // the array with all the errors
}else{
$('#mask , .login-popup').fadeOut(300 , function() {
$('#mask').remove();
});// end fadeOut function()
setTimeout("location.href = 'home.php';",1500);
}
}
});//end success function

} else {
alert('Enter some text ! '); // just in case somebody to click witout writing anything :)
}
});//end click function
});//end ready function
</script>

loginUser.php 基本上检查了所有功能,然后像这样发回数据:

if (empty($_POST)===false){
$email = sanitize($_POST['username']);
$password = sanitize($_POST['password']);


if (empty($email) === true || empty ($password) === true){

$errors[] = 'You need to enter a username and password';
} else if (mail_exists($email) === false){
$errors[] = 'we can\'t find that username. have you registered?';
}else if (user_active($email) === false){
$errors[] = 'you haven\'t activated your account!';
}else {
$login = login($email, $password);
if ($login === false){
$errors[] = 'username/password combination is incorrect!';
}else {
//set user session
$_SESSION['id'] = $login;

//redirect user to home
echo json_encode(array("success"=>'true'
));
}

}
echo json_encode(array("success"=>'false',
"message"=>$errors,
));
}

正如我所说,如果密码和用户名不正确,我会收到所有警报,如果密码和用户名正确,我会收到 $_SESSION 设置,但弹出窗口保持显示,我没有得到重定向(但我可以访问,因为 session 集)。测试 success 是 == true 还是 == false 是否正确???

***编辑:已修复,问题出在 php 文件中。看我的回答....

最佳答案

修复了!问题出在 php 文件中的 if else 逻辑中:

JS:

<script type="text/javascript">
$(document).ready(function() {
$("input[type=button]").click(function () {
var username = $('input[id=username]').val(); // get the content of what user typed ( in textarea )
var password = $('input[id=password]').val(); // get the content of what user typed ( in textarea )
$.ajax({
type: "POST",
url: "loginUser.php",
data : "username="+username+"&password="+password,
dataType: "json",
success: function (data) {
var success = data['success'];
if(success == false){
var error = data['message'];
alert(error); // just in case somebody to click on share witout writing anything :


}

if(success == true) {
$('#mask , .login-popup').fadeOut(300 , function() {
$('#mask').remove();
});// end fadeOut function()
setTimeout("location.href = 'home.php';",1000);
}
}

});//end ajax
});//end click function
});//end ready function

登录用户.php:

   <?php
if (empty($_POST)===false){
$email = sanitize($_POST['username']);
$password = sanitize($_POST['password']);

if (empty($email) === true || empty ($password) === true){
$result = false;
$errors = 'You need to enter a username and password';
echo json_encode(array("success"=>$result,
"message"=>$errors,
));
} else if (mail_exists($email) === false){
$result = false;
$errors= 'we can\'t find that username. have you registered?';
echo json_encode(array("success"=>$result,
"message"=>$errors,
));
}else if (user_active($email) === false){
$result = false;
$errors = 'you haven\'t activated your account!';
echo json_encode(array("success"=>$result,
"message"=>$errors,
));
}else {
$login = login($email, $password);
if ($login === false){
$result = false;
$errors = 'username/password combination is incorrect!';
echo json_encode(array("success"=>$result,
"message"=>$errors,
));
} else {
//set user session
$_SESSION['user_id'] = $login;
$result = true;
echo json_encode(array("success"=>$result
));

}
}
}
?>

关于javascript/ajax登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com