好吧我已经动态创建了具有唯一名称的表单元素,并且在验证时我想将所有表单数据存储到SESSION中。 这是代码:
if(isset($_POST["address_submit"])){
insertSessionVars();
header("Location: http://localhost/project%20gallery/notes.php");
exit;
}
function insertSessionVars(){
foreach($_POST as $fieldname => $fieldvalue){
$_SESSION['formAddresses'][$fieldname] = $fieldvalue;
}
}
这个工作得很好,但商店也提交了按钮值。我这样输出:
foreach($_SESSION['formAddresses'] as $value){
echo $value;
}
任何帮助都会很棒:)
答案 0 :(得分:5)
不要为提交按钮指定name
属性。如果您指定了名称,那么它将作为$_POST
数组的一部分传递。
<input type="submit" value="My Button" />
由于您不再拥有帖子中的提交按钮,而不是检查是否设置了提交按钮,请检查帖子数组是否包含使用count()
的数据。
if(count($_POST) > 0)
答案 1 :(得分:0)
$ _POST值只是数组,因此在for之后为什么不使用unset从数组中删除提交键
通过这种方式,您可以检查表单是否已提交,并选择不设置提交键或删除它,而不是直接给它命名
答案 2 :(得分:0)
无论哪种方式,你都可以在你的foreach中做这样的事情(见*)并传递“$ except”作为参数。 其中$ except必须是insertSessionVars();
中提交按钮的名称if(!in_array($key, $except)){...}
并且在你的foreach之上是这样的:
if(!is_array($except)) $except=array($except);