【发布时间】:2013-01-24 20:53:49
【问题描述】:
假设我有以下 PHP 代码,它尝试从一个名为 $arr 的数组中读取,该数组采用值 {fullname, studentnumber, email}。提交我的 HTML 表单后,此 PHP 代码将执行 foreach 循环,并将发布到页面的值存储在 $_SESSION 数组中。
foreach($arr as $field):
$_SESSION[$field] = $_POST[$field];
endforeach;
上面的代码没有按预期工作。如果我用下面的代码替换上面的代码块,我页面上字段中的值会正确存储在$_SESSION 数组中。
$_SESSION[fullname] = $_POST[fullname];
$_SESSION[studentnumber] = $_POST[studentnumber];
$_SESSION[email] = $_POST[email];
我如何以一种高效且可扩展的方式实现这一目标?我不想每次向表单添加新字段时都编写新的 $_SESSION 语句。
EDIT: // 第一个代码块实际上按预期工作。原来有错别字!
【问题讨论】:
-
如果
$arr被填充为数组$arr = array('fullname','studentnumber','email'),您所拥有的应该 工作 -
鉴于您有未引用的数组键,我们必须假设您没有打开错误报告,因此您的代码中可能存在其他一些问题。
error_reporting(E_ALL); ini_set('display_errors', 1);你会看到一堆关于使用未定义常量的注意事项。这些数组键应该像$_SESSION['fullname'] -
愚蠢的我。 $POST 中有一个错字;它应该是 $_POST!不敢相信我忽略了那个。感谢 Michael 和 @asifrc 的回复。很抱歉因为琐事打扰了你们。
标签: php arrays forms session foreach