天啊!为什么别人都能用,我的session有问题呀!!!!

kitling 2003-08-19 03:11:47
编写了两个文件,用session传值:

----temp1.php-----
<?php
session_start()
?>
<html>
<body>
<?php
$a="abc";
session_register("a");

?>
<a href=temp2.php > --cc-- </a>
</body>
</html>

----temp2.php-----
<?php
session_start()
?>
<html>
<body>
<?php
echo $_SESSION["a"];
?>
</body>
</html>

执行temp1.php后显示:

Warning: session_start(): open(/tmp\sess_c27bb8cff68fa6a3bf4a437561c8866b, O_RDWR) failed: No such file or directory (2) in D:\Work\php\temp1.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\Work\php\temp1.php:2) in D:\Work\php\temp1.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\Work\php\temp1.php:2) in D:\Work\php\temp1.php on line 2
--cc--
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

把php.ini改为

session.save_path = c:\temp or session.save_path = c:\

错误照常!!

又改为:

session.save_path = /tmp/ or session.save_path = /tmp

还是一样?????(c:\temp c:\tmp c:\php\temp c:\php\tmp都有)

去c:\tmp中查看,发现有sess_c27bb8cff68fa6a3bf4a437561c8866b这个文件,文件内容如下:

a|s:3:"abc";

但就是出错!!!谁知道我有哪个低级错误呀!!!快告诉我吧!!!谢谢了。
...全文
105 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaobohao 2003-08-20
  • 打赏
  • 举报
回复
哈哈,都是小问题,要学会看错误报告..
phpro 2003-08-20
  • 打赏
  • 举报
回复
你用的肯定是windows操作系统吧?

将php.ini中的session.save_path 指定为一定 绝对文件夹就行,要是实际存在的,它不会自动生成
asuka37 2003-08-19
  • 打赏
  • 举报
回复
session.cookie_path= \
好像配置中这一项不能乱改,我的就是这个出了问题的。
还有好像要把session.auto_start设为1,还有一个就是session的表达问题,楼主的表达式是4.2.3之前的。
kitling 2003-08-19
  • 打赏
  • 举报
回复
改为用$_SESSION['a'] = 'test';的方法了,但还是在 session_start();这里出错!!!
kitling 2003-08-19
  • 打赏
  • 举报
回复
我把php.ini放在c:\winnt下,用phpinfo()查看,Configuration File (php.ini) Path 也是指向c:\winnt。

但不管我怎么改php.ini,phpinfo()中的值就是不变(服务重启过了)。

比如:我在php.ini中extension_dir = "c:\php"

但phpinfo()中显示:extension_dir | c:\php4 | c:\php4

另外我改变 php.ini中session.save_path = c:\temp

但报错还是为

Warning: session_start(): open(/tmp\sess_ebb142915f62c4c1ab2c7e7039e70b44, O_RDWR) failed: No such file or directory (2) in D:\Work\php\temp1.php on line 2

我查了我机器里只有c:\winnt\php.ini一个文件,谁知道怎么回事呀!!!!谢谢了!!!!
zkqd 2003-08-19
  • 打赏
  • 举报
回复
最好用:$_SESSION['test'] = 'test';
另外有一个最简单的办法,把php.ini里面的所有错误提示都注释掉。

; E_ALL - All errors and warnings
; E_ERROR - fatal run-time errors
; E_WARNING - run-time warnings (non-fatal errors)
; E_PARSE - compile-time parse errors
; E_NOTICE - run-time notices (these are warnings which often result
这样不会出错误提示,而且不影响session的使用。
myblessu 2003-08-19
  • 打赏
  • 举报
回复
是呀,可能你机子有多个php.ini文件,查找一下,把多余的删除了.只留一个.
luxuezhu 2003-08-19
  • 打赏
  • 举报
回复
查看 phpinfo(); 中使用的 php.ini 文件是否是你改写的那个
确定你的SESSION路径
----temp1.php-----
前面加
<html>
<body>


temp2.php也一样

最后试一下把register_globals =ON
xuzuning 2003-08-19
  • 打赏
  • 举报
回复
在默认设置下,session_register只用于php4.2.x及以下
php4.3.0及以上使用
$_SESSION['varname'] = value
的形式注册session变量
shuiaaa 2003-08-19
  • 打赏
  • 举报
回复
session.save_path =c:\temp

然后在C盘下建一个文件夹名子改为temp
sandyuk 2003-08-19
  • 打赏
  • 举报
回复
检查你的/tmp对IUSR_???用户是否只读。
查看 phpinfo(); 中使用的 php.ini 文件是否是你改写的那个。
注意:有可能你机器中有几个 php.ini 而你改的不是正在用的那个。
vitalgg 2003-08-19
  • 打赏
  • 举报
回复
----temp1.php-----
<?php
session_start()
?>
<html>
<body>
<?php
$_SESSION['a']="abc";;
?>
<a href=temp2.php > --cc-- </a>
</body>
</html>
=================================
session的用法:
session_start();//开始session
$_SESSION['aa'] = "aaa";//注册session变量aa的值为aaa,相当于$aa='aaa';session_register('aa');
unset($_SESSION['aa']);//相当于session_unregister('aa');
session_destroy();//...

21,880

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