0

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

}

任何帮助都会非常有用:)

4

3 回答 3

5

不要name为提交按钮分配属性。如果您分配一个名称,那么它将作为$_POST数组的一部分传递。

<input type="submit" value="My Button" />

由于您不再在 post 中有提交按钮,而不是检查是否设置了提交按钮,而是检查 post 数组是否包含使用count().

if(count($_POST) > 0)
于 2013-06-26T22:52:36.850 回答
0

无论哪种方式,您都可以在您的 foreach 中执行类似的操作(请参阅 *)并将“$except”作为参数传递。其中 $except 必须是 insertSessionVars(); 中提交按钮的名称;

  • if(!in_array($key, $except)){...}

在你的 foreach 上面的 ofc 是这样的:

if(!is_array($except)) $except=array($except);
于 2013-08-15T20:11:29.920 回答
0

$_POST 值只是数组,所以在 for each 之后为什么不使用 unset 从数组中删除提交键

这样,您可以检查表单是否已提交,并且要么选择不设置提交密钥,要么放弃它,而不是根本不给它一个名称

于 2013-06-26T22:54:23.840 回答