Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/112: Рейтинг темы: голосов - 112, средняя оценка - 4.96
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248

Не работает редирект

16.05.2011, 15:06. Показов 22750. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На локалхосте всё отлично работало, перенес сайт на хостинг перестало работать перенаправление

header('Location:http://lalala/index.php');
exit();

В чём может быть причина?

Провреил, сделал пустой файл с таким содержимым, работает перенаправление, а на других страницах нет%)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2011, 15:06
Ответы с готовыми решениями:

Не работает редирект
Доброй ночи! Я написал форму и сделал к ней проверки, если все норм то человек переходит на следующий шаг, тут все нормально работает. НО...

Не работает редирект
Всем привет! Хочу склеить сайты с WWW и без - но ничего не выходит, обыскал пол интернета, все советуют одно и тоже, но у меня так не...

Не работает редирект
нужно через мою программу запускать как дочерний процесс разные программы на паскале.вот к примеру program s; var a,b:integer; begin ...

22
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 15:40
php.net
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Это учел?
1
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 16:39  [ТС]
Не работает на хостинге...

PHP
1
2
3
4
5
<?php
echo "hello";
header('Location:http://lalala/index.php');
exit();
?>
На хостинге этот код выводит hello, на локалхосте перенправляет.
Беда..
0
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 17:14
я с этим ниразу не встречался и не понимаю, что ты хочешь получить.
Так перенаправляет
PHP
1
2
3
4
<?php
header('Location:http://lalala/index.php');
exit();
?>
А так нет?
PHP
1
2
3
4
5
<?php
echo "hello";
header('Location:http://lalala/index.php');
exit();
?>
Если объяснишь популярно, что ты этим хочешь добиться, и покажешь весь код (включая html-разметку) неперенаправляющегося файла, то попробую те помочь.

Добавлено через 2 минуты
а вообще может модуль какой не включен на хостинге для редиректа? хотя по твоим словам "сделал пустой файл с таким содержимым, работает перенаправление" - дб все включено...
а если так написать http://www.lalala/index.php
0
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 18:14  [ТС]
Так объясняю, сделал сайт на локалхосте - всё работает. перенес его на внешний хостинг, начал тестировать... на странице авторизации, есть редирект. http://presentation.gostkov.ru/
юзер: test, пароль: 1
при атворизации получаем белый экран.
Погуглив наткнулся на такой текст, что header может не работать если перед ним происходит какой то вывод на экран, я создал файл в нем только код перенправления, редирект заработал,
добавил строку echo "hello"; ставл выводить hello, я протестировал это код на локалхосте, на локалхосте происходит редирект!

Добавлено через 34 минуты
Тех.поддержка ответила:
Перед header'ом никаких вызовов быть не должно.
/* This will give an error. Note the output
* above, which is before the header() call */
0
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 19:23
т.е. твой вопрос сводится - почему на локалке редирект работает не по правилам?
я те цитату приводил, там тоже сказано, что тех.поддержка ответила. сделай как те сказали и не парься.
и вообще зачем ты echo "hello"; перед заголовком добавляешь? ради того, чтобы удедиться, что это не работает?

Добавлено через 5 минут
вроде понял, что те нужно.
гугл сказал
PHP
1
2
3
4
<?php 
header('Refresh: 5; URL=http://www.new_page.php'); 
echo "Через 5 сек. вы будете перенаправлены на новую страницу... или нажмите на <a href='http://www.new_page.php'>ссылку</a>, если не хотите ждать"; 
?>
Добавлено через 6 минут
PHP
1
2
3
4
<?php 
header('Refresh: 3; URL=http://lalala/index.php'); 
echo "hi assholes. this site is another copy of google presentation"; 
?>
0
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 19:27  [ТС]
Мой вопрос сводится к тому как заставить работать!
echo поставил для тестирования.
твой приведенный код не производит редиректа.

Добавлено через 1 минуту
Цитата Сообщение от andyarus Посмотреть сообщение
echo "hi assholes. this site is another copy of google presentation";
очень остроумно
0
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 19:51
у меня на локалке работает.
А так чем не устраивает тебя?
PHP
1
2
3
<?php
header('Location:http://lalala/index.php');
?>
Добавлено через 9 минут
а вообще, если обязательно нужно вывести сообщение, то наверн без javascript не обойтись.
запости потом решение этой проблемы.
0
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 20:23  [ТС]
Да меня всем устраивает! у меня ничего не выводится на экран!

На локалхосте явно прописал echo "lala"; и все равно редирект сделал!ОО

Добавлено через 19 минут
Решил проблему от части
С хостингом стало все понятно, утрал все пустые строки и всё заработало!

А почему когда на локалхосте я явно вывожу, и у меня рeader проход мне так и не понтяно
0
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 20:34
в смысле пустые строки убрал?
у тебя так было?
PHP
1
2
3
4
5
6
<?php
 
 
 
header('Location:http://lalala/index.php');
?>
а что с хостингом?
мне тоже неясно, почему на локалке редирект проходит даже тогда, когда перед header() идет вывод текста. кто объяснит?
0
 Аватар для olshevskiy87
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
16.05.2011, 20:38
BoDRbIi, то, что перед header-ом не должно быть никакого вывода на экран - это не пустые слова, а ПРАВИЛО. Браузер воспринимает вывод контента на экран, как сигнал о том, что заголовки закончились и пора уже формировать страницу.
Если ты ставишь echo для тестирования, то это бессмысленно, потому что у тебя в любом случае редирект произойдет практически незаметно. Вывода текста не будет. Вот если бы ты так сделал:
PHP
1
2
3
echo 'тестовое сообщение';
exit;
header('...');
, то было бы совсем другое дело.

