Здравствуйте.
Заранее скажу:
сайт-однодневка. Поэтому приму любую помощь.
Есть сайт. На нём есть(делается) функция "сделать тест", и меню с тестами(тоже в процессе), куда они загружаются, и потом их можно проходить.
Подскажите пожалуйста, как мне сделать так, чтобы значения переменных php хранились некоторое время в коде?
Приведу конкретный пример:
<div class="container mt-5 p-3">
<div class="row justify-content-center">
<div class="col-6" id="mainform">
<?php
$server = 'тут хост';
$user = 'юзер';
$password = 'пасворд';
$database = 'имя_бд';
$link = mysqli_connect($server, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
$query ="CREATE Table name_id
(
unique_id INT NOT NULL,
testName VARCHAR(200) NOT NULL
)";
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
if($result)
{
echo "Создание таблицы прошло успешно";
}
if(isset($_POST['question']) && isset($_POST['correctAnswer']) && isset($_POST['wrongAnswer1']) && isset($_POST['wrongAnswer2']) && isset($_POST['wrongAnswer3'])){
$question = htmlentities(mysqli_real_escape_string($link, $_POST['question']));
$correctAnswer = htmlentities(mysqli_real_escape_string($link, $_POST['correctAnswer']));
$wrongAnswer1 = htmlentities(mysqli_real_escape_string($link, $_POST['wrongAnswer1']));
$wrongAnswer2 = htmlentities(mysqli_real_escape_string($link, $_POST['wrongAnswer2']));
$wrongAnswer3 = htmlentities(mysqli_real_escape_string($link, $_POST['wrongAnswer3']));
$query ="INSERT INTO testData VALUES(NULL, '$question','$correctAnswer','$wrongAnswer1','$wrongAnswer2', '$wrongAnswer3','$rand')";
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
if($result)
{
}
else { echo "<span>Подключение не установлено.</span>"; }
// закрываем подключение
mysqli_close($link);
}
?>
<h1 class="text-center text-light mt-3 mb-5">Створення нового тесту</h1>
<div class="addQuestions">
<form method="POST">
<input id="questionInput" class="form-control bg-dark text-light fw-normal my-2" name="question" type="text" placeholder="Запитання" required>
<input id="correctInput" class="form-control bg-dark text-light fw-normal my-2" name="correctAnswer" type="text" placeholder="Правильна відповідь"required>
<input id="wrongOneInput" class="form-control bg-dark text-light fw-normal my-2" name="wrongAnswer1" type="text" placeholder="Неправильна відповідь 1" required>
<input id="wrongTwoInput" class="form-control bg-dark text-light fw-normal my-2" name="wrongAnswer2" type="text" placeholder="Неправильна відповідь 2" required>
<input id="wrongThreeInput" class="form-control bg-dark text-light fw-normal my-2" name="wrongAnswer3" type="text" placeholder="Неправильна відповідь 3" required>
<div class="row gap-2 col-6 mx-auto">
<button type="submit" class="btn btn-success btn-lg mt-1 mb-3 fw-bold" onclick="handlers.addQuestion()">Додати запитання</button>
</div>
</form>
</div>
<div class="info">
<div class="container row gap-2 col-5 mx-auto">
<a href="index.html">
<form method=post>
<button type="submit" name="enter" class="btn btn-primary mt-5 mb-3 btn-lg fw-bold" onclick="view.displayQuestions()" id="startQuiz">Створити тест</button></form></a>
</div>
</div>
<p class="answersCorrect"></p>
<div class="row">
<div class="col questionsWrapper"></div>
</div>
</div>
</div>
</div>
Посмотреть и "пощупать" страницу можно
Так вот, собственно, в чём вопрос: Как сделать так, чтобы когда я открываю страницу "сделать тест", для этого теста генерировался уникальный id(он записывается в базу), и он сохранялся до нажатия кнопки "создать тест" даже при перезагрузке страницы(что и происходит при нажатии на кнопку "добавить вопрос")? Я знаю, что это как-то можно сделать с помощью сессий, но у меня не получилось, постольку поскольку новичок. Будьте добры, помогите с вопросом. Встал в тупик, не знаю с какой стороны подойти к решению сей задачи.
Стоит сказать, что подключение к БД есть, нормально всё подключается. С этим всё ок.
Скрины БД прилагаю.