我正在练习如何在PHP中将值存储到会话中。
问题在于:
当我在testsession.php中调用echo $_SESSION['handle']
时,它显示为0。
当我使用var_dump($_SESSION['handle'])
时,它显示int(0)。
storeValueParctice.php
$handle = fopen ( "test.txt", "r" );
$_SESSION['handle']=$handle;
echo $_SESSION['handle'] // it will show resource id#(somenumber)
testsession.php
echo $_SESSION['handle']; //it shows 0.
var_dump($_SESSION['handle']);//it shows that int(0).
fseek ( $_SESSION['handle'], 0 ); // this will give me an error which is
//Warning: fseek() expects parameter 1 to be resource, integer given .
我不确定为什么会这样。
如何在testsession.php
中获取资源ID#?
我想将$_SESSION['handle']
从storeValueParctice.php
传递到testsession.php
并在testsession.php
中执行一些文件操作。
答案 0 :(得分:1)
首先在页面顶部添加php session start命令:
<?php
session_start();
?>
fopen()函数返回File对象。
如果你想把文件内容放到会话中试试这个:
$handle = file_get_contents ( "test.txt" );
$_SESSION['handle']=$handle;
var_dump($_SESSION['handle']); // it will show resource id#(somenumber)
这应该可以解决你的问题
答案 1 :(得分:1)
您需要在两个页面的顶部添加session_start()
才能传递值。
<强> storeValueParctice.php 强>:
<?php
session_start(); <===
...rest of the code...
?>
<强> testsession.php 强>
<?php
session_start(); <===
...rest of the code...
?>
答案 2 :(得分:0)
您无法将资源保存到会话。
警告因为会话数据是序列化的,所以资源变量不能 存储在会话中。
参考:http://php.net/manual/en/intro.session.php 参考:http://php.net/manual/en/resource.php
我的消化是: 在会话中保存文件名,并将其加载到另一个。