日期:2014-05-17  浏览次数:20417 次

PHP的session_start()和require_once起冲突了怎么办?
我是在百度的BAE平台上调试的。。想用BCMS-SDK出个mail效果。。
目前出现了一个问题:
session_start();和require_once ( "Bcms.class.php" ) ;两个语句,不管哪个,只要写在前面,就能运行过去,随后就在后者处卡死。 
比如 
<?php
 echo "01"; 
$accessKey = ''; 
$secretKey = ''; 
$queueName = ''; 
$host = 'bcms.api.duapp.com'; 
echo "2"; 
require_once ( "Bcms.class.php" ) ; 
echo "4"; 
session_start(); 
echo "3"; 
输出0124,程序在session_start处挂了, 

<?php 
echo "01"; 
session_start(); 
$accessKey = ''; 
$secretKey = ''; 
$queueName = ''; 
$host = 'bcms.api.duapp.com'; 
echo "2"; 
require_once ( "Bcms.class.php" ) ; 
echo "4"; 
输出012,程序在require_once处挂了。 
更但是,如果我像下面这么写:
<?php
require_once ( "Bcms.class.php" ) ;
session_start();
echo "01";
代码没报错,但打开页面的时候,会提示500错误,服务器直接给挂了。。
为什么,怎么解决?
PHP session Baidu?App?Engine require require_once

------解决方案--------------------
session_start(); 前面不能有输出,至于你说的500错误,可以将php错误提示打开就知道哪里出了问题了。
------解决方案--------------------
更但是 以前的代码都违规了:在 session_start(); 前面都有 echo ... 自然要报错的
可以在程序开始处用 ob_start(); 来回避

对于 更但是 的代码,你至少要在本地通过调试
如果没有本地环境,那么先检查文件名 Bcms.class.php 书写是否正确,特别是大小写,在检查文件是否存在
如果都没问题,就贴出他的代码

------解决方案--------------------
equire_once ( "Bcms.class.php" ) ;
session_start();
echo "01";

session_start()前面不能有输出。

------解决方案--------------------

echo "2";
var_dump(file_exists('Bcms.class.php'));


你总得说明 Bcms.class.php 里面都做了什么吧?