【问题标题】:Get additional user details with PHP and mail() function使用 PHP 和 mail() 函数获取更多用户详细信息
【发布时间】:2010-08-17 15:35:22
【问题描述】:

我有一个简单的 PHP 脚本,它使用 mail() 函数(我知道它很容易产生垃圾邮件)将消息发送到指定的电子邮件地址,其中包含来自 HTML 表单的内容。

我想知道是否可以获取有关用户设置的其他信息并将其输入到发送的邮件中。

其他信息可能包含:

  • 浏览器类型和版本是否
  • Javascript 已启用或禁用
  • 操作系统分辨率

如果其中任何一个是可能的,那就太棒了。

谢谢, 阿米特

编辑:感谢@Stephen,我能够使用 $_SERVER['HTTP_USER_AGENT'] 获取有关浏览器的更多信息。但是,当使用 get_browser 时,它不起作用。这是我的代码:

$browser = get_browser(null, true);

$message = 'From: ' . "\n\n" . 
'Name: ' . $_REQUEST['name'] . "\n\n" . 
'E-mail: ' . $_REQUEST['email'] . "\n\n" . 
'Comments: ' . $_REQUEST['comments'] . "\n\n" . 
'Details: ' . $_SERVER['HTTP_USER_AGENT'] . "\n\n" . 
'Further: ' . echo ($browser);

有人知道原因吗?

谢谢!

【问题讨论】:

    标签: php email html-email


    【解决方案1】:

    通过解析$_SERVER['HTTP_USER_AGENT']变量可以找到很多细节。我当前计算机的示例是:

    echo $_SERVER['HTTP_USER_AGENT']
    // Output: "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"
    

    请记住,这里的内容不是一个明确标志 - 浏览器可以而且确实(有时是故意的,有时是无意的)谎报其来源。

    请注意,有一些像 get_browser 这样的函数会包装 HTTP_USER_AGENT 以返回一些有用的信息。

    【讨论】:

    • 这很棒。正是我想要的。现在,get_browser 看起来应该提供更多信息。但是,它对我不起作用。你能看看我的编辑,如果你发现它有问题,请告诉我?
    • 一个旁注:get_browser 不会检测访问者当前是否启用了 javascript et al,它只会返回浏览器是否支持 javascript。要检测是否启用了 javascript,只需在提交时使用 javascript 设置一个额外的表单字段,那么您实际上知道 javascript 已启用:p.
    • 请参阅注释(php.net/manual/en/function.get-browser.php):为了使其正常工作,您在 php.ini 中的 browscap 配置设置必须指向系统上 browscap.ini 文件的正确位置。
    • 我明白了。你会怎么做呢?
    • @Stephen:我没有——放弃它。试图理解browscap超出了我的范围。目前,HTTP_USER_AGENT 对我来说已经足够好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多