我正在为我的HSC软件设计和开发主要项目开发一个公司网站。我有一段代码来检查MySQL数据库中是否支持用户的浏览器,如果没有,则向他们显示警告并记录他们的浏览器类型。 这段代码使用get_browser函数(几乎)完美地工作,显示一条看起来像这样的消息:
我们检测到您正在使用Internet Explorer查看此站点。我们还没有测试过 这个浏览器并不能保证完全支持。为了最好的结果我们 推荐谷歌浏览器。
然而,由于httpd.conf中的一些乱码和一些服务器重启,此代码不再有效。它将浏览器视为“”。 (只是一个空字符串) 为了找出问题的根源,我在下面放了一个快速的调试行:
echo $_SERVER['HTTP_USER_AGENT'];
由于某些原因,这会在每个浏览器中返回以下内容:
Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 536.5(KHTML,like Gecko)Chrome / 19.0.1084.56 Safari / 536.5
我会想到这就是问题的原因,有谁知道为什么会这样?
答案 0 :(得分:0)
再一次,我的问题的解决方案非常具体。 问题出在这里:
我使用WebFaction进行托管,他们有一个应用程序,网站和域设置,这很棒,但太复杂,无法在此完全解释。基本上,我一直在成功运行网站,直到有一天httpd可执行文件随机消失。在与WebFaction的支持团队交谈之后,我决定重建Apache并将其放入新的应用程序中。完成此操作后,我的服务器已修复,并在之后的几周内继续顺利运行。几天前,我决定是时候清除旧的应用程序(它仍处于非活动状态但仍在服务器上)以重新获得一些磁盘空间。我没有意识到的是我的新应用程序中的PHP.ini引用了旧应用程序中的browscap.ini。一旦删除它就再也找不到了,返回错误。当我去PHP.ini检查我是否有正确的设置时,我认识到引用我的旧应用程序的部分,因为我已经习惯了它,并且看到最后的位仍然是正确的,所以假设问题不可能在那里。
TL; DR,只要没有其他人搞砸了迁移,他们就不会有这个问题。