質問があります。検索ページを作成したいのですが、結果を並べ替えるにはget変数が必要です。したがって、誰かがそのGET変数なしでページに入った場合は、ページをリロードして表示させます。たとえば、www.myweb.com / searchと入力すると、自動的にリロードされてwww.myweb.com/search/?sort=ascendingに変更されます(その変数が必要です)。
あなたが私を理解してくれることを願っています、さようなら
これはあなたがやろうとしていることでうまくいくと思います:
if (empty($_GET['sort'])) {
header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
exit();
}
が要求されたときに実行されるファイル内からwww.myweb.com/search
、$_GET['sort'] が使用できない場合のデフォルト設定が必要です。この回答では、指定しなかったため、例として PHP を使用します。
<?php
if (empty($_GET['sort'])) {
$sort = 'ascending';
}
// the rest of your code
または、リダイレクトを強制することもできますが、前の例の方がより洗練されています。
<?php
if (empty($_GET['sort'])) {
header('Location: www.myweb.com/search/?sort=ascending');
exit;
}
2 番目の解決策では、他の $_GET など、他のものは破棄されることに注意してくださいitem=widget
。color=blue
!isset
回答として投稿する他の人に注意してください。それはうまくいきません!例:
www.myweb.com/search/?sort=&foo=bar
!isset($_GET['sort'])
=== 嘘!
empty($_GET['sort'])
この状況で取るべき適切なルートです。
リダイレクトするよりも、自分で変数を定義することをお勧めします。変数が定義されているかどうかを isset で確認してください。定義されていない場合は、以下のように自分で設定できます。
if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}