$ _GET для хранения динамического сеанса - PullRequest
0 голосов
/ 30 сентября 2018

Я нуб PHP и мне нужна помощь, если можете.У меня есть небольшой веб-сайт, похожий на опрос, в котором я нажимаю на ссылку, и на следующей странице я получаю предыдущую переменную и сохраняю ее во всем опросе.

На первой странице у меня есть 5 кнопок длявыберите:

<a href="question-2.php?q1=1" class="sfondo-form w-inline-block"></a>
<a href="question-2.php?q1=2" class="sfondo-form w-inline-block"></a>
<a href="question-2.php?q1=3" class="sfondo-form w-inline-block"></a>
<a href="question-2.php?q1=4" class="sfondo-form w-inline-block"></a>
<a href="question-2.php?q1=5" class="sfondo-form w-inline-block"></a>

на второй странице я использую $ _GET, чтобы получить первую переменную

<?php
// Starting session
session_start();


if (isset($_GET['q1'])){
    $question_1 = $_GET['q1'];
    $_SESSION['q1'] = $question_1;
    echo '<br>';
    echo $_SESSION['q1'];
}
else{
    header('location: index.php');
    exit();
}


?>

Моя проблема в том, что кто-то меняет URL-адрес (question-2.php? Q1 = ANYTHING-ELSE). Мне нужно перенаправить его на домашнюю страницу.По сути, мне нужно иметь оператор If, у которого только echo пять результатов из 5 href

Так что я могу иметь один сеанс $_SESSION['q1'] с динамическим контентом, но ограниченный этими пятью.

Я знаю, что это неправильно, но мне нужно ограничиться этим:

if (isset($_GET['q1']) && (($_GET['q1'])= '1' or '2' or '3' or '4' or '5'){}

Спасибо!

1 Ответ

0 голосов
/ 30 сентября 2018

Что вы можете сделать здесь, это иметь массив допустимых значений и проверить, является ли q1 значение одним из значений в данном массиве:

<?php
// Starting session
session_start();

$allowed = array(1, 2, 3, 4, 5);
if (isset($_GET['q1'])) {
    $question = (int) $_GET['q1'];
    if(in_array($question, $allowed, true)){
        $_SESSION['q1'] = $question;
        echo '<br>';
        echo $_SESSION['q1'];
    } else {
        header('Location: index.php');
        exit();
    }
} else {
    header('Location: index.php');
    exit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...