@Lapin45

Как сохранять данные при перезагрузке страницы?

Здравствуйте.

Заранее скажу: сайт-однодневка. Поэтому приму любую помощь.

Есть сайт. На нём есть(делается) функция "сделать тест", и меню с тестами(тоже в процессе), куда они загружаются, и потом их можно проходить.
Подскажите пожалуйста, как мне сделать так, чтобы значения переменных 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(он записывается в базу), и он сохранялся до нажатия кнопки "создать тест" даже при перезагрузке страницы(что и происходит при нажатии на кнопку "добавить вопрос")? Я знаю, что это как-то можно сделать с помощью сессий, но у меня не получилось, постольку поскольку новичок. Будьте добры, помогите с вопросом. Встал в тупик, не знаю с какой стороны подойти к решению сей задачи.
Стоит сказать, что подключение к БД есть, нормально всё подключается. С этим всё ок.
Скрины БД прилагаю.

60af63f3f2f70120547835.png
60af63fed7d1c283377242.png
60af6408681fb980267579.png
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 1
sslion
@sslion
Я знаю, что это как-то можно сделать с помощью сессий

Всё правильно, проще это сделать при помощи сессий.
В поиске задай "php работа с сессиями" - найдешь кучу примеров, а так же видео...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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