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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Внутренний редирект с помощью PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Почему в строке браузера становится to.php? у меня CGI-php
maximushka
Отправлено: 27 Марта, 2011 - 21:38:44
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




в одной директории находятся два скрипта, с первого на второй произвожу внутренний редирект:
from.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. Header("Status: 200 OK");
  3. $dir=dirname($_SERVER['SCRIPT_NAME']);
  4. Header("Location: $dir/to.php");
  5. echo "Вы на from.php";
  6. exit();
  7. ?>

и to.php:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo "Вы на to.php";
  3. ?>

Делаю по учебнику внутренний редирект, там сказано что адрес URI должен быть абсолютным, и он работает на CGI-версии php только. У меня денвер, сказали что там PHP установлен как CGI версия.
Еще сказано в учебнике что после его запуска from.php в браузерной строке так и останется, но у меня он меняется на to.php. Почему он меняется? Может у меня PHP установлен как модуль апаче, а тот кто сказал что как CGI был не прав. А так перенаправление происходит. Браузер - firefox на котором проверял.
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2011 - 22:17:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




maximushka пишет:
Еще сказано в учебнике что после его запуска from.php в браузерной строке так и останется, но у меня он меняется на to.php.

И должен меняться, ведь вы просите браузер делать редирект.


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 00:39:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maximushka пишет:
У меня денвер, сказали что там PHP установлен как CGI версия.
Еще сказано в учебнике что после его запуска from.php в браузерной строке так и останется, но у меня он меняется на to.php. Почему он меняется?

DKLAB пишет:
При работе с Apache, насколько я знаю, существует лишь один способ выполнить внутренний редирект: указать в заголовке Location не абсолютный URL, а URI (то есть, URL без имени хоста и порта). Отсюда автоматически следует, что внутренний редирект, в отличие от внешнего, может происходить только в пределах одного сайта:
Когда сервер получает от скрипта страницу и собирается отправить ее браузеру, он прежде всего проверяет: нет ли в ней заголовка Location с указанием URI документа. Если есть, то сервер порождает новый процесс — копию самого себя — и велит ей выполнить новый запрос, а о старом «забывает». Повторюсь: все это происходит без участия браузера, который видит лишь конечную страницу с тем же самым URL, который был у самого первого скрипта.
CODE (text):
скопировать код в буфер обмена
  1. <? Header("Location: /some/other/script.html");
  2. exit();?>


maximushka пишет:
Браузер - firefox на котором проверял
Использование указанного приложения предполагает возможность осуществления несопоставленного кеширования целевых ассоциированных URL-объектов, вследствие чего проведение определения результатов фунционирования модифицировнного web-приложения в данном браузере является невозможным; для осуществления диагностики предполагаемого вопроса, допустимо использование средств взаимодействия с целевым web-сервером, которые не могут обеспечивать некорректных операций по проведению кеширования, таких как средство telnet или браузер Internet explorer


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
maximushka
Отправлено: 28 Марта, 2011 - 15:57:58
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Мелкий пишет:

И должен меняться, ведь вы просите браузер делать редирект.

А как сделать на пхп редирект скрытно от браузера?
В учебнике написано что этот способ делает так что браузер даже не догадается, а на деле получается иначе.
JustUserR
Вот, вот по этому учебнику и читал, видите, там и написано
JustUserR пишет:
все это происходит без участия браузера, который видит лишь конечную страницу с тем же самым URL

А на деле получается обратное - не тот же самый URL ...from.php, а другой: to.php куда и перенаправили, почему он меняется, как сделать так чтобы не менялся? в этом и заключался вопрос.

ps. Как тут написать администрации чтобы исправили баг с этим форумом, дело в том что на php.su я иногда когда захожу в какой-то раздел форума сбрасывается моё имя, как будто у меня не сохранены куки, и приветствует меня как гостя, когда же я через быстрый вход авторизуюсь то меня перенаправляют на главную страницу.. и начинай сначала... И это на разных браузерах.
 
 Top
Мелкий Супермодератор
Отправлено: 28 Марта, 2011 - 16:19:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




maximushka пишет:
А как сделать на пхп редирект скрытно от браузера?

Выдать другую страницу. Тем же самым скриптом. Только зачем?

maximushka пишет:
ps. Как тут написать администрации чтобы исправили баг с этим форумом, дело в том что на php.su я иногда когда захожу в какой-то раздел форума сбрасывается моё имя, как будто у меня не сохранены куки, и приветствует меня как гостя, когда же я через быстрый вход авторизуюсь то меня перенаправляют на главную страницу.. и начинай сначала... И это на разных браузерах.

