1

我设置了一个错误(“密码长度必须介于 6 到 32 个字符之间”),因此当用户尝试使用少于 6 个字符的密码进行注册时,他们会收到该错误并且无法注册,但无论多短密码,错误没有出现,它只是继续注册。请帮忙,谢谢!这是代码:

<?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!";
}

?>
4

3 回答 3

8

在使用 md5() 之前检查长度

于 2012-06-07T20:33:18.347 回答
0

这是因为您在 MD5 中散列密码并将 $password 变量更改为 32 个字符的字符串

于 2012-06-07T20:34:32.330 回答
0

当您在 md5 函数中发送密码时,该函数实际上会创建一个 32 个字符的十六进制数字(哈希),因此您的检查是无用的。

于 2012-06-07T20:35:00.653 回答