У меня есть на моем веб-сайте форма для заполнения (включая ввод импорта файла и несколько других стандартных текстовых входов).
Я использую $ _POST() для извлечения входных данных, а затем вызывает функции php для сохранения данных в базе данных mysql.Завершение работы php-функций перед заголовком()
После того, как форма заполнена и кнопка нажата представить (<form action="" method="post" enctype="multipart/form-data">
), я хочу, чтобы все функции PHP для запуска, а затем и только потом перенаправление на другую страницу (с помощью header()
).
Проблема заключается в том, что мы должны поставить header()
перед вызовом нашей php-функции, иначе php возвращает ошибку. Поэтому header()
помещается перед функциями php.
Это то, что он выглядит следующим образом:
if(isset($_POST)){
header("Location: other_page.php");
save_name($_post['name']);
//... more php functions to save data(including input file)
}
Это не проблема, большую часть времени, но иногда кажется, что страница перенаправляется прежде чем все функции PHP были работать правильно Wich, очевидно, это большая проблема ...
Я думаю, что это вызвано, когда функции слишком долго выполняются (т. е. когда входной файл слишком большой?), и перенаправление вступает в силу до того, как функции успеют закончить.
Если бы я мог получить помощь, чтобы обойти эту проблему, было бы здорово! =)
Ах, отлично! Я не знал об этой возможности. Итак, если я поставил header() после функций, означает ли это, что все функции будут выполняться до перенаправления? – Jackymamouth
Да, в соответствии с документами: * Функции управления выводом позволяют вам контролировать, когда вывод отправляется из сценария. Это может быть полезно в нескольких разных ситуациях * ***, особенно если вам нужно отправить заголовки в браузер после того, как ваш скрипт начал выводить данные. *** –
Используя простой пример выше; как бы вы это реализовали? (Извините, я новичок в этом: S) – Jackymamouth