Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅允许在验证前面的所有步骤后执行该函数_Javascript_Validation - Fatal编程技术网

Javascript 仅允许在验证前面的所有步骤后执行该函数

Javascript 仅允许在验证前面的所有步骤后执行该函数,javascript,validation,Javascript,Validation,我在第一次登录时强制更改密码,如下所示: $ucl = preg_match('/[A-Z]/', $senhanova); // Uppercase Letter $lcl = preg_match('/[a-z]/', $senhanova); // Lowercase Letter $Dig = preg_match('/\d/', $senhanova); // Numeral $nos = preg_match('/[@$!%*?&]/', $senhanova); // No

我在第一次登录时强制更改密码,如下所示:

$ucl = preg_match('/[A-Z]/', $senhanova); // Uppercase Letter
$lcl = preg_match('/[a-z]/', $senhanova); // Lowercase Letter
$Dig = preg_match('/\d/', $senhanova); // Numeral
$nos = preg_match('/[@$!%*?&]/', $senhanova); // Non-alpha/num characters (allows underscore)

if (password_verify($senhaatual, $Id_valor) && $senhanova == $senhaconfir && strlen($senhanova) >= '8' && strlen($senhaconfir) >= '8' && $ucl && $lcl && $Dig && $nos) {
    $stmt = 'UPDATE wp_inf.inf_users SET user_pass= ?, status= ? WHERE ID = ? '; 
    $stmt = $conn->prepare($stmt);
    $stmt = $stmt->execute([$senhafinal, $status, $id_util]);

}
var myInput=document.getElementById(“senhanova”);
var confirm=document.getElementById(“senhaconfig”);
var字母=document.getElementById(“字母”);
var资本=document.getElementById(“资本”);
var编号=document.getElementById(“编号”);
var length=document.getElementById(“长度”);
myInput.onfocus=函数(){
document.getElementById(“message”).style.display=“block”;
}
myInput.onblur=函数(){
document.getElementById(“消息”).style.display=“无”;
}
myInput.onkeyup=函数(){
var lowerCaseLetters=/[a-z]/g;
if(myInput.value.match(小写字母)){
信函。类列表。删除(“无效”);
信函。类别列表。添加(“有效”);
}否则{
信函。类别列表。删除(“有效”);
字母.classList.add(“无效”);
}
var大写字母=/[A-Z]/g;
如果(myInput.value.match(大写字母)){
大写.classList.remove(“无效”);
大写.classList.add(“有效”);
}否则{
大写.classList.remove(“有效”);
大写.classList.add(“无效”);
}
变量大写字母=/[@$!%*?&]/g;
如果(myInput.value.match(大写字母)){
caracter.classList.remove(“无效”);
caracter.classList.add(“有效”);
}否则{
caracter.classList.remove(“有效”);
caracter.classList.add(“无效”);
}
变量数=/[0-9]/g;
如果(myInput.value.match(数字)){
number.classList.remove(“无效”);
number.classList.add(“有效”);
}否则{
number.classList.remove(“有效”);
number.classList.add(“无效”);
}
如果(myInput.value.length>=8){
length.classList.remove(“无效”);
length.classList.add(“有效”);
}否则{
length.classList.remove(“有效”);
length.classList.add(“无效”);
}
}
函数inserir_senha()
{  
var dadosajax={
'senhaatual':$(“#senhaatual”).val(),
“senhanova”:$(“#senhanova”).val(),
'senhaconfig':$(“#senhaconfig”).val()
};
$.ajax({
url:'alteranshena.php',
键入:“POST”,
cache:false,
资料来源:dadosajax,
数据类型:“json”,
成功:功能(数据)
{
if(data.result){
$(“.success_messages”).removeClass('hide');
}否则{
Swal.fire('Alerta!',data.message,'warning');
}
}
});    
}

这是一个很好的选择。
奥特拉尔
一个新的发展方向:

诺梅罗

特殊字符

最少8个字符


我找到了用php进行验证的解决方案

在插入数据库之前,我检查变量是否包含大写字母、小写字母、数字、特殊字符,以及是否至少有8个字符,如下所示:

$ucl = preg_match('/[A-Z]/', $senhanova); // Uppercase Letter
$lcl = preg_match('/[a-z]/', $senhanova); // Lowercase Letter
$Dig = preg_match('/\d/', $senhanova); // Numeral
$nos = preg_match('/[@$!%*?&]/', $senhanova); // Non-alpha/num characters (allows underscore)

if (password_verify($senhaatual, $Id_valor) && $senhanova == $senhaconfir && strlen($senhanova) >= '8' && strlen($senhaconfir) >= '8' && $ucl && $lcl && $Dig && $nos) {
    $stmt = 'UPDATE wp_inf.inf_users SET user_pass= ?, status= ? WHERE ID = ? '; 
    $stmt = $conn->prepare($stmt);
    $stmt = $stmt->execute([$senhafinal, $status, $id_util]);

}

好的,那么你的问题是什么?@RiggsFolly问题是,在新密码中,我要求粘贴8个字符并满足这些要求,但如果用户只输入3个字符的新密码,在确认密码中输入3个字符,与前一字段相同,通过这种方式将其插入数据库,更改密码,并且只有在满足所有要求后才能离开requirements@RiggsFolly我打算允许您仅在输入中验证了前面的所有步骤之后执行该功能。如果确实更改了密码,如果仍然不符合要求,请确保运行
inserir\u senha()
函数。您能帮忙吗?请编辑您的问题以包括您的问题和其他详细信息。有些用户不会通过搜索评论来查找您的问题。我必须补充一点,您永远不应该信任客户端验证。您应该始终检查后端中的值以确保,因为客户端代码不可信。但是,如果您希望在不调用的情况下检查页面上是否显示错误,那么您应该将
inherit\u senha
函数包装为validation函数。此外,您正在检查有效性
onkeyup
事件。也许您可以将有效性状态存储在一个变量中,这样您就可以在单击时检查它,如
isAllInputsValid&&inherit\u senha()