PHP 会话错误和警告
PHP Session Errors and Warnings
我正在尝试检查用户是否已在 index.php 页面上登录。如果用户未登录,我想将用户重定向到 login.php 页面。
错误日志如下:
> PHP Warning: Cannot modify header information - headers already sent
> by (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 6
>
> PHP Warning: session_start(): Cannot send session cookie - headers
> already sent by (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 3
>
> PHP Warning: session_start(): Cannot send session cache limiter -
> headers already sent (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 3
请查看我的session.php代码:
<?php
//Start session
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if (!isset($_SESSION['id']) || (trim($_SESSION['id']) == '')) {
header('location: login.php');
exit();
}
$session_id=$_SESSION['id'];
?>
请检查行号。我的 2 个 index.php:
<?php include('session.php'); ?>
我的代码有什么问题?如果有人可以指导解决这些错误,我将不胜感激。
提前致谢。
你用header();在 session_start() 之前;在 index.php ??
如果这样做,session_start 必须位于页面顶部或尝试将其从 session.php 删除到 index.php
的顶部
问题是您在会话开始之前在第一行发送了 DOCTYPE。
<!DOCTYPE html>
<?php include('session.php'); ?>
<?php include('dbcon.php'); ?>
<html lang="en">
改为
<?php include('session.php'); ?>
<!DOCTYPE html>
<?php include('dbcon.php'); ?>
<html lang="en">
确保包含在第一行
我正在尝试检查用户是否已在 index.php 页面上登录。如果用户未登录,我想将用户重定向到 login.php 页面。
错误日志如下:
> PHP Warning: Cannot modify header information - headers already sent
> by (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 6
>
> PHP Warning: session_start(): Cannot send session cookie - headers
> already sent by (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 3
>
> PHP Warning: session_start(): Cannot send session cache limiter -
> headers already sent (output started at
> /home/consolem/public_html/megalibrary/index.php:2) in
> /home/consolem/public_html/megalibrary/session.php on line 3
请查看我的session.php代码:
<?php
//Start session
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if (!isset($_SESSION['id']) || (trim($_SESSION['id']) == '')) {
header('location: login.php');
exit();
}
$session_id=$_SESSION['id'];
?>
请检查行号。我的 2 个 index.php:
<?php include('session.php'); ?>
我的代码有什么问题?如果有人可以指导解决这些错误,我将不胜感激。
提前致谢。
你用header();在 session_start() 之前;在 index.php ??
如果这样做,session_start 必须位于页面顶部或尝试将其从 session.php 删除到 index.php
的顶部问题是您在会话开始之前在第一行发送了 DOCTYPE。
<!DOCTYPE html>
<?php include('session.php'); ?>
<?php include('dbcon.php'); ?>
<html lang="en">
改为
<?php include('session.php'); ?>
<!DOCTYPE html>
<?php include('dbcon.php'); ?>
<html lang="en">
确保包含在第一行