如何在php中将变量传递给会话数组

时间:2016-06-21 06:23:23

标签: php session session-variables

执行查询 search.php 后,会显示多个结果并显示自己的信息(标题,说明,网址)。

result_1,result_2,result_3......

当我点击网址时,下一页 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'];
  ?>

1 个答案:

答案 0 :(得分:0)

确保将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"];
    }
}

我希望这会对你有所帮助。