Добавлено через 1 минуту
Цитата Сообщение от andyarus Посмотреть сообщение
в смысле пустые строки убрал?
у тебя так было?
PHP
1
2
3
4
5
6
<?php
 
 
 
header('Location:http://lalala/index.php');
?>
а что с хостингом?
мне тоже неясно, почему на локалке редирект проходит даже тогда, когда перед header() идет вывод текста. кто объяснит?
По-моему, данного вида пустые строки погоды не сделают. Если бы пустые строки были перед <?php, то это была бы проблема для редиректа.
1
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 20:52
за "Браузер воспринимает вывод контента на экран, как сигнал о том, что заголовки закончились и пора уже формировать страницу" и пояснение про строки, спс, не знал.
и все-таки, почему на локалке то срабатывает, а на хостинге нет?
и поясни, пжлст, как это работает
PHP
1
2
3
echo 'тестовое сообщение';
exit;
header('...');
если в хедере редирект? я чот не понял.
0
 Аватар для olshevskiy87
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
16.05.2011, 21:03
Цитата Сообщение от andyarus Посмотреть сообщение
и поясни, пжлст, как это работает
PHP
1
2
3
echo 'тестовое сообщение';
exit;
header('...');
если в хедере редирект? я чот не понял.
редирект произойдет только тогда, когда выполнится функция header(), а в данном случае она не выполнится никогда, т.к. exit завершит работу скрипта. Зато останется выведенный через echo текст. Сам так часто дебажу код))
1
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 21:08  [ТС]
От без исходности я взял другой хостинг, на нём был включен вывод ошибок, и он показал на строку файла Include.
Так.
test1.php файл, в нём был include "test2.php"
в test2.php было примерно следующее:
PHP
1
2
3
4
5
if(...)
{}
//тут пустая строка, из-за которой всё и не работало
else
{}
Вот.

P.S.
PHP
1
2
3
echo 'тестовое сообщение';
exit;
header('...')
ну это понятно
вообще можно корчое записать
PHP
1
2
exit("тестовое сообщение");
header('...')
0
 Аватар для olshevskiy87
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
16.05.2011, 21:13
Цитата Сообщение от BoDRbIi Посмотреть сообщение
От без исходности я взял другой хостинг, на нём был включен вывод ошибок, и он показал на строку файла Include.
Так.
test1.php файл, в нём был include "test2.php"
в test2.php было примерно следующее:
PHP
1
2
3
4
5
if(...)
{}
//тут пустая строка, из-за которой всё и не работало
else
{}
Вот.
Можно один вопрос? Т.е. когда ты удалил пустую строку между закрывающей фигурной скобкой условия if и оператором else, все заработало? Я тебя, наверно, разочарую, но мне это кажется нелепостью. Между скобкой и else можно поставить хоть миллион пустых строк и ничего не изменится.
0
 Аватар для andyarus
175 / 77 / 2
Регистрация: 19.04.2011
Сообщений: 322
16.05.2011, 21:17
изменилось же, по словам ТС)
0
 Аватар для BoDRbIi
60 / 10 / 0
Регистрация: 21.07.2009
Сообщений: 248
16.05.2011, 21:29  [ТС]
Я удалил все пустые строки)
ну и после ?> тоже была пустая стока, наверно в ней и было дело)
0
 Аватар для olshevskiy87
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
16.05.2011, 21:40
Цитата Сообщение от BoDRbIi Посмотреть сообщение
Я удалил все пустые строки)
ну и после ?> тоже была пустая стока, наверно в ней и было дело)
Ладно) Главное, что заработало
0
20 / 20 / 10
Регистрация: 16.05.2011
Сообщений: 161
17.05.2011, 09:11
Сталкивался с подобной проблемой. Если нет возможности отправлять заголовки ДО содержимого, то можно использовать ob.

ob_start();
и
ob_end_flush();

Первую ставь в самом начале страницы, вторую - в самом конце.
0
 Аватар для olshevskiy87
15 / 15 / 4
Регистрация: 13.05.2011
Сообщений: 75
17.05.2011, 13:44
QuakeArena, честно говоря, сколько на пхп писал - ни разу такой проблемы не возникало. Только один раз (кстати, совсем недавно) случилась такая беда, но проблема решилась перестановкой и организацией управляющих конструкций. Просто надо немножко подумать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.05.2011, 13:44
Помогаю со студенческими работами здесь

Не работает редирект
Всем привет! Хочу склеить сайты с WWW и без - но ничего не выходит, обыскал пол интернета, все советуют одно и тоже, но у меня так не...

Не работает редирект
Подскажите пожалуйста, не работает редирект если содержимое файла = Мой код почему то не работает. &lt;?php $file_path =...

Не работает редирект
Не срабатывает редирект. Помогите. .htacces: RewriteEngine on RewriteBase / RewriteCond %(RREQUEST_FILENAME) -s ...

Не работает редирект
Всем привет! Хочу склеить сайты с WWW и без - но ничего не выходит, обыскал пол интернета, все советуют одно и тоже, но у меня так не...

Не работает редирект
Прописал в htaccess: RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} набираю страницу...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru