|
|
|
| Почему-то порядок просмотра операторов меняется на обратный.
Проблема: данный оператор перехода в одиночку работает нормально:
if (empty($sect))
header ("Location: " . MESSAGE_PAGE . "?mn=100");
По пустой $sect уходит по указанной странице.
Добавляю еще одну проверку:
if (empty($sect))
header ("Location: " . MESSAGE_PAGE . "?mn=100");
if (strlen($repName) <= 1)
header ("Location: " . MESSAGE_PAGE . "?mn=101");
$sect остается пустой, но происходит уход по второй проверке (с mn=101). Если еще наставлять проверок остальных переменных, то уход будет по последней проверке. Как такое может быть? | |
|
|
|
|
|
|
|
для: header
(20.06.2007 в 09:51)
| | Функция header() не выполняет переход.
И не останавливает исполнение php-кода.
Она даже не отправляет заголовки!
Она лишь добавляет(или при повторном вызове - заменяет ) поле заголовка отклика в списке полей, готовых к отправке.
Сама отправка выполняется при первом исполнении инструкций вывода, либо при завершении исполнения скрипта (если вывода не было вообще). | |
|
|
|
|
|
|
|
для: Trianon
(20.06.2007 в 10:03)
| | Спасибо за разъяснение по header. И тогда логический вопрос - а как безусловно уйти на желаемую страницу в данной программной точке? | |
|
|
|
|
|
|
|
для: header
(20.06.2007 в 10:10)
| | а если попробывать после каждого header делать вывод? в том же блоке вывода...
Незнаю, сработает ли, но попробывать можно...
Еще можно сделать все проверки, но в случае совпадения условий писать не header(...) а просто путь сохранять в переменной, а при проверке указывать и требование пустоты этой переменной. И уже после всех проверок смотреть, есть ли что-то в этой переменной, и если да - делать переход... | |
|
|
|
|
|
|
|
для: victoor
(20.06.2007 в 10:17)
| | Первое - не помогло.
Второе - похоже, так и надо делать. Спасибо! | |
|
|
|
|
|
|
|
для: header
(20.06.2007 в 10:10)
| | чтобы уйти на желаемую страницу (браузером - страницы есть только у него. И ходить может только он. Никто другой по страницам не ходит. На сервере - документы, и по ним не ходят - их отдают по запросам) , нужно заставить браузер исполнить повторное обращение к серверу за другой страницей.
А генерацию текущей страницы - прекратить, даже не начиная. Нет смысла - всё равно браузер уйдет на другую.
{
header("Location: http://....");
die();
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(20.06.2007 в 10:19)
| | Понятно. С die() после header() тоже сработало. Спасибо всем! | |
|
|
|