2

我创建了一个 php 会话并像这样分配了数据

session_start();
$_SESSION['desd']=$imgD;

当我尝试在其他页面上检索它时,我什么也得不到。

这是我在第二页所做的,

session_start();
$_imgname = $_SESSION['desd'];

怎么做?

4

2 回答 2

4

假设变量$imgD已定义,代码是有效的(var_dump这是检查这一点的一种方法,但print或者echo也可以工作)。

检查以确保在您的浏览器中启用了 cookie。

此外,请确保 session_start() 位于脚本顶部附近,它应该是每次发送给客户端的第一件事。

要测试会话,请使用以下代码创建“index.php”:

<?php
  session_start();  
  if(isset($_SESSION['views']))
      $_SESSION['views'] = $_SESSION['views']+ 1;
  else
      $_SESSION['views'] = 1;

  echo "views = " . $_SESSION['views']; 
?>

重新加载页面几次,您应该会看到一个递增的数字。

在两个页面之间传递会话变量的示例如下:

PageOne.php

 <?php 
   session_start(); 

   // makes an array 
   $colors=array('red', 'yellow', 'blue'); 
   // adds it to our session 
   $_SESSION['color']=$colors; 
   $_SESSION['size']='small'; 
   $_SESSION['shape']='round'; 
   print "Done";
 ?> 

PageTwo.php

<?php 
 session_start(); 
 print_r ($_SESSION);
 echo "<p>";

 //echo a single entry from the array
 echo $_SESSION['color'][2];
?>

为简单起见,将 PageOne.php 和 PageTwo.php 放在同一目录中。调用 PageOne.php,然后调用 PageTwo.php。

也可以试试这里这里这里的教程。

于 2012-09-20T14:10:05.517 回答
1

如果您调用session_start(),服务器会从 cookie 中获取会话 ID。

cookie 可能有问题,因为代码是有效的。

于 2012-09-20T14:13:32.863 回答