如何访问使用表单发布的密码?

时间:2011-11-22 20:09:36

标签: javascript html

我有一个显示密码字段的表单,当表单发布时,我在页面的onload期间调用了一个javascript函数 - 当我检索密码字段时,它从未输入我输入的密码,它是空的。如果我正在尝试访问已发布表单的内容,那么从onload调用javascript函数是否有错误的方法?

<!DOCTYPE html>
<html>
<script type="text/javascript">
    function checkPwd()
    {
        // okay the form was posted and we got called from onload, now get the post'd password
        var thePwd = document.getElementById("theUsersPassword").value;
        alert("the var thePwd is: " + thePwd);          
    }
</script>        
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Beta:</title>
</head>

<body onload="checkPwd()">

    <form method="post"  action="index.php">
    Beta: <input id="theUsersPassword" name="usersPassword" type="password"><br/>
    <input type="submit" value="Submit" />  
    </form>

</body>
</html>

5 个答案:

答案 0 :(得分:3)

我猜你不想检查输入onload,你想在表单提交时检查它吗?因为在onload上,用户还没有机会输入任何内容。

如果您想在提交时执行此操作,只需将表单标记更改为:

<form method="post" action="index.php" onsubmit="checkPwd()">

答案 1 :(得分:2)

那是因为元素不再存在了。 Javascript只能在一个页面上运行,所以如果你这样做

document.getElementById('passwordform');

它找不到它,因为没有带有该ID的元素。 您可以通过将密码存储在cookie中或通过LocalStorage api检索它来在javascript中执行此操作,但我甚至不会告诉您如何执行此操作,因为它不安全。

Javascript是一种客户端语言,因此您在其中编写的任何代码都会被发送到浏览器。这意味着每个用户都可以查看和操作您的代码。

您应该使用服务器端语言,例如PHP。

在php中,您可以简单地将值与您期望的密码进行比较。

有两种方法可以将数据从表单发送到服务器:使用POST方法或使用GET方法。 Get方法用于发送支持者信息,并以

的形式附加到URL
example.com?variable=value

这对于需要安全的信息并不是一个好主意,并且因为url具有最大长度(对于不同的浏览器而言是不同的),所以当您发送密码信息时,您应该使用POST方法。

因此,您的登录表单可能如下所示

<form action='securedpage.php'>
    <label>enter your password: <input type='password' name='pass'></label>
    <input type='submit'>
</form>

现在,在securedpage.php中,您可以执行以下操作:

<?php
$expected_pass="!4mr00t";
if($_POST['pass']===$expected_pass){
    //show your content
}els{
   //show homepage
}
?>

答案 2 :(得分:1)

我可能错了,但这通常不是用PHP完成的吗?

<?php
  if (isset($_POST['variable'])) {
   $first = $_POST['variable'];
   echo $first;
  }
?>

<form action="" method="POST">
   <input type="password" name="variable" />
   <input type="submit" />
</form>

此代码会吐出输入表单的密码。

答案 3 :(得分:1)

您无法从JavaScript访问POST数据字段。

您所做的就是阻止真实表单提交并从表单中获取数据。

form.onsubmit = function () { checkPwd(); return false; };

或者,如果您尝试进行某种验证,则需要从checkPwd返回一个布尔值并执行form.onsubmit = checkPwd

答案 4 :(得分:1)

试试这个:

<form method="post" action="index.php" onsubmit="return checkPwd()">

checkPwd()必须返回false以避免提交(如果有任何问题)o true来执行操作(如果每件事都是正确的话)。