我创建了一个 php 会话并像这样分配了数据
session_start();
$_SESSION['desd']=$imgD;
当我尝试在其他页面上检索它时,我什么也得不到。
这是我在第二页所做的,
session_start();
$_imgname = $_SESSION['desd'];
怎么做?
假设变量$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。
如果您调用session_start()
,服务器会从 cookie 中获取会话 ID。
cookie 可能有问题,因为代码是有效的。