0

次のことを行うための最良の方法は何ですか:ログインページ(ページ3)に移動する2つのボタン(さまざまなもの)を備えたページAがあります。ログインの詳細がページ3に入力されると、データを処理するページになります。 4ページ目です。aページでクリックされたボタンに応じて4ページ目に表示したいのですが。httpリファラーを読みましたが、4ページ目にリファラーを配置すると、元のページであるログインが表示されると思います。

どうすればこれを解決できますか?ありがとう

4

4 に答える 4

2

リファラーは常にブラウザーによって送信されるわけではなく、偽造される可能性があります(この場合、両方のボタンが同じページにあるため、役に立たないでしょう)。したがって、設定や修正に依存しないでください。

この状況では、考えられる解決策は次のとおりです。

  • Aページで、2つのボタンに変数を追加します
    • page_login.php?button=1」のように
    • と「page_login.php?button=2
  • ページログインはその変数(つまり$_GET['button'])を受け取り、フォームの非表示フィールドに保存します
  • 次に、4ページ目はその変数を受け取ります。これを使用して、最初に使用されたボタンを知ることができます。
于 2009-10-18T11:25:09.543 に答える
2

セッション変数を使用します。例:$_SESSION['clicked_button'] = $the_button

于 2009-10-18T11:29:46.167 に答える
1

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) ...

于 2009-10-18T11:23:14.717 に答える
0

これらの変数が存在しない場合、つまりユーザーがフォームに干渉する場合は、どのような場合でもデフォルトを設定することを忘れないでください...ただし、とにかくそれを防ぐためのメソッドを使用する必要があります;)

于 2009-10-18T14:09:48.593 に答える