查看完整版本: 使用session_start()就無法開啟網頁!
頁: [1]

kinta7894 發表於 2016-1-29 03:53 AM

使用session_start()就無法開啟網頁!

各位大大好小弟是PHP的新手
今天在練習session的時候
發現加上session_start(),網頁就開啟失敗
真的不知道為什麼,請大大幫忙。

PHP版本為7.0.1

以下為程式碼


<?php session_start(); ?>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        echo 'hello world';
        ?>
    </body>
</html>

<div></div>

sheauren 發表於 2016-1-30 06:28 AM

確認一下php.ini裡面是不是已經設定好session.auto_start=true
如果已經true那你就不需要再呼叫session_start
另外無法顯示應該會有錯誤訊息
不然很容易要用猜的~
應該要去找error log file
沒記錯應該在php.ini設定裡面也有)
看錯誤內容會比較清楚發生什麼事情

bpflsll234 發表於 2016-1-31 03:53 AM

也要順便確定一下 session_start() 之前,不可以有任何輸出。包括空格

pttwabcd 發表於 2016-2-8 09:47 AM

session必須要放最前面喔~~~~

longbest 發表於 2016-2-13 06:30 PM

別讓可以幫忙的站友憑經驗用窮舉法瞎猜
失敗應該有顯示錯誤訊息吧?
<br><br><br><br><br><div></div>

askasb 發表於 2016-2-26 11:30 AM

是不是這段錯誤訊息?
session_start() cannot send session cache limiter

行過沒碰到 發表於 2016-2-29 08:39 PM

試試加上ob_start()吧,應該可以解決

chevylin0802 發表於 2016-3-2 01:56 PM

本帖最後由 chevylin0802 於 2016-3-2 01:59 PM 編輯

askasb 發表於 2016-2-26 11:30 AM static/image/common/back.gif
是不是這段錯誤訊息?
session_start() cannot send session cache limiter
微軟的編輯系統就是麻煩
自從微軟支援UTF-8編碼文件之後
就會產生出Byte Order Mark的這種東西岀現在文件起始位置
PHP的CGI程式根本不會認識BOM格式
於是就把BOM當成是輸出文字在輸出
導致session_start()執行之前就已經有文字輸出
使得如果想在微軟平台上開發
就只能採用UltraEdit之類的舊型編輯器
要知道是不是PHP檔偷偷被安插進BOM表頭也很簡單
直接在DOS模擬器下cat php檔來看就可以知道
如果顯示出來的PHP檔在'<?'之前還有東西
就表示那是微軟UTF-8文件格式的BOM表頭

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]