【问题标题】:Echo not working in PHP for !is_numeric回声不能在 PHP 中为 !is_numeric 工作
【发布时间】:2014-05-05 09:19:04
【问题描述】:

我有一个简单的 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";

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

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

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

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

【问题讨论】:

  • 你的代码中有一个未定义的变量
  • @Daan 你保守秘密而不告诉我们? ;)
  • 什么变量未定义? @大安
  • 都已经定义好了,我这里没有添加,没有必要
  • $idLength = strlen($_POST['customerid']); 您应该将其粘贴到 server_method 帖子中。 $_POST['customerid'] 未定义

标签: php html post isnumeric


【解决方案1】:

这里:

($idLength = 6)

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

($idLength == 6)

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

【讨论】:

  • 我之前尝试过,这就是我之前的想法,但这不是问题所在。我刚刚又试了一次,没有出现错误。
  • @roro 好的,您似乎缺少最后一个else,因为length&gt;6 但不是数字,我删除了多余的is_numeric(). 看看这个code.
  • 谢谢你,我明白我做错了什么
猜你喜欢
  • 2019-05-20
  • 2019-08-22
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
相关资源
最近更新 更多