0

我正在我的网站上创建一个报告问题链接,我希望它通过电子邮件将他们在单击报告链接之前的最后一个地址发送给我。我知道/认为您使用 $_SERVER['HTTP_REFERER'] 但我不知道如何将其放入邮件代码中?那么如果没有它,您将如何写这是我的邮件代码。

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

2 回答 2

0

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

相反,如果您有,例如:

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

用户可以点击的地方

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

只需将“...client.php”字符串传递给您将创建的“...report_problem.php”报告问题处理程序。

将“originating”页面链接传递给“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@email.com", "Subject", $message);
     }
     else mail("email@email.com", "Subject", "Problem from unkown page");
 ?>
于 2014-04-01T15:46:40.773 回答
0

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

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

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

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

另请注意,如上所述,不能保证 REFERER 将具有正确的值或任何值。

于 2012-10-07T01:33:11.760 回答