PHP的session_start()和require_once起衝突了怎麼辦?

來源:互聯網
上載者:User
PHP session Baidu App Engine require require_once

我是在百度的BAE平台上調試的。。想用BCMS-SDK出個mail效果。。
目前出現了一個問題:
session_start();和require_once ( "Bcms.class.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處掛了,

echo "01";
session_start();
$accessKey = '';
$secretKey = '';
$queueName = '';
$host = 'bcms.api.duapp.com';
echo "2";
require_once ( "Bcms.class.php" ) ;
echo "4";
輸出012,程式在require_once處掛了。
更但是,如果我像下面這麼寫:
require_once ( "Bcms.class.php" ) ;
session_start();
echo "01";
代碼沒報錯,但開啟頁面的時候,會提示500錯誤,伺服器直接給掛了。。
為什麼,怎麼解決?


回複討論(解決方案)

session_start(); 前面不能有輸出,至於你說的500錯誤,可以將php錯誤提示開啟就知道哪裡出了問題了。

更但是 以前的代碼都違規了:在 session_start(); 前面都有 echo ... 自然要報錯的
可以在程式開始處用 ob_start(); 來迴避

對於 更但是 的代碼,你至少要在本地通過調試
如果沒有本地環境,那麼先檢查檔案名稱 Bcms.class.php 書寫是否正確,特別是大小寫,在檢查檔案是否存在
如果都沒問題,就貼出他的代碼

equire_once ( "Bcms.class.php" ) ;session_start();echo "01";session_start()前面不能有輸出。

session_start(); 前面不能有輸出,至於你說的500錯誤,可以將php錯誤提示開啟就知道哪裡出了問題了。 額。。BAE我是遠端偵錯,怎麼開啊。。

更但是 以前的代碼都違規了:在 session_start(); 前面都有 echo ... 自然要報錯的
可以在程式開始處用 ob_start(); 來迴避

對於 更但是 的代碼,你至少要在本地通過調試
如果沒有本地環境,那麼先檢查檔案名稱 Bcms.class.php 書寫是否正確,特別是大小寫,在檢查檔案是否存在
如果都沒問題,就貼出他的代碼 我本地調試什麼問題都沒有。。也不會掛,也能把require後面的輸出顯示出來
但是在BAE上我這麼寫,也只輸出012

 

equire_once ( "Bcms.class.php" ) ;session_start();echo "01";session_start()前面不能有輸出。
這麼寫,本地沒問題(其實本地一直沒問題),但到了BAE還是報錯。。我又不會開錯誤提示。。


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


你總得說明 Bcms.class.php 裡面都做了什麼吧?


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


你總得說明 Bcms.class.php 裡面都做了什麼吧? 那是百度提供的Message Service的封裝類。。用它實現發送郵件/簡訊什麼的效果。。大概類似於PHPmailer吧。。
Baidu Cloud Message Service(以下簡稱BCMS)是百度於2011年7月最新設計研發,並於2011年底推出的國內首個Message Service平台。將Message Service的所有操作封裝成一個類BaiduBcms,通過對該類的簡單初始化,即可調用其內部的各種方法,使用百度Message Service。
像你這麼改,確實把郵件發出來了,而且輸出了一句bool true
不過,file_exists能替代掉require_once,這又是為什麼呢?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.