Как избавиться от PHP Примечание: неопределенный индекс: HTTPS в X в строке 123
Я только что обнаружил, что у меня есть тысячи таких ошибок, происходящих из двух одинаковых файлов.
Я удалил много ошибок, используя isset
, но я не могу понять, как удалить последние две ошибки. Может быть, вы, ребята, можете мне помочь.
PHP Notice: Undefined index: HTTPS on /xxx/xxx/xxx.php on line 123
Код из первого файла PHP, который генерирует ошибку:
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
Точнее эта строка:
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
А также
if (isset($tag)) {
$tag = htmlspecialchars($_REQUEST['tag'], ENT_QUOTES);
}
1 ответ
Решение
Ты можешь измениться:
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
чтобы:
if (array_key_exists('HTTPS', $_SERVER) && $_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
http://php.net/array_key_exists возвращает логическое значение. Поскольку я сначала проверяю его и использую &&, оператор if завершит работу, прежде чем проверять значение $_SERVER["HTTPS"], если оно не существует.