Javascript 使用AJAX和PHP验证简单密码

Javascript 使用AJAX和PHP验证简单密码,javascript,php,ajax,passwords,password-protection,Javascript,Php,Ajax,Passwords,Password Protection,我希望有一个简单的问题要解决。我们正试图用一个简单的密码来保护网站安全部分内的链接。基本上,在我们传统的安全站点中,我们有一个动态驱动的记录表,带有一个小挂锁图标,可以在锁定和解锁之间来回切换。网站的这一部分传统上是安全的,只有授权用户才能访问。因此,我们只想实现这个不太安全的静态PHP密码身份验证系统,它允许用户锁定和解锁此表中的记录。实际上,一旦他们在表中创建了一条记录,他们就可以选择单击锁定图标(这显然会锁定记录),但只有那些具有简单硬编码pin的人才能在记录锁定后解锁记录(即所有用户都可

我希望有一个简单的问题要解决。我们正试图用一个简单的密码来保护网站安全部分内的链接。基本上,在我们传统的安全站点中,我们有一个动态驱动的记录表,带有一个小挂锁图标,可以在锁定和解锁之间来回切换。网站的这一部分传统上是安全的,只有授权用户才能访问。因此,我们只想实现这个不太安全的静态PHP密码身份验证系统,它允许用户锁定和解锁此表中的记录。实际上,一旦他们在表中创建了一条记录,他们就可以选择单击锁定图标(这显然会锁定记录),但只有那些具有简单硬编码pin的人才能在记录锁定后解锁记录(即所有用户都可以锁定,但并非所有用户都可以解锁)。因此,我尝试编写一个简单的PHP+AJAX pin系统。我的另一位管理员坚持使用服务器端解决方案。他拒绝只使用基本的javascript,我也同意。它仍然需要合理的安全性。这是我到目前为止所拥有的,但我对AJAX非常陌生,显然有些东西不起作用。这是一个名为pin.php的单一文件(因此页面基本上是自己提交的)

解锁链接模拟用户单击以解锁记录的锁定图标

<html>
<script src="js/jquery.js" type="text/javascript"></script>
<?php
    $static_password = "1234";
    if(isset($_POST['data'])){
        $submit_password = $_POST['data'];
        if($submit_password == $static_password){
            echo "Do the unlock stuff";
        }
        else{
            echo "Sorry try again";
        }
    }
?>
<body>
<h2>Simple AJAX PHP Example</h2>
<a href="javascript:Unlock();">UNLOCK</a>
<script>
function Unlock() {
    var pin=prompt("You must enter pin to unlock");
    $.ajax(
    {
        url: 'pin.php',
        type: 'POST',
        dataType: 'text',
        data: {data : pin},
        success: function(response)
        { 
            console.log(response);
        }
    });
}
</script>
</body>
</html>

简单的AJAX PHP示例
函数解锁(){
var pin=提示(“必须输入pin才能解锁”);
$.ajax(
{
url:'pin.php',
键入:“POST”,
数据类型:“文本”,
数据:{data:pin},
成功:功能(响应)
{ 
控制台日志(响应);
}
});
}

非常感谢您的帮助。谢谢

这对我来说就像预期的那样有效:

<?php
    $static_password = "1234";
    if(isset($_POST['data'])){
        $submit_password = $_POST['data'];
        if($submit_password == $static_password){
            die("Do the unlock stuff");
        }
        else{
            die("Sorry try again");
        }
    }
?><!DOCTYPE html><html>
<head>
    <script src="jquery-3.1.0.min.js" type="text/javascript"></script>
</head>
<body>
<h2>Simple AJAX PHP Example</h2>
<a href="javascript:Unlock();">UNLOCK</a>
<script>
function Unlock() {
    var pin=prompt("You must enter pin to unlock");
    $.ajax(
    {
        url: 'pin.php',
        type: 'POST',
        dataType: 'text',
        data: {data : pin},
        success: function(response)
        { 
            console.log(response);
        }
    });
}
</script>
</body>
</html>

简单的AJAX PHP示例
函数解锁(){
var pin=提示(“必须输入pin才能解锁”);
$.ajax(
{
url:'pin.php',
键入:“POST”,
数据类型:“文本”,
数据:{data:pin},
成功:功能(响应)
{ 
控制台日志(响应);
}
});
}

inb4共享pin码是因为“这很烦人”,您还可以添加一个按钮,上面写着“您确定要解锁此记录吗”。对不起,请再说一遍好吗?inb4?我觉得一旦你实现了上面的功能,就会发生这种情况。那么你有什么建议来解决这个问题吗?你使用的是
$
,但我没有看到包含jQuery的
。另外,我认为您需要将PHP代码上移到顶部,否则所有的HTML都会包含在AJAX响应中。你能提供一个临时的公共链接吗?也许只是我的服务器?嗯,也许我只是错过了什么,或者它一直在工作。我在你的页面上也没有看到任何事情(和我的页面一样)。你能修改PHP以响应简单的“成功”或“失败”输出吗?是的,奇怪的事情还在发生。我猜die命令在退出时也会输出它们的内容。我在我们的两台服务器上都没有看到这些。仍然没有发生任何事情。我试过两台电脑和多种浏览器。顺便说一下,谢谢你的帮助!实际上从未使用过浏览器控制台。现在调查一下。备用物品