Undefined ошибка индекса с использованием $_SERVER ['HTTPS']

Отладка бросает...

Примечание: Undefined index: HTTPS в C:\xampplite\HTDOCS\тестовый сайт\сор-содержимое\Themes\MyTheme\header.php в строке 4

Как я могу изменить свою функцию ниже, чтобы предотвратить ошибку?

function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 }

Будет ли это эквивалент?

if ( isset( $_SERVER["HTTPS"] )) {$pageURL .= "s";}

Ответы

Ответ 1

Некоторые серверы просто не устанавливают $_SERVER['HTTPS'], если запрос не защищен. Некоторые другие могут установить значение 'off'. Вам нужно будет проверить это следующим образом:

if ( isset( $_SERVER["HTTPS"] ) && strtolower( $_SERVER["HTTPS"] ) == "on" ) {
    $pageURL .= "s";
}

Ответ 2

Notice: Undefined index: HTTPS говорит, что HTTPS не является ключом в массиве $_SERVER. Он не существует, поэтому вы не можете сравнить его с "on".

isset() проверяет, является ли переменная "установлена" или даже доступна для справки в этом случае. Это было бы лучшим выбором в вашем случае.