2016-11-04 5 views
0

質問と同様に、URLにパラメータを追加するにはどうすればよいですか?'?= website-name'のようなURLにパラメータを追加する方法

例:あなたが製品ハントの機能を備えた製品を得るためにリンクをクリックすると

、URLを?ref=producthuntが付加されます。

私は自分のウェブサイトにあるいくつかのリンクにこのようなパラメータを手動で追加できますか?これが最適ではないシナリオはありますか?

答えて

0

URLのパラメータは、スーパーグローバル$ _GET配列に対応しています。 URLが www.domain.com?key1=valのkey2 = val2, の場合、$ _GET [key1]にはval1などが含まれています。

リンクでこれらのパラメータを手動で追加することは完全に正当です(通常の使用例は現在のURLにリダイレクトされ、& todo = loginを追加するログインボタンです)。その後、 $ _GETに 'todo'というキーで 'login'という値が含まれている場合、ログインプロセスがトリガーされます)。

これらのパラメータを追加するもう1つの方法はフォームです。 HTMLフォームでは、 'get'または 'post'にすることができる 'method'を指定します。 「取得」を選択すると、フォームが送信されると、URLに自動的にフォームの回答が追加されます。

注意:$ _GETから値を直接読み取るのは一般的に安全ではありません。入力を安全にするフィルタを使用することをお勧めします。 URLに追加

+0

フォームのもう1つのオプションは、フォーム応答を隠しスーパーグローバル$ _POST配列に追加する 'post'メソッドです。たとえば、パスワードを含むフォームを作成する場合は、URL経由(GETを使用)よりもPO​​ST経由で送信する方がはるかに優れています。 – Anog

0

パラメータは、クエリ文字列と呼ばれているフィルタの詳細についてhttp://www.w3schools.com/php/php_filter.aspをチェックして、彼らは形式に

  • それが意志を開始する必要がありますがありますか?
  • すべてのparaperは例&

で区切られます:あなたがやったhttp://www.yoururl.com?name=myname&age=34&ect=somethingelse

間違いは、Webサーバーによって変換されていない=置くことです。 あなたは「?Webサイト名= Webサイト名」

0

クエリ文字列パラメータは、すなわち?key=value&key2=value2&?でURLのドメインとパスから分離され、互いに分離されているキーと値のペア、あるようPASことができます。

値は、Webサーバーまたはサーバー側の言語(PHP、ASP.NET、Java)によってクライアント側(JavaScript)およびサーバー側にアクセスできます。

一部の値は、有効であることを確認するために、encodeURIComponentなどの関数を使用してエンコードする必要があります。

あなたは、クエリ文字列は、このような順序番号、私のように機密情報が含まれていないことに注意する必要があり

をリスク。e ?order=5他のユーザーの注文を見るために誰かが手動で値を変更できるため(?order=6、他の認証がない場合)注文値は暗号化して推測できないようにする必要があります。また、他のユーザーに対してクロスサイトスクリプティング(XSS)攻撃を実行し、Cookieやログイン資格情報を盗むために、コンテンツが悪意のあるユーザーによって変更される可能性があるため、eval()を使用してクエリ文字列で渡されたコードは実行しないでください。

関連する問題