PHP无法使用Post找到表单元素

时间:2013-07-16 11:00:13

标签: php forms encryption

我有2个PHP文件,login.phpregister.php
我正在使用sha512加密并使用following site的登录机制 一些注册码出现在那里,但我创建了注册表并将网站的书面注册表格改为“process_registration”

login.php中,表单使用以下内容发送:onclick="formhash(this.form,this.form.password);"
以下是formhash() :(来自forms.js

function formhash(form, password) {
// Create a new element input, this will be out hashed password field.
var p = document.createElement("input");
// Add the new element to our form.
form.appendChild(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
// Finally submit the form.
form.submit();
}

因此,为了使注册和登录具有相同的加密过程,注册表单也应该使用此方法,但是当我使用我的表单到达process_registration.php时(它到达那里,所有的正确的参数)p POST var不存在于login.php中,但login中存在process_login.php,其形式和字段完全相同,但register.php使用{{ {1}}作为其操作,process_registration.php使用<script type="text/javascript" src="sha512.js"></script> <script type="text/javascript" src="forms.js"></script> <form action="process_registration.php" method="post" name="register_form"> Username : <input type="text" name="username" /><br /> Name : <input type="text" name="name" /><br /> Email: <input type="text" name="email" /><br /> Password: <input type="password" name="password" id="password"/><br /> <input type="button" value="Register" onclick="formhash(this.form,this.form.password);" /> </form> 作为其操作。

以下是注册文件表格:

{{1}}

1 个答案:

答案 0 :(得分:2)

尝试此操作,在将新字段添加到DOM之前完成新字段的创建和完整定义。

var p = document.createElement("input");
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password.value);
// Add the new element to our form.
form.appendChild(p);