Подтвердить что ты не робот

Обнаружение SSL с помощью PHP

Возможный дубликат:
Как узнать, используете ли вы HTTPS без $_SERVER ['HTTPS']

Я просмотрел веб-страницы, чтобы узнать, использует ли сервер HTTPS-соединение, но ни один сайт, похоже, не получил всех ответов (и некоторых других). Какие именно способы определить, использует ли сервер HTTPS-соединение с PHP? Мне нужно знать несколько способов обнаружения SSL, поскольку некоторые из моих сценариев перераспределяются, а разные серверы обрабатывают разные вещи.

4b9b3361

Ответ 1

$_SERVER['HTTPS']

Задайте непустое значение, если запрос script был запрошен через протокол HTTPS.
Примечание. Обратите внимание, что при использовании ISAPI с IIS значение будет отключено, если запрос не был выполнен по протоколу HTTPS.

http://www.php.net/manual/en/reserved.variables.server.php

Эрго, это будет делать:

if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
    // SSL connection
}

Ответ 2

Ядро WordPress is_ssl() также добавляет проверку для порта сервера:

function is_ssl() {
    if ( isset($_SERVER['HTTPS']) ) {
        if ( 'on' == strtolower($_SERVER['HTTPS']) )
            return true;
        if ( '1' == $_SERVER['HTTPS'] )
            return true;
    } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
        return true;
    }
    return false;
}