Б
барбос
Гость
Всем салют. Подскажите пожалуйста, как сделать чтобы регистрация проходила только в том случае, если, пароль будет начинаться с большой буквы, а остальные маленькие?
//
// Check pass
//
function validate_pass($pass)
{
global $lang;
if(!preg_match("~(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{".PASS_MIN_LENGTH.",}~si", $pass))
{
return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
}
$pass = trim($pass);
$len = mb_strlen($pass);
$chars='1234567890qwertyuiopasdfghjklzxcvbn mQWERTYUIOPASDFGHJKLZXCVBNM';
if(($len < PASS_MIN_LENGTH) || ($len > PASS_MAX_LENGTH)) return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
if(strpos($chars, $pass) !== false) return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
if($len/2 == round($len/2)) {
$p1 = mb_substr($pass ,0,$len/2);
$p2 = mb_substr($pass,$len/2);
$p22 = '';
for($i = mb_strlen($p2)-1; $i>=0; $i--)
$p22 .= $p2[$i];
if($p1 == $p2 and mb_strpos($chars, $p1) and mb_strpos($chars, $p2)) return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
if($p1 == $p22 and mb_strpos($chars, $p1) and mb_strpos($chars, $p2)) return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
}
$chars = array();
for($i=0; $i<$len; $i++)
{
if(isset($chars[$pass[$i]]))
$chars[$pass[$i]]++;
else
$chars[$pass[$i]] = 1;
}
// Считаем процент уникальности символов
$k = sizeof($chars) / $len * 100;
if($k < PASS_PERCENT_UNIQ) return array('error' => true, 'error_msg' => $lang['PASS_INVALID']);
return array('error' => false, 'error_msg' => '');
}
define('PASS_MAX_LENGTH', 32);
define('PASS_MIN_LENGTH', 6);
define('PASS_PERCENT_UNIQ', 46);