首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字PHP验证?

问数字PHP验证?
EN

Stack Overflow用户
提问于 2013-05-31 18:47:09
回答 5查看 183关注 0票数 1

我有一些用php编写的代码来验证表单中的邮政编码字段。我遇到的问题是,当我将字段保留为空并单击submit按钮时,会显示正确的警报,但如果我输入了错误的值并单击submit,表单将加载到空白屏幕上,是否有人会发现我的代码中存在错误?:

代码语言:javascript
复制
 <?php

 if (isset($_POST['submit'])) {

$post = $_POST["post"];
$words = array('2747','2750','2753','2760','2777');
$msgp = "";

if (!empty($post)) {
foreach ($words as $item)
{
    if (strpos($post, $item) !== false)
        return true;
}
$msgp = '<span class="error"><b>Please enter correct postcode</b></span>';
return false;

} else if(empty($post)) {
$msgp = '<span class="error"><b>Please enter postcode</b></span>';
}

}

?>

<form name="eoiform" method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi">

<b>Post Code</b>
<br>
<input type="text" id="post" name="post" /><?php echo $msgp; ?>

</form>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-31 18:50:33

您在$msgp = '<span class="error"><b>Please enter correct postcode</b></span>';之后返回false,因此您不能继续执行下面的表单...删除代码中的返回值,以便能够处理和显示错误。

票数 2
EN

Stack Overflow用户

发布于 2013-05-31 18:50:54

return?返回哪里?

当您在主代码中返回时,它(几乎)与die()相同。

所以当你返回时,剩下的PHP将不再被执行。

我会考虑设置一些变量,比如$success = true/false;,而不是返回。

票数 3
EN

Stack Overflow用户

发布于 2013-05-31 18:51:09

您正在使用return。你是在function() {}里吗?如果是这样的话,所有的变量都在函数作用域中。您可以执行global $msgp;以使变量可在函数外部访问。

如果不是..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16855505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档