http://forum.php.su/topic.php?fo...=25&topic=78
Может кэш браузера?


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 28 Марта, 2011 - 16:25:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




внутрений редирект делает веб сервер, php так вроде не умеет...


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
maximushka
Отправлено: 28 Марта, 2011 - 16:40:52
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Мелкий пишет:
Только зачем

Ну хочется чтобы действовала эта функциональность, что в книге написана.
Есть и более веская причина есть - убедиться что у меня Php установлена как CGI версия, согласно книге это определяет будет ли работать способ выше или нет. Практика показала что нет, хотя ранее мне говорили что пхп в деневре установлен как CGI версия.

конечно можно и через .htaccess , но хочется и через пхп.
 
 Top
JustUserR
Отправлено: 29 Марта, 2011 - 21:36:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maximushka пишет:
Вот, вот по этому учебнику и читал, видите, там и написано
В качестве основного аспекта для осуществления решения предполагаемой задачи, заключающейся в организации целевого внутреннего активного перенаправления относительно используемого текущего исполняемого функицонального объекта на web-сервере по оригинальном запрошенному значению URL-ресурса, необходимо обеспечение рассмотрения параметров производимого инициализируемого трансфера информационных полей в пониженном базовом уровне трактования относительнол CGI-интерфейса, с включением значения ВИРТУАЛЬНОГО целевого URL-пути для ассоциированного элемента на локальном web-сервере в форме
Location: /path/to/object.ext


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
maximushka
Отправлено: 30 Марта, 2011 - 12:46:14
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




JustUserR пишет:
В качестве основного аспекта для осуществления решения предполагаемой задачи, заключающейся в организации целевого внутреннего активного перенаправления относительно используемого текущего исполняемого функицонального объекта на web-сервере по оригинальном запрошенному значению URL-ресурса, необходимо обеспечение рассмотрения параметров производимого инициализируемого трансфера информационных полей в пониженном базовом уровне трактования относительнол CGI-интерфейса, с включением значения ВИРТУАЛЬНОГО целевого URL-пути для ассоциированного элемента на локальном web-сервере в форме
Location: /path/to/object.ext

Ну вы и выражаетесь Радость , наверное практикуете гипноз... там тоже есть такая методика запутывания мозгов, путём налития воды и добавления неизвестных словечек. Или почему, интересно?
Всё равно, спасибо, меня убедили делать через .htaccess и не парить себе этой темой мозги.
 
 Top
maximushka
Отправлено: 30 Марта, 2011 - 17:14:38
Post Id


Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Оказывается тот человек ошибся - php установлен как модуль апатча у меня на денвере, это я копнул книгу в главе установки пхп как cgi и как модуль апачтча, и там была написана разница в установке:
в файле httpd.conf в /usr/local/apache/conf/ в случае модульной версии пхп есть незакомментированная строка начинающаяся на
LoadModule php5_module "/usr/local/php5/php5apache2_2.dll"
её я кстати в нём и увидел,
а в случае версии cgi:
Action application/x-httpd-php5 "/_php5/php-cgi.exe"
её я и не увидел.
инструкций же Include в httpd.conf я не увидел, значит другие файлы не подключаются, и если что-то есть или чего то нет видно лишь в httpd.conf.
Отсюда вывод что у меня установлен пхп как модуль апача.
 
 Top
JustUserR
Отправлено: 31 Марта, 2011 - 20:49:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




maximushka пишет:
Всё равно, спасибо, меня убедили делать через .htaccess и не парить себе этой темой мозги.
Пожалуйста! В действительности для осуществления решения предполагаемой задачи, допустимо использование определяемых программных действенных составляющих элементов PHP-приложения, обеспечение внедрения типа которых зависит от используемого метода ассоциирования текущей инстанции PHP-интерпретатора и web-сервера Apache
Подключение PHP-интерпретатора в виде модуля расшинения web-сервера Apache
PHP:
скопировать код в буфер обмена
  1.  
  2. Virtual("/local/object.ext")/ / Осуществление определения локального файлового размещения целевого исполняемого объекта
  3.  
Подключение PHP-интерпретатора на основании конфигурации CGI-интерфейса
PHP:
скопировать код в буфер обмена
  1.  
  2. Header("/local/object.ext") // Осуществление определения локального виртуального URL-адреса, без указания доменного имени web-сайта и используемого протокола
  3.  


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB