我有这种令人困惑的警告按摩,我无法弄清楚如何解决因为我不知道是什么问题。我的videoator-a.php文件中有这行代码:
<?php require_once "esse.php";?>
<?php
require("common.php");
if(empty($_SESSION['username']))
{
header("Location: index.php");
}
?>
与包含的文件esse.php中的代码行冲突:
<option><?php if(isset($_GET['lang'])){echo $_GET['lang'];}else{?>Language<?php } ?></option>
请注意,在esse.php中有一行:
session_start();
(试想这可以提供帮助) 当我打开videator-a.php页面时,它会发出警告:
Warning: Cannot modify header information - headers already sent by (output started at D:\wamp\www\pollo\esse.php:118) in D:\wamp\www\pollo\videator-a.php on line 6
第6行有:
header("Location: index.php");
和esse.php中的第118行有:
<option><?php if(isset($_GET['lang'])){echo $_GET['lang'];}else{?>Language<?php } ?></option>
如果我修改了我的videator-a.php文件:
<?php
require("common.php");
header("Location: index.php");
?>
<?php require_once "esse.php";?>
警告消失了。为什么我无法检查两个php文件中是否存在会话?这有什么不对? (对不起,我有点沸腾的水壶)
我的问题是 - 错误发生的原因。因为它说 - 标头已经发送 - 但我没有在esse.php文件中发送ny标头。仅检查会话是否存在且id如此 - 回显它。 请问,帮我解决问题。 提前谢谢。
答案 0 :(得分:0)
使用ob_start();
解决问题首先将基本放在每个文件中
if(!ob_get_level()) {
ob_start();
register_shutdown_function(function(){
if(ob_get_level()) ob_end_flush();
});
}
但是这个主题在这里更多的是compelx了解更多