Détection du protocole avec php
druith
Messages postés
20
Date d'inscription
Statut
Membre
-
speedygonzales -
speedygonzales -
Bonjour, j'aurais besoin de sécuriser un partie de site en utilisant le protocole https (php + openSSL). Toutefois, je veux être sûr que le visiteur utilise une connection sécurisée. Pour cela, j'ai besoin de savoir quel protocole a été utilisé. Conaissez-vous un moyen pour déctecter cela ?
J'image que cela se fait avec un header(), mais j'ai pas trouvé...
Merci de votre aide
--
druith...
J'image que cela se fait avec un header(), mais j'ai pas trouvé...
Merci de votre aide
--
druith...
6 réponses
-
La variable systeme proposée renvoie (en tout cas en ce qui me concerne) la même information qu'on utilise HTTP ou HTTPS.
Elle me renvoie "HTTP/1.1"
Je propose plutot l'utilisation de $_SERVER['HTTPS'] qui renvoie "on" si on utilise effectivement le httpS
Sylvain.
www.cryptographp.com
www.alphpa.com -
<?php if (isset($_SERVER['HTTPS'])) { if ($_SERVER['HTTPS'] == 'on') { print "Serveur HTTPSSSS"; } else { print "Serveur HTTP"; } } else { print "Serveur HTTP"; } ?>
donne du code propre la prochaine fois ; ) -
Code souce PHP pour faire cette détection
if (isset($_SERVER['HTTPS'])) { if ($_SERVER['HTTPS'] == 'on') print "Serveur HTTPSSSS"; else print "Serveur HTTP"; } else print "Serveur HTTP"; -
j'ai trouver plus simple:
code modifier (source: https://www.php.net/manual/fr/function.strstr.php<?php $url = "http://www.test.com"; $retour = strstr($url, '://', true); // Depuis PHP 5.3.0 echo $retour; // Affiche : http ?>
il vous suffit juste de changer $url = "http://www.test.com"; par $url = $_SERVER["HTTP_REFERER"]; ou mieu si vous avez car le referer est parfois "empty" ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
if ($_SERVER["SERVER_PROTOCOL"]!="HTTPS") { header("location: https://tonsite");}Ou un truc du genre...
Bon, après, il existe un moyen plus souple, c'est de récupérer le script en cours si c'est en HTTP, et de le recharger en redirigeant sur ce meme script, mais en HTTPS. Tu peux trouver ton script courant dans les variables serveur ($_SERVER["qqch"])
Amuse toi bien !
-
j'ai trouver ceci sur le net:
<?php $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http'; print "The protocol is $protocol"; ?>
Cordialement