0

を使用してパラメーターを渡し$_GETたいが、クエリフォームを使用したくない:

showevent.php?event=usa 

代わりにURLに表示する必要があります

site.com/events/usa

プロファイルの場合:

site.com/username
4

1 に答える 1

1

ブラウザは、そのような URL をフォーマットする方法を知りません。GET を介してフォームを送信するための標準はクエリ文字列であり、ブラウザーが実行できる唯一のことです。2 つのオプション:

  1. Javascript を使用して URL を作成し、プログラムでブラウザーをリダイレクトします。これには、Javascript 対応のクライアントが必要になるという欠点があります。
  2. 通常のクエリ文字列を介して送信し、サーバーで URL を書き換えてクライアントをリダイレクトします。例えば:

    header('Location: /events/' . $_GET['event']);
    exit;
    

    これには、毎回サーバーへの 2 回のラウンドトリップが必要であり、書き換えられていない URL がユーザーのブラウザーで短時間点滅する可能性があるという欠点がありますが、最終的には適切な URL が取得されます。

2. 非 Javascript クライアントのフォールバックとして、両方の組み合わせが必要な場合があります。

于 2013-01-06T12:17:29.870 に答える