我有一些用php编写的代码来验证表单中的邮政编码字段。我遇到的问题是,当我将字段保留为空并单击submit按钮时,会显示正确的警报,但如果我输入了错误的值并单击submit,表单将加载到空白屏幕上,是否有人会发现我的代码中存在错误?:
<?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>发布于 2013-05-31 18:50:33
您在$msgp = '<span class="error"><b>Please enter correct postcode</b></span>';之后返回false,因此您不能继续执行下面的表单...删除代码中的返回值,以便能够处理和显示错误。
发布于 2013-05-31 18:50:54
return?返回哪里?
当您在主代码中返回时,它(几乎)与die()相同。
所以当你返回时,剩下的PHP将不再被执行。
我会考虑设置一些变量,比如$success = true/false;,而不是返回。
发布于 2013-05-31 18:51:09
您正在使用return。你是在function() {}里吗?如果是这样的话,所有的变量都在函数作用域中。您可以执行global $msgp;以使变量可在函数外部访问。
如果不是..。
https://stackoverflow.com/questions/16855505
复制相似问题