使用PHP跟踪链接

时间:2013-03-01 15:04:58

标签: php

我的网站上有各种指向特定表单的链接。

每当有人填写表单时,我希望能够知道哪些链接将他们带到表单中。

我想这样做而不必为我在其中创建的每个链接创建单独的PHP代码行。相反,我希望有一些PHP代码从该链接中获取内容,并且可能将其插入到隐藏文本框中,该文本框从我在链接中标记的内容中获取其值或文本。

例如:

  1. 用户点击链接。
  2. 该链接将他们引导至表单。
  3. 该链接带有一个激活PHP代码的标识
  4. 当我收到表单时,我知道点击了什么链接以获取该表单。
  5. 我希望它能够处理我发送的电子邮件中的链接。

3 个答案:

答案 0 :(得分:0)

您可以使用HTTP Referer来实现此目的。在PHP中,您可以使用

$referer = $_SERVER['HTTP_REFERER']

答案 1 :(得分:0)

以此为例:

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

然后在你的表格中:

<input type="hidden" value="<?php echo htmlspecialchars($ref, ENT_QUOTES); ?>" name="ref" />

答案 2 :(得分:0)

根据帖子中的信息,听起来您只想发送一个令牌/ ID。

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

现在,您可以在表单上获取令牌:

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

然后使用switchif语句运行您需要的任何代码。

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

其他

正如//use proper testing first注释所示,您应确保传递的令牌有效并在发生攻击时进行清理。一种选择是在生成时将令牌存储在数据库中,然后在验证时进行比较。另请查看htmlspecialchars()甚至strip_tags()进行消毒。

如果令牌无法验证,则不应输出,甚至应该发出警告消息/重定向错误。