次のことを行うための最良の方法は何ですか:ログインページ(ページ3)に移動する2つのボタン(さまざまなもの)を備えたページAがあります。ログインの詳細がページ3に入力されると、データを処理するページになります。 4ページ目です。aページでクリックされたボタンに応じて4ページ目に表示したいのですが。httpリファラーを読みましたが、4ページ目にリファラーを配置すると、元のページであるログインが表示されると思います。
どうすればこれを解決できますか?ありがとう
次のことを行うための最良の方法は何ですか:ログインページ(ページ3)に移動する2つのボタン(さまざまなもの)を備えたページAがあります。ログインの詳細がページ3に入力されると、データを処理するページになります。 4ページ目です。aページでクリックされたボタンに応じて4ページ目に表示したいのですが。httpリファラーを読みましたが、4ページ目にリファラーを配置すると、元のページであるログインが表示されると思います。
どうすればこれを解決できますか?ありがとう
リファラーは常にブラウザーによって送信されるわけではなく、偽造される可能性があります(この場合、両方のボタンが同じページにあるため、役に立たないでしょう)。したがって、設定や修正に依存しないでください。
この状況では、考えられる解決策は次のとおりです。
page_login.php?button=1
」のようにpage_login.php?button=2
」$_GET['button']
)を受け取り、フォームの非表示フィールドに保存しますセッション変数を使用します。例:$_SESSION['clicked_button'] = $the_button
。
http-reffererはこれを行うための最良のソリューションではありません。最も簡単な方法は、GET配列にパラメーターを追加することです。たとえば、?clicked_button=2
Http-reffererをオフにすることができます。さらに、リファラーにはそのボタンの同じURLが表示されます(両方とも1ページにあります)
リクエストに応じて編集:フォームなしで編集できます、
<button id="button1" onClick = "javascript:location = "page3.php?clicked_button=1"; />
そして、page3.php
値を読み取るだけで$_GET['clicked_button']
:
if($_GET['clicked_button'] == 1) ...
これらの変数が存在しない場合、つまりユーザーがフォームに干渉する場合は、どのような場合でもデフォルトを設定することを忘れないでください...ただし、とにかくそれを防ぐためのメソッドを使用する必要があります;)