【问题标题】:php notice undefined index http_host in $GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST']php 注意 $GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST'] 中未定义的索引 http_host
【发布时间】:2012-07-06 13:25:00
【问题描述】:

在最近一次 php 版本更新后,我突然从 php 收到此通知。它用于多个地方(特别是我的 htmlMimeMail 类)。

代码是:$mail->setSMTPParams('*mail.xxxx.xxx*', 26, $GLOBALS['HTTP_SERVER_VARS']['HTTP_HOST'], 1, '*email-name*', '*email-password*');

通知为:Undefined index: HTTP_HOST in xxxx on line xxx

代码似乎运行良好,但通知很烦人,我希望使用通知是有原因的。如何清除此通知?

【问题讨论】:

  • 顺便说一句:PHP版本是5.2.17,宿主服务器是linux
  • 通过强制变量进入HTTP_HOST,通知被清除,但通知仍然出现在其他使用'&'通过引用传递的函数中。显然这是预测的,现在发出通知。我不确定这是否意味着函数调用不再需要通过引用传递,并且在 v.5.2.17+ 中不再损害安全性。有什么想法吗?

标签: php http host


【解决方案1】:

$HTTP_SERVER_VARS 已弃用;使用$_SERVER:

$mail->setSMTPParams('*mail.xxxx.xxx*', 26, $_SERVER['HTTP_HOST'], 1,
    '*email-name*', '*email-password*');

【讨论】:

  • @mjpsr11:您是通过 Web 服务器运行脚本还是作为 CLI 脚本运行?
  • @mjpsr11:我建议print_ring 变量$_SERVER 看看那里有什么信息。也许您可以将输出粘贴到您的原始问题中。
  • @Tom Cooper:HTTP_HOST 的响应是我预期的网址。该通知仅在从 cron 作业运行我的脚本时出现。
  • @mjpsr11:一个 cron 作业意味着它当时没有通过 Web 服务器运行。您必须以其他方式将该变量提供给脚本。
  • @Tom Cooper:过去 2 年它工作得很好,现在在 PHP 版本升级后,我收到了这个通知。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 2015-03-31
  • 2018-07-07
  • 2013-07-19
  • 1970-01-01
  • 2012-09-03
  • 2014-04-14
  • 1970-01-01
相关资源
最近更新 更多