【问题标题】:Problem displaying $_POST data with session使用会话显示 $_POST 数据时出现问题
【发布时间】:2011-07-05 14:13:46
【问题描述】:

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

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

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

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

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

谁能帮忙

【问题讨论】:

  • 删除了 mysql 标签。以后要如何处理这些数据并不重要。

标签: php


【解决方案1】:

你不想这样:

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

但是这个:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你允许他们上传图片吗?如果是这样,您需要使用临时目录中的文件。查看tmp_namePOST 之后的$_FILES 数组。您必须使用move_uploaded_file 移动文件。 us.php.net/manual/en/function.move-uploaded-file.php
    • 好吧,这已经为数组排序了错误消息,但现在它不会将数组中的选定项目(有六个复选框)存储在数据库中,而是存储所有这些!有什么想法吗?
    • print_r($_POST['cat']) 在将其设置为会话变量之前。确保您的表单发布正确。
    • 嗨迈克尔,这是我在插入页面上的图像 move_uploaded_file($_FILES["clogo"]["tmp_name"], "avatars/" . $_FILES["clogo"][ “姓名”]);在预览页面上,我只有 $_SESSION['clogo'] = $_POST['clogo'];对于上传的图片,它的临时位置会在哪里?
    • 您正在移动它,这很好。当您设置$_POST['clogo'] = $_SESSION['clogo'] 时,这只是文件的名称。在预览页面上,您需要输入正确的路径。 <img src="avatars/".$_SESSION['clogo']."" />
    【解决方案3】:

    记得使用start_session 函数启动会话。否则会话中不会保存任何内容。

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

    【讨论】:

    • 嗨@Ancide,我正在使用 session_start() 并且我对任何其他字段都没有问题,无论是预览它们,还是在批准时将它们添加到数据库中,它只是上传的图像和不玩球的复选框数组。谢谢
    【解决方案4】:

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

    【讨论】:

    • OP 说“隐藏表单字段来保存 $_POST 数据”。
    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多