gpt4 book ai didi

javascript - 使用ajax通过javascript提示验证密码

转载 作者:行者123 更新时间:2023-11-29 07:57:59 24 4
gpt4 key购买 nike

在网页中,我试图实现一个按钮来提示输入用户密码以便注销。我想要做的是使用 javascript 提示来请求它,然后通过 AJAX 将其发送到 php 文件,该文件将验证密码是否正确,如果正确,它将返回到 index.html。到目前为止我尝试过的方法如下:

HTML:

<button style="" type="submit" class="" onclick='checkPass()'>              
Logout
</button>

<script>
function checkPass()
{
var usr = "<?php echo $usr = $_POST['usr']; ?>";
var pass=prompt("Please write your password","");
if (pass!=null && pass!="")
{
$.post("check.php", {pass: pass, usr:usr});
}
}

</script>

检查.php:

<?php

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name


// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$pass = mysql_escape_string($_POST['pass']);
$usr = mysql_escape_string($_POST['usr']);
$sql = mysql_query("SELECT * FROM USERS WHERE Usr='$usr' and Password='$pass'");

$count=mysql_num_rows($sql);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
header("location:index.php");
}
else {

}

?>

这就是我所拥有的,但什么也没有发生(我没有得到任何回应)... :(

感谢您的帮助!

最佳答案

这个:

if($count==1){
header("location:index.php");
}

没有做你认为它正在做的事情。请记住,此请求是通过 AJAX 发出的,而不是通过主浏览器窗口发出的。这种性质的重定向实际上并不告诉浏览器执行任何操作,它只是发送带有特定 header 的特定响应类型。通常,这建议浏览器应该向另一个页面(在本例中为index.php)发起新请求。浏览器通常会满足此请求。

但是,AJAX 有点不同。服务器端代码仍然使用相同的 header 发送相同的响应类型,但浏览器不是发出请求的浏览器。 JavaScript 代码是。 JavaScript 代码不会自动遵循此建议来重定向用户。你必须自己做。

AJAX 请求和响应通常只包含数据。这样您就可以将一些数据发送回客户端。您可以对某些值进行 JSON 编码,但在这种情况下,像这样简单的东西就可以解决问题:

if($count==1){
echo "true";
}
else {
echo "false";
}

然后在客户端回调中,检查该值并做出相应响应:

$.post("check.php", {pass: pass, use:use}, function (response) {
if (response == 'true') {
// redirect the user
} else {
// authentication failed
}
});

在 JavaScript 中执行重定向是 easy enough .

<小时/>

Edit: on the console I'm getting the error: ReferenceError: Can't find variable: $ $.post("check.php", {pass: pass, usr:usr});

好吧,在这种情况下,听起来您还没有加载 jQuery 库。 You need to do that为了使用 jQuery 代码。

关于javascript - 使用ajax通过javascript提示验证密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24601245/

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