2016-09-24 6 views
1

私は私のホスティングWebページのPHPコードを書いています。
ドメインが利用可能かどうかを確認するために、$ _GETのページに入力された検索ドメインを作成します。コードで$ GET関数を保護する必要があります。

ドメインの検索を処理するための$ GETのコードは:

if(isset($_GET['search'])){ 
$domena = ($_GET['search']); 
} 

HTMLコード
私はFORMのPOSTアクションで送信ボタンをしていると私は、URLを取得します:

www.domain.com/index.php?search=domain.com

URLを隠すことができるかどうかを知る必要がありますsearch=domain.com

注 - 私はしたくないPHPだけのAJAXや他の言語を使用してください。

答えて

2

検索パラメータを非表示にするには、POSTメソッドで送信し、$ _GETではなく$ _POSTで受け入れます。

if(isset($_POST['search'])){ 
    $domena = ($_POST['search']); 
} 
+0

POSTを使用すると、POSTパラメータを「隠す」のではなく、POSTを使用していないか、またはまだリンクを使用している場合パラメータがURLに表示されます); – James

2

$ _POSTメソッドの使用について考えましたか?ユーザーから送信されたデータは、URLではなくHTTPリクエストになります。 $ _GETメソッドはURLに掲載されます。

Mozillaは、thisをよく説明してくれます。

フォームに$ _POSTメソッドを必ず指定してください。たとえば、次のように

<form action="http://foo.com" method="post"> 
    <input name="say" value="Hi"> 
    <input name="to" value="Mom"> 
    <button>Send my greetings</button> 
</form> 

次に、あなたのデータを取得し、あなたの質問に投稿された同じコードを使用しますが、ないあなたがPHPを使用してURLを隠すことができない、直接あなたに答えるために$ _GETと$ _POST

-1

を変更します。

もう1つの方法として、$ GETを使用して($ POSTに変更しないで)、セッションにGETパラメータを設定してからリダイレクトする方法があります。

これは、あなたの広範なシナリオとそれ以外のコード設定が、これが価値あるものかどうか、あるいはこれを行うためだけにセッションを導入することに全面的にかかっているかどうかによってまったく異なります。おそらく、この検索パラメータをここからたくさん使用すると、セッションが便利になる可能性があります。また、ユーザー入力データを格納するフォームの残りの部分(これは一般的です)でも使用できます。

恐らく既にどこかで検索パラメータを設定しているライブリンクがあるので、$ GETを引き続き使用する必要があります。分かりません。あなたが$ GETを使用し続ける必要がある理由がなければ、$ POSTを使って他の答えで十分です。

だから、例えば(コードがテストされていない)

<?php 

if (isset($_GET['search'])) { 
    $_SESSION['someUniqueRelevantName']['search'] = $_GET['search']; 
    header("Location: www.domain.com/index.php"); 
    exit; 
} 

if (isset($_SESSION['someUniqueRelevantName']['search'])) { 
    // Do your thing with the search query 
} 

あなたはすでに他の場所でそれを使用する場合は必ず、session_start()をする必要はないかもしれないなど

また、これは物事を処理する古い方法であり、そして音フォームデータを処理するために全体的にもっと構造化されたアプローチが必要なのです。しかし、それは別の日の仕事だろう:)