【问题标题】:php session foreach storing data issuephp session foreach存储数据问题
【发布时间】:2014-03-01 03:08:15
【问题描述】:

我有一个提交数据的表单。例如,假设它提交了这些数据:

    Age     => 23
    Gender  => Male 
    Country => UK

现在我需要将它存储在我已经创建的会话数组中。但是,这个数组已经存在并且包含比第一种形式更多的字段。例如,会话数组可能如下所示:

    Age => Value
    Gender => Value
    Country => Value
    State => Value
    Language => Value

如您所见,第一种形式只给出了前 3 个。 我想要一个 for each 循环来检测给定的值(在这种情况下:年龄、性别和国家),然后将这些值放在会话数组中。

例如,下一个表格会给出信息:

    State => Value
    Language => Value

我一直在尝试解决这个问题,但我找不到解决方案..:/

【问题讨论】:

标签: php arrays session foreach foreach-loop-container


【解决方案1】:

类似:

$valid_fields = array('Age', 'Gender', 'Country', 'State', 'Language');
foreach ($_POST as $key => $value) {
    if (in_array($key, $valid_fields)) {
        $_SESSION[$key] = $value;
    }
}

【讨论】:

  • 嘿,它似乎不起作用。我使用相同的代码,但数组名称不同,但这是我转储 $_POST 数组时得到的结果:array(6) { ["mysqlname"]=> string(4) "root" ["mysqlpass"]=> string(4) "root" ["mysqlhost"]=> string(9) "localhost" ["mysqldatabase"]=> string(3) "pfs" ["mysqlport"]=> string(4) "3306" ["seed"]=> string(32) "837ec5754f503cfaaee0929fd48974e7" } 这就是我的 $_SESSION 的样子:The value of $_SESSION['mysqlname'] is '' The value of $_SESSION['mysqlpass'] is '' .... 未满.. 但你明白了..它保持空白
  • 这毫无意义。 $_POST 始终使用表单字段值进行初始化。我看不出所有 MySQL 的东西是如何进入它的,你的脚本中必须有一些其他代码在这样做。
  • 哦等等,我刚刚注意到我做错了事。让我重新编写我的代码,然后我会告诉你我的发现。
  • 您误解了var_dump 显示值的方式。这意味着它的值是"root",它是一个长度为 4 个字符的字符串。
  • 您所说的表单输入中的AgeGenderCountry 在哪里?
猜你喜欢
  • 1970-01-01
  • 2011-12-26
  • 2011-04-26
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
  • 2019-07-28
  • 1970-01-01
相关资源
最近更新 更多