解决代码中Undefined array key "HTTP_USER_AGENT"警告问题
解决Undefined array key "HTTP_USER_AGENT"警告的方案
问题根源
$_SERVER['HTTP_USER_AGENT']并非所有HTTP请求都会携带的头部信息——比如部分爬虫、API调用或特殊客户端请求可能不会发送User-Agent,直接访问这个未定义的数组键就会触发PHP警告。
修复代码
针对你代码中的问题行,有两种可靠的修复方式:
方式1:先检查键是否存在再使用
修改判断条件,先确认$_SERVER['HTTP_USER_AGENT']存在,再进行字符串检测:
if ( ( !isset($_SERVER['HTTP_USER_AGENT']) || strstr( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) == false ) && ( $use_object_frame == true ) ) {
方式2:使用null合并运算符预设默认值
先给User-Agent设置空字符串默认值,避免直接访问未定义的键:
// 在判断前添加这行 $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; // 修改判断条件 if ( ( strstr( $user_agent, 'MSIE' ) == false ) && ( $use_object_frame == true ) ) {
额外注意点
你的代码中$use_object_frame被默认赋值为false,所以当前这个判断条件永远不会成立,object标签部分的代码永远不会执行。如果这不是预期行为,需要检查$use_object_frame的赋值逻辑是否有误。
内容的提问来源于stack exchange,提问作者user21167050
相关产品推荐
相关产品推荐

