Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Остановка скрипта


Автор: chiffa 14.9.2008, 22:14
Всем добрый день. есть такой скрипт

Код

<html>
<head>
<title>proba</title>
</head>
<body>
<div class='aaa'>
<?
if ($_POST ['aaa']=='aaa')
{
exit;
}

include ('go.php');
?>
</div>
</body>
</html>

при $_POST ['aaa'] равно ааа, скрипт благополучно останавливается, но при этом идет послая остановка тоесть 
</div>
</body>
</html>

не выводится, как результат летять стили CSS и все сьезжает, и необходимый файл не инклудится.... есть у кого то какие то идеи как можно решить проблемку? Зарание всем спасасибо smile

Автор: skyboy 14.9.2008, 22:40
Цитата(chiffa @  14.9.2008,  21:14 Найти цитируемый пост)
скрипт благополучно останавливается

а вот зачем так делать? выходить-выходишь, а потом спрашиваешь, как решать проблему. не выходи. чотб не выполнять какие-то действия при заданном условии достаточно одной конструкции if в нужном месте. зачем тебе эксртенный выход?

Автор: chiffa 14.9.2008, 22:43
к примеру дет проверка логина, пароля, сессионной переменой для авторизации список продолжать? Там где возможно я перевел на конструкцию if ... else но есть нескольок мест где это сделать весьма затруднитительно, вот и обратилсян а форум, может кто что подскажет

Автор: skyboy 15.9.2008, 01:01
Цитата(chiffa @  14.9.2008,  21:43 Найти цитируемый пост)
к примеру дет проверка логина, пароля, сессионной переменой для авторизации список продолжать?

список чего?
если логин не найден, надо человеку так и сказать. а не валить скрипт.
вообще говоря, хорошим правилом есть отделение логики модели(все эти проверки логина, запорс данных из БД и т.д.) и логики вывода(если логин существует - выводить одну информацию;если нет - другую). в этом случае будет проще вносить коррекции.
Цитата(chiffa @  14.9.2008,  21:43 Найти цитируемый пост)
есть нескольок мест где это сделать весьма затруднитительно

в чем может быть затруднение при использовании if?

Автор: Sanchezzz 15.9.2008, 06:57
Пользуйся исключениями. так будет правильней exit нужен когда уже нужно полностью тахтануть скрипт. На то он и для выхода.

Автор: nerezus 15.9.2008, 07:19
Шаблонизатор.

Автор: teroni 15.9.2008, 08:50
Можно попробовать с помощью  http://ua2.php.net/register_shutdown_function при выходе из скрипта выводить footer.

Автор: nerezus 15.9.2008, 08:55
teroni,  Sanchezzz,  А если бы человек спросил, как лучше убить свою маму из-за мелкой соры, то вы тоже стали бы давать ему советы как это покруче сделать, а не посоветовали, что ему лучше бы помириться?

Автор: teroni 15.9.2008, 09:01
nerezus, ну судя по вопросу автор не ищет простых и правильных путей  smile

Автор: nerezus 15.9.2008, 13:56
teroni, но вместо того, чтобы указать на его ошибку, ты подсовываешь ему способ, который еще сильнее усугубит дело? )

Автор: chiffa 15.9.2008, 15:03
Наверное я неправильно изложил суть, раз никот непонял что именно нужно. ладно всем спасибо за участие smile

Автор: bars80080 15.9.2008, 16:47
да понятно, что проблема высосана из пальца

если тебе нужно ветвление алгоритма по принципу: если а=1 то { действия один } иначе { конец }
то и используем существующую для этого конструкцию if() {} elseif() {} else {}
единственная альтернатива: switch() case: break; тоже самое, но только жёстче

и все так делают
резкий обрыв типа exit имеет смысл только в варианте, когда происходит заход на страницу и у нас не авторизованный пользователь или неудачное подключение к БД. тогда exit. и так потому, что всё это должно происходить до вывода страницы в браузер. т.к. любой код должен выполняться до вывода. зачем ты выдаёшь страницу, если пользователь не авторизован?
и только потом include('header.php'); где записаны тэги <html><body> и т.п. ...

Автор: lukas 16.9.2008, 08:56
для выходя из скрипта и функции используй return... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)