web-dev-qa-db-fra.com

Détection de SSL avec PHP

Duplicata possible:
Comment savoir si vous utilisez HTTPS sans $ _SERVER ['HTTPS']

J'ai cherché sur le Web des moyens de détecter si un serveur utilise une connexion HTTPS, mais aucun site ne semblait avoir toutes les réponses (et quelques-unes différentes). Quelles sont exactement toutes les façons de détecter si un serveur utilise une connexion HTTPS avec PHP? J'ai besoin de connaître plusieurs façons de détecter SSL car certains de mes scripts sont redistribués et divers serveurs gèrent les choses différemment.

26
Phillip

$_SERVER['HTTPS']

Définissez une valeur non vide si le script a été interrogé via le protocole HTTPS.
Remarque: Notez que lorsque vous utilisez ISAPI avec IIS, la valeur sera désactivée si la demande n'a pas été effectuée via le protocole HTTPS.

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

Ergo, cela fera:

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

La fonction principale de WordPress is_ssl () ajoute également une vérification du port du serveur:

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;
}
16
yoavf