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()
проверяет, является ли переменная "установлена" или даже доступна для справки в этом случае. Это было бы лучшим выбором в вашем случае.