Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить URL несущесвующей страницы при обработке кода 404
 
 автор: f5_kitten   (05.10.2005 в 12:52)   письмо автору
 
 

Проблема заключается в следующем: при клике на ссылке, указывающей на несуществующий файл, запускается на выполнение определенный файл (обработка ошибки 404). Каким образом можно считать в этом файле значение URL, на которое щелкаем? Мне необходимо далее сгенерить страничку в зависимости от инфы, содержащейся в URL....

   
 
 автор: cernos   (05.10.2005 в 13:41)   письмо автору
 
   для: f5_kitten   (05.10.2005 в 12:52)
 

Если нужен url странички на которой находится эта ссылка то можно воспользоваться рефером:

$url=@urldecode($_SERVER["HTTP_REFERER"]);

Если необходимо текущая ссылка то можна воспользоваться такой вота шнягой:

$url="http://".$_SERVER['name'].$_SERVER['PHP_SELF'];

//Вемсто этого куска кода, можно подставить глобальную переменную, но проблема в том что не помню как она называется :(
if(isset($_GET))
 { $c=0;
   $page_with_get=$page;
   foreach($_GET as $index => $val)
   {  if($c==0){$znak='?';}
      else {$znak='&';}
      $url .=$znak.$index."=".$val;
      $c++;
   }
 }

   
 
 автор: cheops   (05.10.2005 в 13:44)   письмо автору
 
   для: f5_kitten   (05.10.2005 в 12:52)
 

Это можно сделать при помощи суперглобального массива $_SERVER
<?php
 $page 
"http://".$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI'];
 echo 
$page;
?>

   
 
 автор: f5_kitten   (06.10.2005 в 08:13)   письмо автору
 
   для: f5_kitten   (05.10.2005 в 12:52)
 

нет, это все не то...
Я щелкаю по ссылке, если этой страницы нет на сервере, то вызывается обработчик ошибки 404. Например /FileNotFound.php.
Необходимо вычленить URL, страницы которого нет на сервере, а все это указывает на файл /FileNotFound.php......

   
 
 автор: cernos   (06.10.2005 в 11:53)   письмо автору
 
   для: f5_kitten   (06.10.2005 в 08:13)
 

Вот ссылка предыдущей страницы:
Т.е. вы были на mail.ru/index?get=ter - этой страницы не оказалось, вас перебросили на mail.ru/error.php


//Вот это надо вставить в error.php чтобы узнать значение адресной строки предыдущей страницы
$url=@urldecode($_SERVER["HTTP_REFERER"]); 

   
 
 автор: f5_kitten   (07.10.2005 в 04:36)   письмо автору
 
   для: cernos   (06.10.2005 в 11:53)
 

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

Еще мне не понятно... Когда я указываю в .htaccess <<ErrorDocument 404 [страница]>> страницу без http://www.... он ее не видит. Дело в том, что если прописан не полный путь, то переменная $HTTP_SERVER_VARS['REQUEST_URI'] указывает на страницу, которая вызвала ошибку, а если полный - то файл, который будет обрабатывать эту ошибку...

Кто нибудь сталкивался с подобным??? Если да, то объясните где я на права, очень прошу...

   
 
 автор: f5_kitten   (07.10.2005 в 05:38)   письмо автору
 
   для: cernos   (06.10.2005 в 11:53)
 


$url=@urldecode($_SERVER["HTTP_REFERER"]); 

Возвращает страницу - обработчик, т.е. error.php...
Я не знаю, может в настройках порыться...

   
 
 автор: Shorr Kan   (07.10.2005 в 11:51)   письмо автору
 
   для: f5_kitten   (07.10.2005 в 05:38)
 

То что вам нужно - решается ответом cheops'a .

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования