Ребята, по ходу туплю не по-детски...
Есть заглушка для сайта с формой подписки (это пока сырой код, далее будет преобразован в чистый 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">×</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, но почему и как понять не могу.
Помогите, люди добрые!!!