使用会话显示$ _POST数据时出现问题

时间:2011-07-05 14:13:47

标签: php

我有一个表单,用于收集用户信息,包括姓名,位置,网址,电子邮件地址等,以及公司徽标和他们希望关联的相应类别(使用$ _POST中的复选框数组)。

然后我显示页面的预览(使用$ _SESSION和隐藏的表单字段来保存$ _POST数据),这些数据将显示在BEFORE中,然后将其存储在MySQL中,并带有一个链接到PHP页面的“批准”按钮有MySQL INSERT查询。

我遇到的问题是输入和提交到数据库之间的预览页面是否有徽标输入和复选框数组输入的问题:

$_SESSION['clogo'] = $_POST['clogo'];
$_SESSION['cat[]'] = $_POST['cat[]'];

当我尝试预览这些时,我得到一个'未定义索引'错误,但所有其他标准输入都没问题,然后在用户批准时传递给insert mysql查询。另外,如果我跳过“预览页面”并直接从原始表单插入PHP文件,则没有问题,所有数据都正确地输入数据库。

任何人都可以提供帮助

5 个答案:

答案 0 :(得分:3)

你不想要这个:

$_SESSION['cat[]'] = $_POST['cat[]'];

但是这个:

$_SESSION['cat'] = $_POST['cat'];

即,'cat'是_POST数组的索引,它引用的元素是另一个数组。

答案 1 :(得分:2)

我猜$_POST['cat']本身就是一个数组。 (我猜这是因为你的例子中[]cat。)如果是这种情况,那么在你的例子中,你将$_SESSION['cat[]']设置为等于变量名那不存在。尝试将$_SESSION['cat']设置为等于$_POST['cat']

答案 2 :(得分:1)

请记住使用start_session功能启动会话。否则会话中不会保存任何内容。

另外值得注意的是,当使用某些第三方应用程序时,它们可能会删除所有会话变量。 Wordpress就是一个很好的例子。

答案 3 :(得分:1)

$ _ POST []数组必须重新初始化,因为您要发布到预览页面然后php插入脚本页面... 当您直接从表单转到PHP脚本页面时,POST中包含变量,因此它必须正常工作。

答案 4 :(得分:0)

'cat []'不会是索引。索引应该是'cat',它应该是一个数组。