Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Редирект
Форумы портала PHP.SU » » Вопросы новичков » Редирект

Страниц (1): [1]
 

1. Nizz - 22 Апреля, 2016 - 10:06:21 - перейти к сообщению
В тупик ставит скорее тот факт, что на одном хостинге этот код срабатывает и производит редирект, а на другом - нет. Вот сам код
PHP:
скопировать код в буфер обмена
  1.  
  2. function ULog($p1) {
  3. if ($p1 <= 0 and $_SESSION['USER_LOGIN_IN'] != $p1) MessageSend(1,'Данная страница доступна только для гостей.', '/');  
  4. else if ($_SESSION['USER_LOGIN_IN'] != $p1) MessageSend(1,'Данная страница доступна только для пользователей.', '/');
  5. }
2. kotyara1979 - 22 Апреля, 2016 - 11:45:35 - перейти к сообщению
В приведенном коде вообще редиректа нет.
Что делает функция MessageSend?
3. Nizz - 22 Апреля, 2016 - 12:39:48 - перейти к сообщению
Вот сама функция MessageSend.
PHP:
скопировать код в буфер обмена
  1. function MessageSend($p1, $p2) {
  2. if ($p1 == 1) $p1 = 'Ошибка';
  3. else if ($p1 == 2) $p1 = 'Подсказка';
  4. else if ($p1 == 3) $p1 = 'Информация';
  5. $_SESSION['message'] = '<div class="MessageBlock"><b>'.$p1.'</b>: '.$p2.'</div>';
  6. exit(header('Location: '.$_SERVER['HTTP_REFERER']));
  7. }

Я ее скопировал у одного человека.
4. OrmaJever - 22 Апреля, 2016 - 13:31:31 - перейти к сообщению
возможно перед редиректом выводится какая-то ошибка, или пробел
5. Nizz - 22 Апреля, 2016 - 15:04:02 - перейти к сообщению
Проглядел еще раз внимательно журнал лога ошибок и вот, что нашел.
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /***/*/*****/*****/public_html/setting.php:1) in /****/*/****/****/public_html/index.php on line 3, referer: http://******/ask
И жалуется на эту строчку

А в сетинге на эту
PHP:
скопировать код в буфер обмена
  1. define ('HOST', 'localhost');

что-то я окончательно запутался .
6. Мелкий - 22 Апреля, 2016 - 15:15:16 - перейти к сообщению
Почему-то мне кажется, что первой строкой у вас не define, а <?php. А то соответствующий rfc ещё не приняли же: https://wiki.php.net/rfc/source_...hout_opening_tag

Соответственно, первый кандидат на проверку - BOM-метка файла.
7. Nizz - 22 Апреля, 2016 - 15:23:48 - перейти к сообщению
Мелкий, ваша удивительная прозорливость оказалось верна. Я бы никогда бы не нашел этой ошибки... Дело и правда оказалось в кодировке. В сеттинге она стояла UTF-8. Правда для меня остается загадкой, почему на другом хостинге с этой же кодировкой она работала .... Огромное спасибо вам за внимательность и за помощь. Большое спасибо !

 

Powered by ExBB FM 1.0 RC1