Как передать переменную из скрипта php в index.php?

Ребята, по ходу туплю не по-детски...
Есть заглушка для сайта с формой подписки (это пока сырой код, далее будет преобразован в чистый php):
<?php
        global $ModalBodyText;
?>
<head>
        <title>TITLE</title>
        <!-- Необходимые мета теги -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <!-- Скрипты JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.min.js"  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.bundle.min.js" integrity="sha384-pjaaA8dDz/5BgdFUPX6M/9SUZv4d12SUPF0axWc+VRZkx5xU3daN+lYb49+Ax+Tl" crossorigin="anonymous"></script>
        <script src="./js/script.js" type="text/javascript"></script>
        <!--Стили CSS -->
        <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
        <link href="./css/style.css" rel="stylesheet" />

        <link rel="shortcut icon" href="./images/logo.png" type="image/png">
</head>

         <body>
                 <div class="contauner-fluid">
<div>Здесь блок вывода информации на странице.</div>
                                <form role="form" id="MailForm" name="postaddress" action="save.php" method="post">
                                        <div class="form-group row">
                                                <label for="male-input" class="col-2 col-form-label my-auto form-label">Ваш E-mail</label>
                                                <div class="col-5 my-auto">
                                                        <input class="col-12 form-control" type="text" value="" id="male-input" name="MailBox">
                                                </div>
                                                <span id="male-input" class="col-5 text_after_input my-auto">Данные не будут использованы для спам-рассылок</span>
                                        </div>
                                        <button type="button" id="send-mail" class="butn_send" data-toggle="modal" data-target="#SuccessEmailModal">Отправить</button>
                                        <div class="modal fade" id="SuccessEmailModal" tabindex="-1" role="dialog" aria-labelledby="EmailModalLabel" aria-hidden="true">
                                                <div class="modal-dialog" role="document">
                                                        <div class="modal-content">
                                                                <div class="modal-header">
                                                                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                                                                </div>
                                                                <div class="modal-body">
                                                                        <?php echo $ModalBodyText; ?>
                                                                </div>
                                                        </div>
                                                </div>
                                        </div>

                                </form>
                 </div>
         </body>

Здесь искать ошибки не нужно, все формируется правильно, за исключением одного: в с классом "modal-body не выводится переменная $ModalBodyText. Переменная объявлена глобальной в начале скрипта.
Код-обработчик save.php:
<?php
header("Location: index.php");
require_once ('config.php'); //Забираем константы, прописанные для базы данных

$bd_link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // соединяемся с базой данных
if (mysqli_connect_errno()) { // проверка соединения
        printf("Не удалось подключиться: %s\n", mysqli_connect_error());
        exit();
}
if (!$bd_link->set_charset("utf8")) { // изменение набора символов на utf8
        printf("Ошибка при загрузке набора символов utf8: %s\n", $bd_link->error);
        exit();
}

$MailBox = $_POST['MailBox'];

if (filter_var($MailBox, FILTER_VALIDATE_EMAIL) !== false)
{
        $bd_insert_query = "INSERT INTO " . DB_TABLE . " (ID, mailbox) VALUES (LAST_INSERT_ID() , '" . $MailBox . "')";
        $result = mysqli_query($bd_link, $bd_insert_query);
        $ModalBodyText  = 'Ваш адрес электронной почты ' . $MailBox . ' внесен в список информатория об открытии сайта';
}
else
{
        $ModalBodyText = 'Вы указали некорректный адрес электронной почты';
}

mysqli_close($bd_link); // закрываем подключение
 ?>

Чтобы исключить лишние поиски ошибки в коде сразу скажу: БД подключается нормально, запрос выполняется штатно, переменная $ModalBodyText также формируется правильно (проверено выводом echo $ModalBodyText; после присвоения значения и перед закрытием подключения.
Способ с передачей переменной с помощью $_SESSION также пробовал (session_start включал в код в начале каждого скрипта - и index, и save).

Я понимаю, что передаваемая переменная теряется при обратном переходе от save.php к index.php, но почему и как понять не могу.
Помогите, люди добрые!!!
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
У вас же там редирект
header("Location: index.php");

Вы точно понимаете как это работает?
Ответ написан
Комментировать
@sovlarus Автор вопроса
Не особенно )))
Проблема в том, что я не нашел другого решения для возврата из save.php в index.php. Если не применять header, то, при нажатии кнопки в форме, управление передается в save.php, который успешно выполняется, и остается там же.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы