我通过表单设置$_SESSION
值:
<?php if(!empty($_POST)){
session_start();
foreach ($_POST AS $key => $value) {
$_SESSION['$key'] = $value;
}
?>
网站上的后续页面可以访问数据:
将var_dump($_SESSION);
放在另一页上会显示:
array(2) { ["post"]=> array(5) { ["nickname"]=> string(6) "Andrew" ["gender"]=> string(4) "Male" ["button"]=> string(0) "" ["age"]=> string(7) "Unknown" ["location"]=> string(7) "Unknown" } ["$key"]=> string(7) "Unknown" }
我正在尝试使用以下方法获取值:
params.nick = "<?php session_start(); echo $_SESSION['nickname']; ?>";
但它没有显示安德鲁。
我使用这个错误吗?
答案 0 :(得分:0)
您有多个问题:
在单引号内部$key
会导致变量不被插值。只需将$key
放在没有任何引号的情况下都不需要。
<?php
session_start();
if(!empty($_POST)){
foreach ($_POST AS $key => $value) {
$_SESSION[$key] = $value;
}
}
?>
您只需将session_start()
放在页面顶部一次,然后就可以在页面的其余部分正常访问会话变量。
params.nick = "<?php echo $_SESSION['nickname']; ?>";
答案 1 :(得分:0)
只需使用:
session_start();
$_SESSION = array_merge($_SESSION, $_POST);