如何不将提交按钮值存储为发布数据php

时间:2013-06-26 22:50:55

标签: php

好吧我已经动态创建了具有唯一名称的表单元素,并且在验证时我想将所有表单数据存储到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;

}

任何帮助都会很棒:)

3 个答案:

答案 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);