我在我的計算機上開發的CMS部署到我的第一臺域服務器,我遇到了重定向到PHP中的頁面(使用javascript工作)功能,調用:PHP重定向拉起空白頁面(僅在部署在服務器上時)
header("Location: {$location}");
一切工作正常在我的家用機器通過WAMP。但是,我部署在服務器上後,它重定向到一個空白頁面。我曾經在一個單獨的文件測試的問題,並發現它只要只能包含redirect_to的功能包含的文件,所以它看起來是這樣的:
<?php //require_once("includes/session.php");?>
<?php require_once("includes/functions.php");?>
<?php //require_once("includes/constants.php"); ?>
<?php //require_once("includes/connection.php"); ?>
<?php
define("DB_SERVER", "mysite.ipagemysql.com");
define("DB_USER", "root");
define("DB_PASS", "notreal");
define("DB_NAME", "myCMS");
redirect_to("login.php");
phpinfo();
?>
這是我所定義的重定向功能的functions.php:
// redirects the user to the page/path specified by $location
function redirect_to($location){
if($location != NULL){
header("Location: {$location}");
exit();
}
}
請注意,我只能包含functions.php文件,如果我有任何其他重定向不再起作用,只是去到一個空白頁。我可以複製,這是代碼在包含的文件中,像上面用constants.php文件所做的那樣:
<?php
// Database constants
define("DB_SERVER", "mysite.ipagemysql.com");
define("DB_USER", "root");
define("DB_PASS", "notreal");
define("DB_NAME", "myCMS");
?>
我可以定期從域服務器加載所有CMS頁面,訪問數據庫並保存到它。由於我可以保存到數據庫中,因此我認爲包含我測試的任何文件都沒有問題,因爲它們都是訪問數據庫所需要的。問題純粹是重定向。一切工作正常,它是如何設置爲我的comp作爲localhost運行。
我一直在尋找這個問題,並嘗試解決方案整天。我已縮小到無法包含其他文件的問題,但我不明白爲什麼,它只發生在域服務器上...
任何幫助或見解將不勝感激,謝謝花時間閱讀本文。
打開'error_reporting'(php.ini或index腳本)和/或查看Web服務器'error.log'(如果有空白頁面)。如果它真的只是失敗的重定向,然後看看[頭已經發送](http://stackoverflow.com/questions/8028957/headers-already-sent-by-php) – mario 2012-01-11 01:54:10