[英]I have a smaller project but there was a problem
[11-Jul-2020 16:30:39 America/New_York] PHP 注意:未定义索引:HTTP_ACCEPT_LANGUAGE in /home/lunagzdp/s1.lunar.run/req.ZE1BFD762321E409CEE4AC0B6E84_log 行错误:
不知道怎么解决
<?php
ini_set('default_charset', 'UTF-8');
ini_set('display_errors', true);
ini_set('error_reporting', 'E_ALL');
error_reporting(E_ALL);
session_start();
function get_client_ip(){
$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) //VestaCP na CF wypluwa [ip, ip]
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if(isset($_SERVER['REMOTE_ADDR']))
$ipaddress = $_SERVER['REMOTE_ADDR'];
else if(isset($_SERVER['HTTP_CF_CONNECTING_IP']))
$ipaddress = $_SERVER['HTTP_CF_CONNECTING_IP'];
else
$ipaddress = 's1.lunar.run';
return $ipaddress;
}
$ip = get_client_ip();
include('settings.php');
const main_table = 'players';
36 line -> $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); <-
function isMobile() {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
谢谢你的帮助!
就像@Ramiz Kongulov 所说,不同的浏览器以不同的方式发送 header 信息。 我还要补充一点,在访问数组中的元素时应该小心,因为 PHP 如果它们不可用会抛出Undefined Index
错误。 在您的应用程序中使用null 合并运算符 (??)和三元运算符 (?:)来避免此类错误。
在你的情况下,在第 36 行,你可以做这样的事情
$lang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : 'en';
您也可能会在第 38 行收到错误消息。
其内容由浏览器发送。 不同的浏览器以不同的方式发送信息。 它们可以是文本,也可以是数组。 有时他们可能根本不发送。
在您的情况下,可以通过以下方式返回默认值:
$lang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])
? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : 'en';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.