请高手解答:session_start与header的问题

草山湖 2004-08-06 03:01:31
1、session_start(); 要放在文件最前面,保证之前没有输出。
2、header();之前也不能有输出。

我的一个页面中既有session_start(),又有header()该怎么办??
...全文
305 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzkd 2004-08-06
  • 打赏
  • 举报
回复
哦,是我错了....
学习一下了.....
-神仙- 2004-08-06
  • 打赏
  • 举报
回复
用缓冲
ob_start()
ob_flush()
ashchen 2004-08-06
  • 打赏
  • 举报
回复
楼上的不对,所谓输出指的是浏览器能看到的内容,header和session_start()发送的都是http协议里面隐藏的内容。
大家可以看一下session_start()向浏览器发送的内容:
---------- PHP ----------
Content-type: text/html
X-Powered-By: PHP/4.3.8
Set-Cookie: PHPSESSID=641fdf8789e44b57229a53f587df9923; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
输出完成 (耗时 0 秒) - 正常终止
而上面这些内容完全可以用header来代替,实际上session的功能一部分就是发送header,另外一部分在服务器存贮读取数据。
所以header和session_start的位置无所谓,只要....就行
目前session_start()遇到的很多问题都是不存在默认的目录/tmp,而打开了错误信息提示,这时候错误信息是在header信息之前发送的,所以会有两个错误,这是由错误导致的错误
lzkd 2004-08-06
  • 打赏
  • 举报
回复
ft....

你两个header连在一起,当然不行了,对于第二个header来讲,第一个
header就是输出了.
草山湖 2004-08-06
  • 打赏
  • 举报
回复
session_start();
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=员工信息.xls");

这样就不行
mhzzz 2004-08-06
  • 打赏
  • 举报
回复
它们不管谁在前都没有输出,所以可以随便放置
lzkd 2004-08-06
  • 打赏
  • 举报
回复
?应该没有问题吧

测试文件如下
ttt.php
<?php
session_start();
$_SESSION['a']='This is a test.';
header("location:ttt2.php?run=$_SESSION[a]");
?>

ttt2.php
<?php
echo $_GET['run'];
session_destroy();
?>

楼主试一下,并不矛盾呀,可以共同使用.

21,893

社区成员

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

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