我是一个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();
}
?>
我的问题是有人更改了网址(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'){}
谢谢!
答案 0 :(得分:1)
您可以在这里执行一个允许值数组,并检查 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();
}