|
|
|
| Подскажите, какой функцией сделать редерект на PHP? И еще, хочу сделать в начале сценария проверку: при отрицательном исходе условия отправить поситителя на другую страницу и прекратить
выполнение этого сценария (наверное EXIT).
(где-то видел что-то похожее на get_url("gggg.php","_SELF","GET"), не оно случайно?) | |
|
|
|
|
|
|
|
для: Назаров
(14.10.2004 в 17:54)
| | Хм... так как PHP исполняется на сервере, а редирект осуществляется браузером посетителя, следует использовать как-нибудь клиентский язык, например, JavaScript. Хм... у вас же ответ в названии темы - или такой вариант не подходит.
<Script Language="JavaScript">
<!--//
window.location.href='http://www.softtime.ru'
//-->
</Script>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 18:33)
| | это значит придется сгенирировать JS-код, послать его браузеру, чтобы уже тот откоыл другую страницу. Неужели PHP не может вместо исполняемой страницы выдать другую? | |
|
|
|
|
|
|
|
для: Назаров
(14.10.2004 в 21:15)
| | Можно попробовать так...
Сам не пробовал, но должно работать...
<?php
if ($error)
{
require 'страница_выводимая_при_ошибке.php';
} else
{
тело текущей страницы
}
?>
|
| |
|
|
|
|
|
|
|
для: Назаров
(14.10.2004 в 21:15)
| | Ну, от чего же не может... только это часто требует дополнительных усилий:
<?php
$flag = true;
if($flag)
{
include "first.php"; // Если условие истино отображаем страницу first.php
}
else
{
include "second.php"; // Если условие ложно - отображаем страницу second.php
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 21:28)
| | а если будет ? | |
|
|
|
|
|
|
|
для: Назаров
(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
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 21:28)
| | в ситуации, когда вместо ELSE будет тело страницы, и чтобы оно не работало, будет работать так:
if($flag)
{
include "first.php";
exit;
}
|
| |
|
|
|
|
|
|
|
для: Назаров
(14.10.2004 в 21:52)
| | Да, конечно. | |
|
|
|
|
|
|
|
для: cheops
(14.10.2004 в 18:33)
| | Хм... скорее всего я чего то не понимаю, но чем плох header(Location: blablabla),
естественно при отсутствии вывода выше в коде и ошибок сценария | |
|
|
|
|
|
|
|
для: korwin
(23.02.2005 в 05:40)
| | "Плох" именно приведенными вами условиями. А так – очень даже хорош :)
Само слово "редирект" не очень то вяжется с PHP. PHP выводит заголовок, который интерпретируется браузером и уже только затем происходит редирект. Т.е. он в данном случае ближе к клиенту, чем серверу. | |
|
|
|
|
|
|
|
для: Назаров
(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'");
}
?> | |
|
|
|
|
|
|
|
для: synnyday
(22.02.2005 в 22:59)
| | Можно. Этот же заголовок можно послать так:.
<META HTTP-EQUIV="Location" CONTENT="url=http.www.newsite.ru">
|
Механизм в обоих случаях один и тот же. | |
|
|
|