提问人:Max Gee 提问时间:10/7/2012 最后编辑:Major ProductionsMax Gee 更新时间:4/1/2014 访问量:4796
_SERVER美元['HTTP_REFERER']
$_SERVER['HTTP_REFERER']
问:
我正在我的网站上制作一个报告问题链接,我希望它在单击报告链接之前通过电子邮件向我发送他们上次使用的地址。我知道/认为您使用 $_SERVER['HTTP_REFERER'],但我不知道如何将其放入邮件代码中?那么你会怎么写这是我的邮件代码。
Mail("[email protected]", "Subject", "Message");
echo "Report Sent";
答:
0赞
Major Productions
10/7/2012
#1
消息应该是一个变量,您可以在其中输入信息:
$message = "Error report: <p>Last site visited: {$_SERVER['HTTP_REFERER']}</p>....";
mail("[email protected]", "Subject", $message);
请注意,该位位于字符串的 {} 内。这是为了强制它推断值(我不喜欢字符串连接)。HTTP_REFERER
另请注意,如上所述,不能保证 REFERER 具有正确的值,或者根本没有任何值。
评论
0赞
Max Gee
10/7/2012
如果不使用引用样式,如何报告此内容?
0赞
Major Productions
10/7/2012
您可以使用 JavaScript 将值异步发送到 PHP。JS 的当前位置/url 值在document.URL
0赞
Major Productions
10/7/2012
您想要他们单击报告按钮时所在的当前 URL 的地址,还是上一个 URL?如果他们从 Google 找到了一个页面,你会想捕捉它吗?
0赞
Max Gee
10/7/2012
我试图让它做的是,如果有人在我的网站上发现错误,我希望他们点击链接报告问题,然后它会向我发送他们点击该链接时他们所在的网站最后一部分的地址。
1赞
Barmar
10/7/2012
匿名代理通常可以选择删除推荐人。
0赞
Maurizio
4/1/2014
#2
除了关于可以嗅探的 http 引用器、匿名代理等所有被告知的内容之外,依赖HTTP_REFERER并不是一个好的编程标准。
相反,如果您有,例如:
http://www.example.com/application/client.php
用户可以点击的位置
http://www.example.com/application/report_problem.php
只需通过“...client.php“字符串设置为”...report_problem.php“报告问题处理程序。
将“原始”页面链接传递给“report_problem”很容易,可以这样完成:
<?php
// pages where you will append the "problem link"
// $this_page holds an "url encoded" version of the request uri ( e.g. /application/client.php )
$this_page = rawurlencode ( $_SERVER["REQUEST_URI"] );
?>
<a href="report_problem.php?originating_page=<?=$this_page;?>">Report problem</a>
然后,在“report_problem.php”代码中:
<?php
// report_problem.php
$originating_page = ( array_key_exists ( 'originating_page', $_GET ) && ! empty ( $_GET['originating_page'] ) ? rawurldecode ( $_GET['originating_page'] ) : null;
if ( ! empty ( $originating_page ) ) {
$message = 'Error report: <p>Last site visited: ' . $originating_page . '</p>....';
mail("[email protected]", "Subject", $message);
}
else mail("e[email protected]", "Subject", "Problem from unkown page");
?>
评论
http://example.com/problem.php?url=http://example.com/page_you_are_on.php