0

我在 HTML 中有一个简单的文本框,它只需要整数,它们必须是 6 个字符。如果不满足这些条件,则应该向用户提供适当的消息,并且该值不应该是 $_POST'ed。

$idLength = strlen($_POST['customerid']);

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if(empty($_POST['customerid']))
    {
        $idErr = " *Enter ID";
    }
else if(($idLength > 0) && ($idLength < 6))
       {
       {$idnErr = " ID must be exactly 6 Digits";}
       if((!is_numeric($_POST['customerid'])))
       {$idnumErr = " ID must only be numerical values";}
       }

else if ((is_numeric($_POST['customerid']))&&($idLength = 6)) 
    {
        $id = $_POST['customerid'];
    }
echo "$id";

因此,使用该代码,我检查输入框是否为空,如果是,则在框旁边显示“* Enter ID”。我检查该值是否大于 0 且小于 6(html 中的 maxlength = 6),如果是,则显示“ID 必须正好是 6 位”。我还检查字符是否为数字,如果不是,则显示“ID 只能是数值”。

如果用户输入了一个有效的 ID,那么只有这个 ID 才会存储在变量中。例如:- 123456。这一切似乎工作正常。

当我准确输入 6 个不打算使用的字符(例如 12345a 或 ABCDE3)时,就会出现我的问题。代码没有将它们存储到 $id 中,但它没有显示错误消息,我想知道我做错了什么。

如果用户输入不正确,我还想将用户的输入保存在文本框中。例如。如果用户在客户 ID 中输入“1234g”并单击提交,我希望它在页面刷新错误时出现在文本框中。

4

1 回答 1

4

这边:

($idLength = 6)

您正在值分配6给变量。你应该这样做:

($idLength == 6)

==是一个比较运算符并检查它是否等于6。

于 2014-05-05T09:21:24.723 回答