$ _ SERVER [ 'HTTP_REFERER']

时间:2012-10-07 01:25:18

标签: php email reporting-services error-reporting

我正在我的网站上创建一个报告问题链接,我希望它在点击报告链接之前通过电子邮件向我发送他们所在的最后地址。我知道/你认为你使用$ _SERVER ['HTTP_REFERER']但我不知道如何把它放在邮件代码中?所以你怎么写这里是我的邮件代码。

Mail("email@email.com", "Subject", "Message");
echo "Report Sent";

2 个答案:

答案 0 :(得分:0)

该消息应该是一个可以将信息放入的变量:

$message = "Error report: <p>Last site visited: {$_SERVER['HTTP_REFERER']}</p>....";

mail("email@email.com", "Subject", $message);

请注意,HTTP_REFERER位位于字符串中的{}内。这是为了强制它推断值(我不喜欢字符串连接)。

另请注意,如上所述,无法保证REFERER具有正确的价值或任何价值。

答案 1 :(得分:0)

除了所有关于可以被嗅探的http引用者,匿名代理等等之外,依赖HTTP_REFERER并不是一个好的编程标准。

相反,如果你有,例如:

http://www.example.com/application/client.php

用户可以点击

http://www.example.com/application/report_problem.php

只需通过&#34; ... client.php&#34;字符串到&#34; ... report_problem.php&#34;报告您将创建的问题处理程序。

很容易通过&#34;起源&#34;页面链接到&#34; report_problem&#34;,可以像这样完成:

<?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>

然后,在&#34; report_problem.php&#34;代码:

<?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@email.com", "Subject", $message);
     }
     else mail("email@email.com", "Subject", "Problem from unkown page");
 ?>