0

私の Web サイトには、特定のフォームを指すさまざまなリンクがあります。

誰かがフォームに記入するたびに、どのリンクがフォームにつながったのかを知りたい.

で作成するすべてのリンクに対して PHP コードの個々の行を作成する必要なく、これを実行したいと考えています。代わりに、そのリンクから何かを取得し、リンクでタグ付けしたものから値またはテキストを取得する非表示のテキスト ボックスにそれを挿入する PHP コードが必要です。

例えば:

  1. ユーザーがリンクをクリックします。
  2. そのリンクはフォームに誘導します。
  3. リンクには、PHP コードをアクティブにする ID が含まれています
  4. フォームを受信すると、どのリンクをクリックしてそのフォームにアクセスしたかがわかります。

送信するメールのリンクでも機能するようにしたい。

4

3 に答える 3

0

これを実現するには、 HTTP リファラーを使用できます。PHPでは、次を使用できます

$referer = $_SERVER['HTTP_REFERER']
于 2013-03-01T15:08:58.573 に答える
0

たとえば、これを使用します。

if (isset($_SERVER['HTTP_REFERER']))
{
    $ref = $_SERVER['HTTP_REFERER'];
}

次に、次のようなフォームで:

<input type="hidden" value="<?php echo htmlspecialchars($ref, ENT_QUOTES); ?>" name="ref" />
于 2013-03-01T15:10:36.600 に答える
0

投稿の情報に基づくと、トークン/ ID を送信したいだけのようです。

<a href="form.php?token=xxx">Goto Form</a>

フォームでトークンを取得できます。

$token = $_GET['token']; // use proper testing first

次に、switchorifステートメントを使用して、必要なコードを実行します。

<input type="hidden" value="<?php echo $token; ?>">

追加:

//use proper testing firstコメントが示すように、渡されるトークンが有効であり、攻撃に備えてサニタイズされていることを確認する必要があります。1 つのオプションは、生成時にトークンをデータベースに格納し、検証時に比較することです。また、消毒についてhtmlspecialchars()も調べてください。strip_tags()

トークンの検証に失敗した場合は、出力せず、エラーが発生したことを示す警告メッセージ/リダイレクトを表示する必要があります。

于 2013-03-01T15:12:36.027 に答える