Прежде всего, я только начал PHP. Я знаю, что мои методы могут быть не самыми эффективными, но, пожалуйста, попробуйте вспомнить, что я новичок во всем этом. Примеры отлично работают.
Я пытаюсь написать простой PHP-код, который задает пользователю три вопроса. Один true / false, один множественный выбор и один короткий ответ. Каждый вопрос отображается на собственной странице.
Когда я пытаюсь запустить это, я получаю следующую ошибку:
Error: Deprecated: Function session_is_registered() is deprecated on line 10
Этот скрипт по-прежнему работает с этой ошибкой. Проблема, хотя и находится в конце викторины, переменная $ correct, похоже, не меняется. Я напечатал переменную, чтобы увидеть, меняется ли она, и ничего не печатается, поэтому очевидно, что что-то не так – возможно, ошибка устаревших функций является виновником.
Любая помощь будет оценена по достоинству.
<?php ini_set('session.gc_maxlifetime',900); //echo ini_get("session.gc_maxlifetime"); session_start(); if($_SESSION['loggedin'] !== 1) { header('Location: login.php'); exit; } if (!session_is_registered("loggedin")) { $_SESSION["number"] = 0; $_SESSION["correct"] = 0; } $total_number = 3; print <<<TOP <html> <head> <title> History Quiz </title> </head> <body> <h3> History Quiz </h3> TOP; $number = $_SESSION["number"]; $correct = $_SESSION["correct"]; if ($number == 0){ print <<<FIRST <p> You will be given $total_number questions in this quiz. <br /><br/> You will have 15 minutes to complete it. <br /><br/> You cannot go back to change previous answers.<br /><br/> Here is your first question: <br /><br /> </p> <p>1. Abe Lincoln was born in Illinois.</p> <p> <label><input type="radio" name="question1" value="true" /> True </label> <label><input type="radio" name="question1" value="false" /> False </label> </p> FIRST; if (isset($_POST['submit'])) { $selected_radio = $_POST['question1']; if ($selected_radio == 'false') { $correct++; $_SESSION["correct"] = $correct; print $correct; } } } if ($number == 1){ print <<<SECOND <p>2. In what state was the battle of Gettysburg fought?</p> <p> <label><input type="checkbox" name="question2" value="Texas" /> a) Texas </label><br/> <label><input type="checkbox" name="question2" value="Pennsylvania" /> b) Pennsylvania </label><br/> <label><input type="checkbox" name="question2" value="Virginia" /> c) Virginia </label><br/> <label><input type="checkbox" name="question2" value="West Virginia" /> d) West Virginia </label> </p> SECOND; if (isset($_POST['submit'])) { $selected_checkbox = $_POST['question2']; if ($selected_checkbox == 'Pennslyvania') { $correct++; $_SESSION["correct"] = $correct; print $correct; } } } if ($number == 2){ print <<<THIRD <p>3. The last name of the commander of the Army of North Virginia was __________.</p> <p> <input type='text' id='question3' /> THIRD; if (isset($_POST['submit'])) { $selected_answer = $_POST['question3']; if ($selected_answer == "lee") { $correct++; $_SESSION["correct"] = $correct; } } } if ($number >= $total_number) { print <<<FINAL_SCORE Your final score is $correct correct out of $total_number. <br /><br /> Thank you for playing. <br /><br /> FINAL_SCORE; session_destroy(); } else { $number++; $_SESSION["number"] = $number; $script = $_SERVER['PHP_SELF']; print <<<FORM <form method = "post" action = $script> <input type = "submit" value = "Check Answer" /> </form> FORM; } print <<<BOTTOM </body> </html> BOTTOM; ?>
функция session_is_registered()
не используется , просто используйте что-то вроде isset($_SESSION['blah'])
чтобы проверить