【问题标题】:Using PHP $_SESSION使用 PHP $_SESSION
【发布时间】:2014-07-11 14:50:05
【问题描述】:

我正在通过表单设置$_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']; ?>";

但它没有显示 Andrew。

我用错了吗?

【问题讨论】:

  • 告诉他什么是错误的并帮助他而不是投票
  • 你需要解释一下params.nick = "&lt;?php session_start(); echo $_SESSION['nickname']; ?&gt;";

标签: php session


【解决方案1】:

您有多个问题:

在单引号内包含$key 会导致变量不被插值。只需将$key 不带任何引号都不需要。

<?php 
session_start(); 
if(!empty($_POST)){ 
  foreach ($_POST AS $key => $value) {
    $_SESSION[$key] = $value;
  }
}
?>

您只需将session_start() 放在页面顶部一次,然后您就可以在页面的其余部分正常访问会话变量了。

params.nick = "<?php echo $_SESSION['nickname']; ?>";

【讨论】:

    【解决方案2】:

    只需使用:

    session_start();
    $_SESSION = array_merge($_SESSION, $_POST);
    

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 2013-04-22
      • 2020-11-04
      • 2012-03-26
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多