解决session_start()错误
有时,我们完成的网页浏览时发生“Warning: session_start(): Cannot send session cookie - headers already sent by (output started at…”的错误。一般的原因是在运行session_start()时,之前已经有实际的html内容输出了,只要将session_start ()的调用移到网页开头部分就能解决。
但是,在Dreamweaver设计中,产生这一问题往往不是上述原因,DW自动产生的代码不会犯如此低级的错误。通常是由于文件UTF-8格式转换或使用网上下载的网页、模板时,文件开始处被插入BOM(Byte Order Mark,字节序标记),正是这个BOM影响到了session的正常运行。
解决的办法也很简单,只要用Ultraedit打开文件,执行另存为,保存时选择“UTF-8 无BOM”即可。如问题依旧,检查session_start函数前的不同PHP代码块之间是否有空行,一般将空行删除即可。
<?php require_once(’Connections/conn.php‘); ?> (空行删除) <?php if (!isset($_SESSION)) { session_start(); } …
另外,header转发也有可能产生此类问题,比如:header(sprintf(”Location:%s”,$insertGoTo)),也可以用以上方法解决。

[...] 对于下载得来的网页文件,文件本身可能不是以UTF-8的形式保存,因此还需要对文件进行转换,转换工具可以用ultraedit文本编辑软件。用ultraedit打开需要转换的文件,对文件操作“另存为”,在“另存为”对话窗口中选择“UTF-8 - 无BOM”格式(UTF-8 - 无BOM格式能够避免session_start函数错误问题),并保存覆盖原来的文件。 [...]