Forum Webscript.Ru

Программирование => PHP => Тема начата: dub от 15 Сентября 2003, 02:50:58

Название: exit() - проблема метафизического характера
Отправлено: dub от 15 Сентября 2003, 02:50:58
Чем вообще может объясняться игнорирование exit()?? Совершенно дикая получается ситуация.
Скрипт загружает файл на сервер. Получает всю необходимую инфу. Если с файлом что-то не так - останавливает скрипт. Упрощенно так:

if ($error) {
  exit(\'error\');
}
...
insert($file); // создает папку и копирует туда временный файл

Так вот. Среди ошибок отслеживается стандартная ошибка "Не был загружен файл". И самое интересное, что в некоторых случаях, по совершенно не понятной мне причине, хотя сообщение \'error\' и выводятся, папочки все равно создаются. Даже ума не приложу, с какого конца начинать об этом думать. Метафизика какая-то.
Название: exit() - проблема метафизического характера
Отправлено: ThE0ReTiC от 15 Сентября 2003, 10:50:14
э...
всю конструкцию покажи
Название: exit() - проблема метафизического характера
Отправлено: dub от 16 Сентября 2003, 06:55:52
ThE0ReTiC
Я - болван.
Конструкция - упрощенно - такая:
if (isset($_GET[\'dosubmit\'])) {
    $error = $_FILES[\'filename\'][\'error\'];
     if (isset($error) && $error != 0) {
         exit(\'error\');
     }
     insert(...);
}
else {
    // форма с action=?dosubmit=1
}

Парился, искал ошибку в верхней, принимающей части, упрощал ее - никак не локализуется ошибка. И вот уже когда ответ тебе писал, чтоб нагляднее было и меньше строк постить, решил форму в упрощенном виде ручками написать. И она ни с того, ни с сего заработала. И уже потом, в функции, выводящей форму, нашел такую строку:

Уж точно не знаю, почему именно таким образом интерпретировалась эта самая "двойная" отправка формы, но результат оказывался именно таким, как я описывал - ошибка выводилась, действия после ошибки - выполнялись.

Спасибо за помощь.