Я пишу веб-страницу, которая ищет в таблице и отображает данные, если все хорошо, и сообщение, если нет. Код выглядит примерно так:php: как продолжить выполнение после выхода из сценария php
<?php session_start(); ?>
<html><head> ..... </head>
<body>
<form action="search.php" method="post"> {parameters for searching} </form
<?php include_once('display_results.php');?>
<?php if (isset($_SESSION['message'])) {
echo "<script type=\"text/javascript\">alert(\"".$_SESSION['message']."\")</script>";
unset($_SESSION['message']);
} ?>
</body>
</html>
display_results.php выглядит следующим образом:
<?php
//query table get results build output and if there was an error call do_exit($message)
function do_exit($message) {
//unset objects close connections and misc finalizations
$_SESSION['message'] = $message;
die();
}
Моя проблема заключается в том, что, когда умирают() называется, кажется, что не только делает display_results.php сценарий останавливается, но также и исходный файл php, поэтому, несмотря на то, что сообщение установлено, оповещения нет. С другой стороны, если я удаляю оператор die(), и после каждого выполнения do_exit() я выполняю возврат, это работает правильно.
Теперь это не огромная проблема, я могу просто сделать так, чтобы я вызывал return после каждого do_exit(), но я блуждал, если был способ выйти из сценария, но продолжить выполнение исходного php файл
Заранее благодарим за любую помощь, которую вы можете предоставить.
0 Возврат вместо die –
'die - синоним для выхода' и' exit - вывод сообщения и завершение текущего скрипта' Делает то, что он говорит на банке, ключевым словом является __terminate __.... script! == file , script === request –
Чтобы * включить *, php-файл в основном такой же, как размещение содержимого этих файлов в месте оператора ** ** (не функция, отбросьте фигурные скобки!). Поэтому вы не должны думать о отдельных файлах как о отдельных сценариях. Это еще один большой скрипт, который вы завершаете. – Yoshi