回声不能在 PHP 中为 !is_numeric 工作
Posted
技术标签:
【中文标题】回声不能在 PHP 中为 !is_numeric 工作【英文标题】:Echo not working in PHP for !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']
未定义
【参考方案1】:
这里:
($idLength = 6)
您正在分配值6
给变量。你应该这样做:
($idLength == 6)
==
是 comparison operator 并检查它是否等于 6。
【讨论】:
我之前尝试过,这就是我之前的想法,但这不是问题所在。我刚刚又试了一次,没有出现错误。 @roro 好的,您似乎缺少最后一个else
,因为length>6
但不是数字,我删除了多余的is_numeric().
看看这个code.
谢谢你,我明白我做错了什么以上是关于回声不能在 PHP 中为 !is_numeric 工作的主要内容,如果未能解决你的问题,请参考以下文章