[英]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.