Echo不能在PHP中使用!is_numeric

时间:2014-05-05 09:19:05

标签: php html post isnumeric

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

$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";

所以使用该代码,我检查输入框是否为空,如果是,则显示&#39; *输入ID&#39;在盒子旁边。我检查该值是否大于0且小于6(maxlength = 6 in html),如果是,则表示&#34; ID必须正好是6位数&#34;。我还检查字符是否是数字,如果它们不是,则显示“ID”必须只是数值&#39;。

如果用户输入了vaild ID,那么只有id存储在变量中。例如: - 123456.所有这些似乎都很好。

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

如果输入错误,我还想在文本框中保存用户的输入。例如。如果用户输入&#39; 1234g&#39;在客户ID和点击提交,我希望它在页面刷新时出现错误。

1 个答案:

答案 0 :(得分:4)

在这里:

($idLength = 6)

将值6分配给变量。你应该这样做:

($idLength == 6)

==comparison operator并检查其是否等于 6。