Как избавиться от 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"], если оно не существует.

Другие вопросы по тегам