我有以下代码来验证表单数据。我已经创建了验证各个组的函数,然后有一个if isset语句来检查这些函数是否返回true。我已经尝试了许多不同的方法来实现这一点。
我遇到的问题是这个。如果返回FALSE,我希望if isset结束;但它没有,它继续前进并弹出下一个警报(在我的代码中我有很多功能)。如何在第一次返回FALSE后退出?我需要将isset变成函数吗?所以它可以在返回FALSE时退出。感谢
我在写一个函数来调用php中的函数时遇到了麻烦。
function namecheck ($fname, $lname)
{
$regexp ="/^[A-Za-z]+$/";
//filter through names
if (preg_match($regexp,$fname,$lname))
{
return TRUE;
}
else
{
echo'<script type="text/javascript">alert("Enter your names.")</script>';
return FALSE;
}
}
function emailcheck ($email1, $email2)
{
$regexp="/^[a-zA-A-Z0-9_.]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.-]+$/";
//validate email address
if (preg_match($regexp,$email1,$email2))
{
return TRUE;
}
else
{
echo '<script type="text/javascript">alert ("Enter a valid email address.")</script>';
return FALSE;
}
}
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$namecheck=namecheck($fname,$lname);
$email1=$_POST['email1'];
$email2=$_POST['email2'];
$emailcheck=emailcheck($email1,$email2);
if (isset($_POST['submit']))
{
if ($namecheck !==TRUE)
{
return FALSE;
}
elseif ($emailcheck!==TRUE)
{
return FALSE;
} //and so on..
else
{
return TRUE;
}
}
答案 0 :(得分:2)
如果你想让脚本“退出”,那么你需要使用exit();通常这很糟糕,因为脚本将完全停止执行。也许你可以考虑使用“休息”;让你离开循环并停止在该循环中执行函数。另一个问题是你正在回显函数中的HTML代码,这些代码在赋值时执行,因此当它的计算结果为FALSE时,你总会得到一个警告。
编辑: 在你的if(isset())块中。在这里你可以做{} while(false);这是一个循环,可以让你随时突破它并阻止在该循环中进一步执行代码。
答案 1 :(得分:2)
如果函数未返回false
,则它从未到达return FALSE;
语句。就这么简单。我们来看看相关代码:
if (isset($_POST['submit']))
{
if ($namecheck !==TRUE)
{
return FALSE;
}
elseif ($emailcheck !== TRUE)
{
return FALSE;
} //and so on..
else
{
return TRUE;
}
}
因此,如果$_POST['submit']
已设置且不为空,则将到达if
块。然后,如果$namecheck
不是true
或 $emailcheck
不成立,则该函数将返回FALSE
。您可以将上述代码简化为:
if (isset($_POST['submit']))
{
return !(!$namecheck || !$emailcheck);
}
但是,看起来这个代码看起来不像函数,所以return
语句什么都不做。如果你希望它像函数一样工作,你必须把它放在一个函数中。
除此之外,我无法帮助你。我不知道你想用这个代码做什么。您似乎知道如何使用和调用函数,所以我不确定问题是什么。如果您想从函数中return
,请将代码放入函数中并调用return
。现在你的代码不在函数中,所以return
不会做任何事情。
答案 2 :(得分:2)
您可以遵循的功能的一般结构是这样的:
function validateName($name) {
// Do Validation. Return true or false.
}
function validateEmail($email) {
// Do Validation. Return true or false.
}
function isFormValid()
{
// Name Validation
if( ! validateName( $_POST['name'] ) )
return false;
// Email Validation
if( ! validateEmail( $_POST['email'] ) )
return false;
// Form is valid if it reached this far.
return true;
}
// In your regular code on Form Submit
if( isset($_POST['submit']) )
{
if( isFormValid() ) {
// Save Form Data to DB
} else {
// Show Some Errors
}
}
一般结构应该适合你。它可以做得更好,但为了学习,这已经足够了。