切换到whirlpool后Javascript函数不工作
我一直在遵循一个指南来创建一个安全的登录页面(假设我是PHP新手,我正在努力学习);在您单击注册页面和登录页面上的“提交”后,它们使用javascript作为处理器。然而,这个功能似乎被破坏了。我对它进行了编辑,使盐转化为漩涡,而不是sha512。 下面是函数(还有指南的链接:) 功能:切换到whirlpool后Javascript函数不工作,javascript,php,Javascript,Php,我一直在遵循一个指南来创建一个安全的登录页面(假设我是PHP新手,我正在努力学习);在您单击注册页面和登录页面上的“提交”后,它们使用javascript作为处理器。然而,这个功能似乎被破坏了。我对它进行了编辑,使盐转化为漩涡,而不是sha512。 下面是函数(还有指南的链接:) 功能: function formhash(form, password) { // Create a new element input, this will be our hashed password f
function formhash(form, password) {
// Create a new element input, this will be our 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 = whirlpool(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
// Finally submit the form.
form.submit();
}
function regformhash(form, uid, email, password, conf) {
// Check each field has a value
if (uid.value == '' ||
email.value == '' ||
password.value == '' ||
conf.value == '') {
alert('You must provide all the requested details. Please try again');
return false;
}
// Check the username
re = /^\w+$/;
if(!re.test(form.username.value)) {
alert("Username must contain only letters, numbers and underscores. Please try again");
form.username.focus();
return false;
}
// Check that the password is sufficiently long (min 6 chars)
// The check is duplicated below, but this is included to give more
// specific guidance to the user
if (password.value.length < 6) {
alert('Passwords must be at least 6 characters long. Please try again');
form.password.focus();
return false;
}
// At least one number, one lowercase and one uppercase letter
// At least six characters
var re = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}/;
if (!re.test(password.value)) {
alert('Passwords must contain at least one number, one lowercase and one uppercase letter. Please try again');
return false;
}
// Check password and confirmation are the same
if (password.value != conf.value) {
alert('Your password and confirmation do not match. Please try again');
form.password.focus();
return false;
}
// Create a new element input, this will be our 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 = whirlpool(password.value);
// Make sure the plaintext password doesn't get sent.
password.value = "";
conf.value = "";
// Finally submit the form.
form.submit();
return true;
}
函数formhash(表单、密码){
//创建一个新元素输入,这将是我们的哈希密码字段。
var p=document.createElement(“输入”);
//将新元素添加到表单中。
表3.儿童(p);
p、 name=“p”;
p、 type=“隐藏”;
p、 值=惠而浦(password.value);
//确保未发送明文密码。
password.value=“”;
//最后提交表格。
表单提交();
}
函数regformhash(表单、uid、电子邮件、密码、conf){
//检查每个字段是否有一个值
如果(uid.value=''||
email.value=''||
password.value=''||
conf.value==“”){
警报(“您必须提供所有请求的详细信息。请重试”);
返回false;
}
//检查用户名
re=/^\w+$/;
如果(!re.test(form.username.value)){
警告(“用户名必须仅包含字母、数字和下划线。请重试”);
form.username.focus();
返回false;
}
//检查密码是否足够长(至少6个字符)
//下面重复了该检查,但这是为了提供更多信息
//对用户的具体指导
if(password.value.length<6){
警报('密码长度必须至少为6个字符,请重试');
form.password.focus();
返回false;
}
//至少一个数字、一个小写字母和一个大写字母
//至少六个字符
变量re=/(?=.*\d)(?=.[a-z])(?=.[a-z])。{6,}/;
如果(!重新测试(密码值)){
警报(“密码必须至少包含一个数字、一个小写字母和一个大写字母。请重试”);
返回false;
}
//检查密码和确认是否相同
if(password.value!=conf.value){
警报('您的密码和确认不匹配。请重试');
form.password.focus();
返回false;
}
//创建一个新元素输入,这将是我们的哈希密码字段。
var p=document.createElement(“输入”);
//将新元素添加到表单中。
表3.儿童(p);
p、 name=“p”;
p、 type=“隐藏”;
p、 值=惠而浦(password.value);
//确保未发送明文密码。
password.value=“”;
conf.value=“”;
//最后提交表格。
表单提交();
返回true;
}
那么问题出在哪里,您是否遇到了错误?你的控制台里有什么?我没有任何回报。当我尝试单击按钮时,它不起作用。按钮的代码是正确的,因为我用一个简单的弹出窗口测试了它。