【问题标题】:how to pass variables into session array in php如何将变量传递到php中的会话数组
【发布时间】:2016-10-22 13:26:06
【问题描述】:

执行查询search.php后,出现多个结果,并带有自己的信息(标题,描述,网址)。

result_1,result_2,result_3......

当我点击 url 时,下一页 final.php 打开。我应该如何将该结果信息存储在变量中并将其显示在 final.php
我尝试了会话变量,但它只将最后一个结果信息(即result_3)传递到下一页。

这是我的代码

search.php

  <?php
  session_start();
  $_SESSION['title'] = $title;
  $_SESSION['description'] = $description;
  $_SESSION['content_url'] = $url;
  $_SESSION['icon'] = $icon;
  ?>   

final.php

 <?php 
    session_start();
    $session_title  = $_SESSION['title'];
    $session_description = $_SESSION['description'];
    $session_url = $_SESSION['content_url'];
    $session_icon = $_SESSION['icon'];
  ?>

【问题讨论】:

  • 将 session_start() 放在每个页面的开头然后尝试
  • 这是我做的第一件事,但它只是传递了最后的结果信息
  • 我认为您需要使用多维数组,因为可能在搜索中您获得了多个结果并且您想显示所有结果对吗?
  • 使用多维会话数组求解
  • 我对多维数组有点困惑,你能告诉我如何使用它

标签: php session session-variables


【解决方案1】:

确保将session_start(); 放在您使用会话变量的每个文件的顶部。

要创建数组会话变量,您可以执行以下操作:

<?php
session_start();

$_SESSION["array"][] = array(
    "title"         => $title,
    "description"   => $description,
    "content_url"   => $url,
    "icon"          => $icon
);

echo "<pre>";
var_dump($_SESSION);
echo "</pre>";

# Optional clear session, remove line if you don't want to
session_unset($_SESSION);
?>

上面的代码会输出如下内容:

array(1) {
  ["array"]=>
  array(1) {
    [0]=>
    array(4) {
      ["title"]=>
      NULL
      ["description"]=>
      NULL
      ["content_url"]=>
      NULL
      ["icon"]=>
      NULL
    }
  }
}

在 final.php 中,您可以通过以下方式检查:

if(isset($_SESSION["array"])) {
    foreach($_SESSION["array"] as $result => $key) {
        echo $key["title"];
    }
}

希望对你有所帮助。

【讨论】:

  • 是的,我已经做到了,但忘了在代码中提及,会话变量正在其他页面上传递,但问题是它只传递最后一个结果信息
  • 确保你的问题中有更新的代码,否则这里的人一直说你忘记了session_start() :)
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 2011-06-12
  • 2013-09-01
  • 2013-08-11
  • 1970-01-01
  • 2013-05-01
  • 2018-05-09
  • 1970-01-01
相关资源
最近更新 更多