|
|
|
|
|
для: cheops
(25.10.2006 в 15:21)
| | Кто б спорил :) | |
|
|
|
|
|
|
|
для: Trianon
(25.10.2006 в 13:30)
| | Да вы правы, но лучше программировать без учёта этого факта. Если я вынужден использовать header() я стараюсь разместить в наиболее безопасном, по моему мнению месте, т.е. после всего кода, отсюда мой совет. Лучше, чтобы header() размещался после всего кода, так как его реализация может быть изменена, да и соблазн написать ещё что-то будет существенно меньше, так как в середине кода забыть про воткнутый header() проще, чем в конце.
Использование функции header() и тем более учёт в программе алгоритма их обработки - это нарушение инкапсуляции - PHP берёт на себя низкоуровневую работу с протоколом, а при помощи header() можно влиять на эту работу - в результате получается не очевидная среда, зависищая от прядка вызова функций. Что во всех методических работах называют одним из серьёзных промахов проектирования. Абстрактные уровни для того и разводят, чтобы они не влияли друг на друга и они могли бы быть заменены без ущерба друг для друга. Например, я вообще стараюсь не вызывать фукнции header(), так как это влечёт за собой целый ряд последствий: буферизация не на всех серверах включена, поэтому файл, использующий header() не может быть просто включён в другой файл, нужно помнить, что впереди него не должно быть вывода. | |
|
|
|
|
|
|
|
для: cheops
(25.10.2006 в 12:20)
| | >Нет, но PHP является интерпретатором, который выполняет строки последовательно,
>встретив заголовок он его отправит,
Разве?
А по-моему, лишь запомнит для отправки. А отправлен он будет не раньше, чем придет требование отправить первый байт тела отклика.
Иначе я не представляю себе, как смогли бы работать headers_sent(), да и второй параметр (replace) самой функции header() | |
|
|
|
|
|
|
|
для: Trianon
(25.10.2006 в 09:51)
| | Нет, но PHP является интерпретатором, который выполняет строки последовательно, встретив заголовок он его отправит, а дальше зависит от растороности клиента, переключиться он на другую страницу разорвав это соединение или нет и будет сервер продолжать работу скрипта, работа которого прервана или нет. В любом случае таких скользких моментов лучше избегать, чтобы можно было однозначно локализовать проблему. | |
|
|
|
|
|
|
|
для: cheops
(23.10.2006 в 14:16)
| | Вот этот момент мне непонятен. Разве функция header прерывает выполнение php-скрипта? | |
|
|
|
|
|
|
|
для: cheops
(25.10.2006 в 02:57)
| | может есть похожий рабочий скрипт? | |
|
|
|
|
|
|
|
для: qwelp
(25.10.2006 в 02:29)
| | Закрывающую скобку однозначно поставить следует, slonik, всё правильно говорит. | |
|
|
|
|
|
|
|
для: cheops
(25.10.2006 в 00:25)
| | Может надо вставить закрывающую скобку ? или в запросе что то | |
|
|
|
|
|
|
|
для: qwelp
(24.10.2006 в 22:37)
| | У вас скорее всего отключен вывод ошибок в окно браузера - посмотрите их в логе в системе администрирования. | |
|
|
|
|
|
|
|
для: qwelp
(24.10.2006 в 22:37)
| | Возможно я ослеп и не вижу, а может как всегда туплю, но я не вижу, чтобы if закрывался..также не вижу ещё две штуки, но про них промолчу, т.к. сомневаюсь и не хочу нести бред. | |
|
|
|
|