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

Форум PHP

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

 

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

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

тема: window.location.href='....' на PHP ?
 
 автор: Назаров   (14.10.2004 в 17:54)   письмо автору
 
 

Подскажите, какой функцией сделать редерект на PHP? И еще, хочу сделать в начале сценария проверку: при отрицательном исходе условия отправить поситителя на другую страницу и прекратить
выполнение этого сценария (наверное EXIT).
(где-то видел что-то похожее на get_url("gggg.php","_SELF","GET"), не оно случайно?)

   
 
 автор: cheops   (14.10.2004 в 18:33)   письмо автору
 
   для: Назаров   (14.10.2004 в 17:54)
 

Хм... так как PHP исполняется на сервере, а редирект осуществляется браузером посетителя, следует использовать как-нибудь клиентский язык, например, JavaScript. Хм... у вас же ответ в названии темы - или такой вариант не подходит.
<Script Language="JavaScript"> 
<!--//
window.location.href='http://www.softtime.ru'
//-->
</Script>

   
 
 автор: Назаров   (14.10.2004 в 21:15)   письмо автору
 
   для: cheops   (14.10.2004 в 18:33)
 

это значит придется сгенирировать JS-код, послать его браузеру, чтобы уже тот откоыл другую страницу. Неужели PHP не может вместо исполняемой страницы выдать другую?

   
 
 автор: Hidden Demon   (14.10.2004 в 21:27)   письмо автору
 
   для: Назаров   (14.10.2004 в 21:15)
 

Можно попробовать так...
Сам не пробовал, но должно работать...

<?php
 
if ($error)
 {
  require 
'страница_выводимая_при_ошибке.php';
 } else
 {
 
тело текущей страницы
 
}
?>

   
 
 автор: cheops   (14.10.2004 в 21:28)   письмо автору
 
   для: Назаров   (14.10.2004 в 21:15)
 

Ну, от чего же не может... только это часто требует дополнительных усилий:
<?php
  $flag 
true;
  if(
$flag)
  {
     include 
"first.php"// Если условие истино отображаем страницу first.php
  
}
  else
  {
    include 
"second.php"// Если условие ложно - отображаем страницу second.php
  
}
?>

   
 
 автор: Назаров   (14.10.2004 в 21:47)   письмо автору
 
   для: cheops   (14.10.2004 в 21:28)
 

а если будет
fierst.php?id=2
?

   
 
 автор: cheops   (14.10.2004 в 22:00)   письмо автору
 
   для: Назаров   (14.10.2004 в 21:47)
 

Это тоже можно обойти:
<?php 
  $flag 
true
  if(
$flag
  { 
     
$_GET['id'] = 2// или $id = 2;
     
include "first.php"// Если условие истино отображаем страницу first.php 
  

  else 
  { 
     
$_GET['id'] = 2// или $id = 2;
    
include "second.php"// Если условие ложно - отображаем страницу second.php 
  

?>

   
 
 автор: Назаров   (14.10.2004 в 21:52)   письмо автору
 
   для: cheops   (14.10.2004 в 21:28)
 

в ситуации, когда вместо ELSE будет тело страницы, и чтобы оно не работало, будет работать так:

if($flag)
{
include "first.php";
exit;
}

   
 
 автор: cheops   (14.10.2004 в 22:03)   письмо автору
 
   для: Назаров   (14.10.2004 в 21:52)
 

Да, конечно.

   
 
 автор: korwin   (23.02.2005 в 05:40)   письмо автору
 
   для: cheops   (14.10.2004 в 18:33)
 

Хм... скорее всего я чего то не понимаю, но чем плох header(Location: blablabla),
естественно при отсутствии вывода выше в коде и ошибок сценария

   
 
 автор: glsv (Дизайнер)   (23.02.2005 в 09:59)   письмо автору
 
   для: korwin   (23.02.2005 в 05:40)
 

"Плох" именно приведенными вами условиями. А так – очень даже хорош :)
Само слово "редирект" не очень то вяжется с PHP. PHP выводит заголовок, который интерпретируется браузером и уже только затем происходит редирект. Т.е. он в данном случае ближе к клиенту, чем серверу.

   
 
 автор: glsv (Дизайнер)   (14.10.2004 в 21:58)   письмо автору
 
   для: Назаров   (14.10.2004 в 17:54)
 

Ну на PHP, как и показали Hidden Demon и cheops не то чтобы редирект можно сделать... но можно другие страницы подгружать в существующую.

А редирект в "чистом" виде можно сделать только ява-скриптом, передачей заголовка. Можно еще средствами web-сервера.

Вот, например, передача заголовка, приводящая в редиректу

echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=newpage.php'>
            </HEAD></HTML>";

   
 
 автор: synnyday   (22.02.2005 в 22:59)
 
   для: glsv (Дизайнер)   (14.10.2004 в 21:58)
 

а можно и так

<?php
$flag = true;
if($flag)

{
Header("Location: first.php");
}
else
{
Header("Location: second.php'");
}

?>

   
 
 автор: glsv (Дизайнер)   (23.02.2005 в 00:41)   письмо автору
 
   для: synnyday   (22.02.2005 в 22:59)
 

Можно. Этот же заголовок можно послать так:.

<META HTTP-EQUIV="Location" CONTENT="url=http.www.newsite.ru">

Механизм в обоих случаях один и тот же.

   
Rambler's Top100
вверх

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