Форум программистов, компьютерный форум, киберфорум
phpBB
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/42: Рейтинг темы: голосов - 42, средняя оценка - 4.64
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
1

Как исправить ошибку или отключить вывод [phpBB Debug] на phpbb 3.0.10?

12.04.2012, 22:19. Просмотров 8470. Ответов 10
Метки нет (Все метки)


Здравствуйте.
Есть сайт, форум phpBB 3.0.10, простой календарик на php и общий модуль авторизации.
По отдельности все работает нормально. Но когда в index.php подключаю календарь и авторизацию, то выводится это:
Код
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1035: Cannot modify header information - headers already sent by (output started at /home/user/data/www/test/calendar.php:87)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1035: Cannot modify header information - headers already sent by (output started at /home/user/data/www/test/calendar.php:87)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1035: Cannot modify header information - headers already sent by (output started at /home/user/data/www/test/calendar.php:87)
вот сам модуль авторизации login.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
define('IN_PHPBB', true);
define('PHPBB_ROOT_PATH', './forum/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
 
 
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');
           
$login = array();
                            
//Нажали выход
if(isset($_GET['logout']) && $user->data['user_id'] != ANONYMOUS)
{
    $user->session_kill();
}
 
// пытаемся залогигиться
if(isset($_GET['login']) && $user->data['user_id'] == ANONYMOUS)
{
    $username = request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin    = (!empty($_GET['autologin'])) ? true : false;
 
    $login = $auth->login($username, $password, $autologin);
}
 
 
if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS)
{
    if(!empty($login))
    {
        $auth->acl($user->data);
    }
    echo '<center> <br /><br />';
    echo '<form method="get">';
    echo 'Привет, '  . get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']) . '<br />';
    echo '    <input type="submit" name="logout" value="Выйти" >';
    echo '</form>';
    echo '</center>';
}
 
?>
<form class="authform" method="post">
                        <table style="margin-left: 28px;">
                            <tr>
                                <td><span class="label">Логин:&nbsp&nbsp&nbsp  </span> </td>
                                <td><input class="login" type="text" name="username" id="username">  </td>
                            </tr>
                            <tr>
                                <td><span class="label">Пароль:</span></td>
                                <td><input class="login" type="password" name="password" id="password"></td>
                            </tr>
                            <tr>
                                <td colspan="2" align="left"> <input type="checkbox" name="autologin"><span class="label">Запомнить меня</span> <input type="submit" name="login" style="display: none;"></td>
                            </tr> 
                            <tr>
                                <td colspan="2" align="right"><span class="label"><a href="#" onclick="javascript: getElementById('login').click();" >Вход</span></td>
                            </tr>
                            <tr>
                                <td colspan="2" align="right"><span class="label"><a href="javascript: login();">Регистрация</span></td>
                            </tr>
                        </table> 
                    </form>
и простой календарик, который ни в чем не виноват, но мешает. calendar.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
function print_call()
{
  $dayofmonth = date('t');
  $day_count = 1;
  $num = 0;
  for($i = 0; $i < 7; $i++)
  {
    $dayofweek = date('w', mktime(0, 0, 0, date('m'), $day_count, date('Y')));
    $dayofweek = $dayofweek - 1;
    if($dayofweek == -1) $dayofweek = 6;
    if($dayofweek == $i)
    {
      $week[$num][$i] = $day_count;
      $day_count++;
    }
    else
    {
      $week[$num][$i] = "";
    }
  }
  while(true)
  {
    $num++;
    for($i = 0; $i < 7; $i++)
    {
      $week[$num][$i] = $day_count;
      $day_count++;
      if($day_count > $dayofmonth) break;
    }
    if($day_count > $dayofmonth) break;
  }
  switch (date("m"))
  {
    case 1:
        $name_of_month = "Январь";
        break;
    case 2:
        $name_of_month = "Февраль";
        break;
    case 3:
        $name_of_month = "Март";
        break;
    case 4:
        $name_of_month = "Апрель";
        break;
    case 5:
        $name_of_month = "Май";
        break;
    case 6:
        $name_of_month = "Июнь";
        break;
    case 7:
        $name_of_month = "Июль";
        break;
    case 8:
        $name_of_month = "Август";
        break;
    case 9:
        $name_of_month = "Сентябрь";
        break;
    case 10:
        $name_of_month = "Октябрь";
        break;
    case 11:
        $name_of_month = "Ноябрь";
        break;
    case 12:
        $name_of_month = "Декабрь";
        break;
    }
  echo "<font size=4><b><i>"
      .$name_of_month.
      "</i></b></font><table border=0 width=150 align=center>";
  $name_of_days[] = "Пн.";
  $name_of_days[] = "Вт.";
  $name_of_days[] = "Ср.";
  $name_of_days[] = "Чт.";
  $name_of_days[] = "Пт.";
  $name_of_days[] = "Сб.";
  $name_of_days[] = "Вс.";
  for ($i = 0; $i < 7; $i++)
  {
      
    $name_of_day = $name_of_days[$i];
    if ($i < 5) echo "<td><font size=1 aling=\"right\">$name_of_day</font></td>";
    else echo "<td><b><font size=1>$name_of_day</font></b></td>";
  }
  echo "</tr>";
  for($i = 0; $i < count($week); $i++)
  {
    echo "<tr>";
    for($j = 0; $j < 7; $j++)
    {
      if(!empty($week[$i][$j]))
      {
        $day = mktime(0, 0, 0, date("m"), $week[$i][$j],   date("Y"));
        $now = mktime(0, 0, 0, date("m"), date("d"),   date("Y"));
        $color_of_day="#000000"; $p1 = ""; $p2 = "";
        if($day == $now)
        {
            $color_of_day="#FF0000";
            $p1 = "<b>"; $p2 = "</b>";
        }
        $line = "<td><font size=1 color=$color_of_day><div align=\"right\">";
        if($j == 5 || $j == 6)
             $line = $line."<b>".$week[$i][$j]."</b>";
        else $line = $line.$p1.$week[$i][$j].$p2;
        echo $line."</color></div></td>";
 
      }
      else echo "<td>&nbsp;</td>";
    }
    echo "</tr>";
  }
  echo "</table>";
  }
  print_call();
  ?>
