在php中检查密码字符长度

时间:2012-11-29 15:17:15

标签: php

我正在尝试检查用户在注册表单中输入的密码长度。 但是我得到了一个意想不到的输出。这是我的剧本。

 <?php
 if($_SERVER['REQUEST_METHOD'] == 'POST') 
  {

  if(strlen(trim($password)) > 8)
   {
   echo"Password must be 8characters";
   }
   }
 ?>

2 个答案:

答案 0 :(得分:9)

您的代码失败,因为永远不会为变量$password分配任何值。然后,您要检查密码是否更长超过8个字符 - 您使用的是大于号而不是小于号。由于变量$password为空,因此检查长度大于8的值始终为false。

试试这个:

if(!array_key_exists('password', $_POST))
    die('no password specified');

$password = trim($_POST['password']); // <--- this is not a good idea!
if(strlen($password) < 8)
    die('Password must be at least 8 characters');

总结一下,意外的输出是由两个因素引起的:

  • 错误的比较运算符
  • 空变量

在生产代码中,你当然应该做一些比die更友好的用户。

<强>文档

答案 1 :(得分:2)

也许您应该使用$_POST['password'],使用自动全局变量是错误的(并且希望在许多主机上禁用)。

同样将密码限制为8个字符看起来是一个坏主意,你应该哈希它,然后长度无关紧要。