Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
输入验证PHP_Php_Apache_Web Applications_Password Protection - Fatal编程技术网

输入验证PHP

输入验证PHP,php,apache,web-applications,password-protection,Php,Apache,Web Applications,Password Protection,我有一个非常基本的php表单,我正在寻找更新 它用于在web应用程序上注册新用户 问题在于缺少验证,密码可以是任意长度的字符 有谁能帮助我,或者为我指出正确的方向,告诉我如何在表单上强制执行最小密码长度或复杂性 代码是: <h1>Register</h1> <p>Please enter your details below to register.</p> <form method="post" action="register.php

我有一个非常基本的php表单,我正在寻找更新

它用于在web应用程序上注册新用户

问题在于缺少验证,密码可以是任意长度的字符

有谁能帮助我,或者为我指出正确的方向,告诉我如何在表单上强制执行最小密码长度或复杂性

代码是:

<h1>Register</h1>

<p>Please enter your details below to register.</p>

<form method="post" action="register.php" name="registerform" id="registerform">
<fieldset>
    <label for="username">Username:</label><input type="text" name="username" id="username" /><br />
    <label for="password">Password:</label><input type="password" name="password" id="password" /><br />
    <label for="email">Email Address:</label><input type="text" name="email" id="email" /><br />
    <input type="submit" name="register" id="register" value="Register" />
</fieldset>
</form>
寄存器
请在下面输入您的详细信息以进行注册

用户名:
密码:
电子邮件地址:

查看此线程,以便对密码字符串进行字符验证:

对于字符串长度:


下面是一个延迟示例,强制密码至少包含一个大写、小写和数字。。只是为了让你开始

<?php 

$pass1 = 'adsda';
$pass2 = 'asds3q3';
$pass3 = 'adsDd2d';

function pass_complexity($pass, $len) {
    $c = []; 
    $array =  str_split($pass); 
    foreach ($array as $l) {
        if (ctype_digit($l)) {
            $c['d'] = 1; 
        }

        if (ctype_upper($l)) {
            $c['u'] = 1; 
        } 

        if (ctype_lower($l)) {
            $c['l'] = 1; 
        }   
    }

    return strlen($pass) >= $len && count($c) == 3; 
}


if (pass_complexity($pass3, 2)) {
    echo 'password ok';
} else {
 // password should have at least 1 upper, 1 lower 1 number and 
 // and must be at least more than 2 digits in length  
}

这取决于您想要为密码强制使用什么字符。您的表单由文件
register.php根据您自己的代码进行处理。因此,我建议您只需执行您想要应用的检查。