0

我收到了这些错误:

[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1042: Cannot modify header information - headers already sent by (output started at /home4/ink/public_html/testpage.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1042: Cannot modify header information - headers already sent by (output started at /home4/ink/public_html/testpage.php:3)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1042: Cannot modify header information - headers already sent by (output started at /home4/ink/public_html/testpage.php:3)

我已经搜索了以下解决方案: - 使用非 UTF 文件格式 - 使用 header(location 'www.example.com') - 在 php 标记之前或之后清除空格 - 将 php 会话从所有文件的开头开始, 和其他领域

我正在尝试提供一个登录区域,利用 phpBB 数据库获取用户名和密码。一旦您访问了论坛,以下代码就可以工作,但在那之前,它会吐出上面的错误。

这是代码。

<?php   
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
if($user->data['is_registered'])
{

    echo "Hello " . $user->data['username']; //User is already logged in

    echo "<br /> Last visit: " . $user->format_date($user->data['session_last_visit']);

}

else
{

    echo '<form method="POST" action="./forum/ucp.php?mode=login">
    <p>Username: <input type="text" name="username" size="40"><br />
    Password: <input type="password" name="password" size="40"><br />
    Remember Me?: <input type="checkbox" name="autologin"><br /><br /><br />
    <input type="submit" value="Submit" name="login"></p>
    </form>';
}?>

此代码用于站点的菜单区域。上面的代码可以在整个站点中使用的包含中找到。

从我寻找答案的过程中,我觉得解决方案将涉及在调用站点的其余部分之前将部分代码放入文件中,以便会话可以在其他任何事情之前首先开始。如果是这样,我很想知道如何解决这个问题,如果不是,那这就是我无法解决这个问题的原因!

我查看了所有带有此错误的堆栈溢出问题,但在其中任何一个中都找不到可行的解决方案。phpBB 的文档也没有帮助指定有关此标头问题的更多信息。

如果需要更多信息,请询问!

4

2 回答 2

0

这是session问题

您需要在文件顶部开始会话..

<?php
    session_start();
    // then your code
于 2013-10-03T15:52:52.983 回答
0

Cookie 在 HTTP 页面传输的标头中发送。一旦你给出了一些输出,你就不能再修改这些了。

ob_start();使用页面的 to缓冲您的输出

于 2013-10-03T15:55:17.860 回答