Можно ли как то решить эту проблему с заголовками?
Или хотя бы как отключить вывод phpBB Debug на версии форума phpbb 3.0.10?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2012, 22:19
Ответы с готовыми решениями:

Какой форум выбрать phpBB или LogicBoard
подскажите + и - форумов phpBB и LogicBoard ?

Вывод последних тем в несколько столбцов на главной странице форума phpBB
Дорогие друзья убедительно Вас пршу помочь, поскольку на сайте поддержки только предупреждения...

Если ставить phpBB-форум с нуля сейчас, то лучше стабильный 3.1 или таки сразу 3.2-RC?
Я не могу определиться с выбором. С одной стороны к 3.1 много модов и он проверенный временем....

Как вставить phpbb на страницу?
как вставить phpbb на страницу. Чтобы вверху своя шапка, а посредине форум. На том же сайте...

10
1046 / 380 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
14.04.2012, 13:01 2
Какая кодировка файла calendar.php?
0
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
15.04.2012, 07:57  [ТС] 3
все в utf-8
0
1046 / 380 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
15.04.2012, 11:45 4
Должно быть UTF-8 without BOM. И выложите код, которым вы все это подключаете в index.php
0
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
15.04.2012, 17:53  [ТС] 5
Цитата Сообщение от Amator Посмотреть сообщение
Должно быть UTF-8 without BOM. И выложите код, которым вы все это подключаете в index.php
PHP
1
2
<div id="calendar"> <?php require_once "calendar.php"; ?> </div>
<div id="login"> <?php require_once "login.php"; ?> </div>
Пробывал include, ничего не изменилось. Выводится php Debug, авторизация проходит, но перейдя на форум приходится авторизовываться заново. Отключаю календарь - все работает.

Да и не в коде календаря скорее всего дело, с другими скриптами наверно также будет, не могу понять в чем проблема..
0
1046 / 380 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
15.04.2012, 22:15 6
А что в файле из ошибки session.php на той строке(1035)? Выложите её и +-5 строк
0
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
15.04.2012, 22:54  [ТС] 7
Цитата Сообщение от Amator Посмотреть сообщение
А что в файле из ошибки session.php на той строке(1035)? Выложите её и +-5 строк
там установка куки

PHP
1
2
3
4
5
6
7
8
9
10
    function set_cookie($name, $cookiedata, $cookietime)
    {
        global $config;
 
        $name_data = rawurlencode($config['cookie_name'] . '_' . $name) . '=' . rawurlencode($cookiedata);
        $expire = gmdate('D, d-M-Y H:i:s \\G\\M\\T', $cookietime);
        $domain = (!$config['cookie_domain'] || $config['cookie_domain'] == 'localhost' || $config['cookie_domain'] == '127.0.0.1') ? '' : '; domain=' . $config['cookie_domain'];
 
/*1035*/   header('Set-Cookie: ' . $name_data . (($cookietime) ? '; expires=' . $expire : '') . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . '; HttpOnly', false);
    }
0
1046 / 380 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
15.04.2012, 23:21 8
А если подключение заменить на include_once?
0
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
16.04.2012, 07:33  [ТС] 9
Цитата Сообщение от Amator Посмотреть сообщение
А если подключение заменить на include_once?
include, include_once, require, require_once - изменений никаких.
0
1046 / 380 / 15
Регистрация: 11.11.2008
Сообщений: 3,155
16.04.2012, 13:32 10
Для отключения phpBB Debug в файле config.php закоментируйте следующие строки
PHP
1
2
@define('DEBUG', true);
@define('DEBUG_EXTRA', true);
0
10 / 10 / 5
Регистрация: 31.01.2012
Сообщений: 98
16.04.2012, 19:10  [ТС] 11
Цитата Сообщение от Amator Посмотреть сообщение
Для отключения phpBB Debug в файле config.php закоментируйте следующие строки
PHP
1
2
@define('DEBUG', true);
@define('DEBUG_EXTRA', true);
это я знаю, но у меня в версии 3.0.10 они изначально были закоментированы, но php Debug все равно есть.
да и это не выход, если авторизовавшись на сайте, сессия не передается на форум и приходится авторизовываться заново.
я так понимаю проблема в header ("Set-cookie") или несовместимость set_cookie с функциями работы с датой.

может есть другой скрипт авторизации...?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2012, 19:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как устанавливать модули в PhpBB?
Как установить модули в PhpBB 3.0.5 Облазил всю панель управления такого пункта не нашел. Смотрел...

вопрос по форуму PhpBB - как изменить лого?
imeetsya v vidu: http://www.phpbb.com/images/mainlogo.gif v general configuration pochemu-to...

Как сделать так чтобы форумна движке phpBB работал с двумя БД?
Здравствуйте, у меня такая ситуация... Мне в наследство от предыдущих программистов достался...

Как поменять движок VB на PHPBB без потери базы данных и файлов форума
Приветствую. Как поменять движок VB на phpBB без потери базы данных и файлов форума?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.