0

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

login.php中,表单使用 :onclick="formhash(this.form,this.form.password);"
这里是formhash(): (from 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使用我的表单(并且它到达那里,并带有所有正确的参数)时,pvar 不会存在于POST尽管它存在于login.php其中是完全相同的形式和字段,除了login使用process_login.php作为它的动作和register.php使用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>
4

1 回答 1

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);
于 2013-07-16T11:52:41.437 回答