我无法检查表单字段是否为空并将其重定向到特定位置,具体取决于if条件是true还是false。 如果条件总是变为false并且popup.php页面被打开,那么即使在填充所有字段之后,问题仍然存在。 这是我的PHP代码:
<?php
if(isset($_POST['YourName']) && isset($_POST['EmailID']) && isset($_POST['ContactNumber']) && isset($_POST['Destination']) && isset($_POST['ModeTransport']) && isset($_POST['DateTravel']) && isset($_POST['DateReturn']) && isset($_POST['Accommodation']) && isset($_POST['Choice1']) && isset($_POST['Choice2']) && isset($_POST['Adults']) && isset($_POST['Child']) && isset($_POST["how_to_reach_you"]))
$YourName=$_POST['YourName'];
$EmailID=$_POST['EmailID'];
$ContactNumber=$_POST['ContactNumber'];
$Destination=$_POST['Destination'];
$ModeTransport=$_POST['ModeTransport'];
$DateTravel=$_POST['DateTravel'];
$DateReturn=$_POST['DateReturn'];
$Accommodation=$_POST['Accommodation'];
$Choice1=$_POST['Choice1'];
$Choice2=$_POST['Choice2'];
$Adults=$_POST['Adults'];
$Child=$_POST['Child'];
$via=$_POST["how_to_reach_you"];
if(!empty($YourName) && !empty($EmailID) && !empty($ContactNumber) && !empty($Destination) && !empty($ModeTransport) && !empty($DateTravel) && !empty($DateReturn) && !empty($Accommodation) && !empty($Choice1) && !empty($Choice2) && !empty($Adults) && !empty($Child))
if($via=="Email me")
header("Location:email.php");
else
header("Location:call.php");
else
header("Location:popup.php");
?>
答案 0 :(得分:0)
正如我所说的isset是无关紧要的,处理空的我会这样做
$via = (isset($_POST["how_to_reach_you"]) ? $_POST["how_to_reach_you"] : false;
unset($_POST["how_to_reach_you"]);
$post = array_filter($_POST);
if( count($post) == count($_POST)){
if($via=="Email me"){
header("Location:email.php");
}else{
header("Location:call.php");
}
}else{
header("Location:popup.php");
}
这些代码中没有使用这些值,并且通过重定向,它们毫无意义。数组过滤器从数组中删除空元素,因此通过使用它可以检查原始数据和过滤后的版本,以判断是否有任何元素为空。如果有空值,则$post
将小于$_POST
。您没有检查how_to_reach_you
值
如果您仍然需要声明所有可以使用的变量
extract($post);
这将创建与数组键同名的变量。