簡體   English   中英

重定向到基本URL不起作用

[英]Redirect to base URL doesn't work

我需要使成員僅訪問我的index.php頁面。 因此,位於index.php文件開頭的php腳本正在檢查用戶名是否在會話中,如果不是,則應自動將用戶重定向到我的login.php頁面。 所以我的登錄頁面應該是BASE_URL頁面。 我也define ('BASE_URL', 'mywebsite.com/login.php'); 在我的verify.php腳本中。 但是,當我導航到索引頁面時,我只會得到(黑屏)錯誤“第11行的腳本'path / index.php'中發生錯誤:無法修改標頭信息-已發送的標頭(輸出從路徑/索引處開始。 php:1)”。 HTML之前沒有空格,這可能是原因。 我還嘗試將BASE_URL設置為我的login.php head的“ base_href”登錄名,但沒有成功。 這是我的索引文件開頭的腳本:

<?php 
require_once ('verify.php'); 
$page_title = 'title';
ob_start();
session_start();
if (!isset($page_title)) {
$page_title = 'title';}
if (!isset($_SESSION['name'])) {    
$url = BASE_URL . ''; 
ob_end_clean();
header("Location: $url ");
exit();
}
?>
<!DOCTYPE html><html><head></head><body></body></html>
<?php
ob_end_flush();
?>

我的verify.php內容:

<?php 
define('LIVE', TRUE);
define('EMAIL', 'my_mail');
define ('BASE_URL', 'mywebsite.com/login.php');
define ('MYSQL', 'db.php');
function my_error_handler ($e_number, $e_message, $e_file, $e_line, $e_vars) {
$message = "<p>An error occurred in script '$e_file' on line $e_line:      $e_message\n<br />"; 
$message .= "Date/Time: " . date('n-j-Y H:i:s') . "\n<br />";
$message .= "<pre>" . print_r ($e_vars, 1) . "</pre>\n</p>";
if (!LIVE) { echo '<div class="error">' . $message . '</div><br />';

} else {        
    mail(EMAIL, 'Site Error!', $message, 'From: you@youremail.com');
    if ($e_number != E_NOTICE) {
    echo '<div class="error">A system error occurred. We apologize for the inconvenience.</div><br />';
    }   }     } 
 set_error_handler ('my_error_handler');
 ?>

我找到了解決方案。 答案是在沒有BOM的UTF8中進行編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM