Php 密码长度错误不会显示
我设置了一个错误(“密码长度必须在6到32个字符之间”),因此当用户尝试使用少于6个字符的密码注册时,他们会收到该错误并且无法注册,但无论密码多么短,错误都不会出现,只会继续注册。请帮忙,谢谢! 代码如下:Php 密码长度错误不会显示,php,registration,Php,Registration,我设置了一个错误(“密码长度必须在6到32个字符之间”),因此当用户尝试使用少于6个字符的密码注册时,他们会收到该错误并且无法注册,但无论密码多么短,错误都不会出现,只会继续注册。请帮忙,谢谢! 代码如下: <?php $submit = $_POST['submit']; $name = strip_tags($_POST['fullnamefield']); $email = strip_tags($_POST['regemailfield']); $password = str
<?php
$submit = $_POST['submit'];
$name = strip_tags($_POST['fullnamefield']);
$email = strip_tags($_POST['regemailfield']);
$password = strip_tags($_POST['regpasswordfield']);
$repeatpassword = strip_tags($_POST['regpasswordconfirmfield']);
$date = date("Y-m-d");
if ($submit)
{
if ($name&&$email&&$password&&$repeatpassword)
{
$password = md5($password);
$repeatpassword = md5($repeatpassword);
if ($password==$repeatpassword)
{
if (strlen($name)>32||strlen($email)>1024)
{
echo "Length of name or email is too long. Please try again";
}
else
{
if (strlen($password)>32||strlen($password)<6)
{
echo "password must be between 6 and 25 character!";
}
}
}
else
echo "Your passwords do not match!";
}
else
echo "Please fill in all fields!";
}
?>
在使用md5()之前检查长度在使用md5()之前检查长度这是因为在MD5中散列密码,并将$Password变量更改为32个字符的字符串这是因为在MD5中散列密码,并在MD5函数中发送密码时将$Password变量更改为32个字符的字符串,该函数实际上创建了一个32个字符的十六进制数(hash),因此您的检查是无用的 当您在md5函数中发送密码时,该函数实际上会创建一个32个字符的十六进制数(哈希),因此您的检查是无用的 为什么要将密码长度限制为32个字符?这就像是故意限制您的安全性。为什么要将密码长度限制为32个字符?这就像是故意限制您的安全性。@checkit923只需将密码字段的最大长度限制为32英寸html@AbdullahAdam,这是一个非常糟糕的主意,如果你依赖它的安全性。所有用户数据都应该在服务器端进行检查/消毒。@mike实际上,我认为用户希望将密码长度限制为最大32,而不是在PHP中获取数据时,密码已经带有最大32,这样他就可以直接做其他事情了。也许我错了,你怎么说do@AbdullahAdam,任何HTML或JavaScript都无法阻止用户向您的脚本提交任何他们想要的内容。嘿,伙计们,我遵循一个教程:&他们告诉我这样做,并且它在那里工作,只是不适合我。@checkit923只是将您的密码字段最大长度限制为32英寸html@AbdullahAdam,这是一个非常糟糕的主意,如果你依赖它的安全性。所有用户数据都应该在服务器端进行检查/消毒。@mike实际上,我认为用户希望将密码长度限制为最大32,而不是在PHP中获取数据时,密码已经带有最大32,这样他就可以直接做其他事情了。也许我错了,你怎么说do@AbdullahAdam,没有任何HTML或JavaScript能够阻止用户向您的脚本提交任何他们想要的内容。嘿,伙计们,我遵循一个教程:&他们告诉我这样做,而且它在那里工作,只是不适合我。