Heyo,好吧,它基本上是這樣的:在我的本地網絡服務器上,它工作正常,我沒有錯誤等。但是,當我試圖使用我的腳本Web服務器,我得到以下錯誤:已在網絡服務器上發送的標頭 - 但不在本地主機上,同一個腳本
Warning: Cannot modify header information - headers already sent by (output started at /home/namehere/public_html/index.php:5) in /home/namehere/public_html/steamauth/steamauth.php on line 17
以下是steamauth.php的17行和它周圍的行:
$openid = new LightOpenID('localhost');
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'http://steamcommunity.com/openid';
header('Location: ' . $openid->authUrl()); // LINE 17
}
這是我的index.php文件:
<?php
require 'steamauth/steamauth.php';
if(!isset($_SESSION['steamid'])) {
echo "welcome guest! please login \n \n";
steamlogin(); //login button
} else {
//Protected content
echo "OMG! You logged in! :D \n";
echo "your steam ID is: " . $_SESSION['steamid'] . "\n"; //prints their steam ID!
logoutbutton();
}
?>
這是我正在嘗試使用:https://github.com/SmItH197/SteamAuthentication
如果有人可以幫忙,我很樂意得到的幫助。我四處搜尋,嘗試了不同的解決方案。
即: PHP header not working for server but works perfectly fine on local host
我也已檢查的東西,如在他們的正確的地方,他們在該文件(S)的開始/結束。
在實際當中,你的'頭()'函數需要在向瀏覽器發送任何輸出(空白也被視爲輸出)之前調用。嘗試使用這個替代[代碼](http://stackoverflow.com/a/20945810/2513523)代替你的'header()'函數。 –