Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Глава 44 "Использование перенаправлений" (il!)
Author Message
il!
Участник форума



Joined: 20 Aug 2005
Posts: 39
Карма: 3
   поощрить/наказать

Location: Москва

PostPosted: Mon Oct 03, 2005 3:12 am (написано за 16 минут 57 секунд)
   Post subject: Глава 44 "Использование перенаправлений"
Reply with quote

Стр 1008.
Листинг 44.1 Файл internal.php
Code (php): скопировать код в буфер обмена
<?php ## Внутренний редирект (только в CGI-версии PHP!)
// Вначале форсируем внутренний редирект.
Header (www.php.net/header)("Status: 200 OK");
// Получаем URI-директорию текущего скрипта.
$dir = dirname (www.php.net/dirname)($_SERVER['SCRIPT_NAME']);
// Осуществляем переадресацию по абсолютному (!) URI. 
Header (www.php.net/header)("Location: $dir/result.php");
exit (www.php.net/exit)();
?>
Здесь, видимо опечатка и надо без слеша:
Code (php): скопировать код в буфер обмена
Header (www.php.net/header)("Location: {$dir}result.php");
потому что со слэшем получается (Windows Денвер) test.ry/%5C/result.php, те test.ry/\/result.php
Хотя всеравно не углубляясь кто не делает трансляцию слешей (Apache или PHP) в Windows (Денвер) получается test.ry/%5Cresult.php, те test.ry/\result.php
Однако неувязочку с функцией Header() вышла, надо мне запомнить!

Также не понял, что значат "относительный" и "абсолютный" URI. Относительный это, видимо, указание в Location только result.php без $dir. Но всеравно не добился от Apache, чтоб он показал мне страницу со ссылкой "Document is moved here".
Back to top
View user's profile Send private message Send e-mail
il!
Участник форума



Joined: 20 Aug 2005
Posts: 39
Карма: 3
   поощрить/наказать

Location: Москва

PostPosted: Mon Oct 03, 2005 9:17 am (спустя 6 часов 4 минуты; написано за 1 минуту 41 секунду)
   Post subject:
Reply with quote

Интересно, что если писать URL, а не URI
Code (php): скопировать код в буфер обмена
Header (www.php.net/header)("Location: http://{$_SERVER['HTTP_HOST']}{$dir}result.php");
, то файл вообще не находится, потому что строка в заголовке получается
Quote:
Location: test.ry\result.php
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Sat Oct 08, 2005 1:28 pm (спустя 5 дней 4 часа 11 минут; написано за 58 секунд)
   Post subject:
Reply with quote

Беда в том, что dirname() в Windows иногда возвращает \ вместо /
Это происходит, например, при dirname("/"). Лечится так:

str_replace('\\', '/', dirname(...));
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML