次のような1つの変数を持つURLがある場合:www.mysite.com/animals.php?pet=dogs
チェックを行います:
if (!isset($_GET['pet']) || empty($_GET['pet']) || ($pet_true === false)){
header('Location: error.php');
exit();
} echo 'list of dogs';
ペットが設定されていないか、空またはfalseの場合にリダイレクトされるため、機能します。
しかし、私は2番目の変数を追加したいと思います:www.mysite.com/animals.php?pet=dogs&breed=collie
そしてチェックを行います:
- 品種が設定されていないか、空または false の場合: エラー ページにリダイレクトします。
- URL が次の場合:
?pet=dogs&madeup
: エラー ページにリダイレクトします。
次のようなチェックができると思いました:
if (!isset($_GET['breed']) || empty($_GET['breed']) || ($breed_true === false)){
header('Location: error.php');
exit();
} else {
echo 'Collie info';
}
しかし、URLが正しい場合www.mysite.com/animals.php?pet=dogs
、品種が設定されていないため、とにかくリダイレクトされます。
私が考えることができる唯一の解決策は、何もエコーしないことです:
if (!isset($_GET['breed']) || empty($_GET['breed']) || ($breed_true === false)){
echo '';
} else {
echo 'Collie info';
}
しかし、?pet=dogs&
ユーザーが好きなものを入力できるようになった後、それが安全かどうかわからないので、エラーページにリダイレクトする方が良いと思いますが、それは可能ですか??