このようなURLの一部を非表示にしたい
http://localhost/hotel/index.php?&do=home
だけ表示させたい
http://localhost/hotel/home
誰でもそれを行うためのphpで最も簡単なコードを教えてもらえますか? ありがとうございました。
URLの情報を非表示にするさまざまな方法は次のとおりです。
フォームを使用して情報を投稿してください。これには、ソースページで追加のコードが必要になる場合がありますが、ターゲットページでロジックを変更する必要はありません(単にRequest.QueryStringをRequest.Formに変更するだけです)。POSTをいじくり回すことは不可能ではありませんが、QueryStringパラメーターで遊ぶよりも確かに魅力的ではありません。
セッション変数を使用して、ページ間で情報を伝達します。これは、セッション変数のチェックを考慮する必要があるため、(1)に比べてかなりの労力になる可能性があります(たとえば、状態を常にチェックしている場合、ユーザーは[戻る]ボタンと[進む]ボタンを使用してナビゲートするのに苦労する可能性があります) 。また、セッションCookieが有効になっていない場合にも対処する必要があります(このソリューションはこれらのユーザーには機能しません)。
実際のデータの代わりに、QueryStringで「エンコードされた」または無意味な情報を使用します。これには、すべてのページ送信の両端でエンコードおよびデコードスキームを作成する作業が必要になります。もちろん、ユーザーはスキームを実験してリバースエンジニアリングできますが、既存のQueryStringに意味のある変更をすぐに思い付く可能性は低くなります。
フレームセットを使用します。非常に一般的ですが、このアプローチはお勧めしません。変更を難しくするのではなく、情報を非表示にしようとしている場合でも、ユーザーは個々のフレームを右クリックしてプロパティをクリックし、QueryStringを介して渡されたすべての情報を取得できます。
Server.Transferを使用して、コントロールを2番目のページに移動します。このページでは、最初のページに渡されたQueryStringパラメーターに引き続きアクセスできます(URLは短時間しか表示されませんでした)。
QueryStringsから離れることの問題の1つは、サイトが使いにくくなることです。(3)以外の方法を使用している場合、ユーザーが現在のページをそのままブックマークすることはできません...ユーザーは、URLを入力しただけの場合と同様の方法でのみページをブックマークできます。 in(ページの作成方法によっては機能しない場合もあります)。したがって、情報が実際にどれほど機密であるか、そしてユーザビリティとセキュリティのバランスをどこまで進んでいくかを決定する際に留意すべきことは1つだけです。