我有以下代码,它保存/发送值并重定向到按钮中给出的地址:
form.php的
<Form Action="Process.php" Method="Post">
<!-- some input fields (username, email, password, etc.) -->
<Input Name="Save[Database]" Type="Hidden" Value="false">
<Input Name="Save[Cookie]" Type="Hidden" Value="true">
<Button Name="Save[WhereToGo]" Type="Submit" Value="Saved.php">Save</Button>
<Input Name="Send[Database]" Type="Hidden" Value="true">
<Input Name="Send[Cookie]" Type="Hidden" Value="false">
<Button Name="Send[WhereToGo]" Type="Submit" Value="Sent.php">Send</Button>
</Form>
Process.php
//process the POST data and prepare them for saving/sending
...
foreach($_POST as $Collection){
if(array_key_exists("Database",$Collection)){
//send values into db
}
if(array_key_exists("Cookie",$Collection)){
//save values into cookies
}
if(array_key_exists("WhereToGo",$Collection)){
header("Location: ".$Collection["WhereToGo"]);
}else{
echo "Error";
}
}
如果可见输入字段(如用户名,电子邮件,密码等)值看起来像array[somevalue]
,那么一切都很有效。但是如果值清楚somevalue
(像往常一样),则脚本会回显错误。如何避免错误?
答案 0 :(得分:1)
你说如果$ Collection是一个数组,它就可以了。如果它不是数组,则会出错。所以你必须检查$ Collection是否是一个数组。
“你怎么做的,”你问?
不知道,我对PHP知之甚少,但我有a good friend。他说this。
foreach($_POST as $Collection){
if( is_array($Collection) ) {
// ...
}
}