Détection du protocole avec php
druith
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
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
J'image que cela se fait avec un header(), mais j'ai pas trouvé...
Merci de votre aide
A voir également:
- Détection du protocole avec php
- Fonctionnement du protocole http - Guide
- Detection materiel pc - Guide
- Easy php - Télécharger - Divers Web & Internet
- Touslesdrivers detection - Télécharger - Pilotes & Matériel
- Protocole tcp udp - Guide
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
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
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" ?
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 questionif ($_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 !