Détection du protocole avec php

Fermé
druith Messages postés 21 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 18 juin 2006 - 12 sept. 2005 à 18:10
 speedygonzales - 30 déc. 2010 à 02:30
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

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
8
speedygonzales
20 déc. 2010 à 21:42
<?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 ; )
3
PHPascal.com
20 déc. 2010 à 20:48
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";
1
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" ?
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
13 sept. 2005 à 12:27
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 !
0
speedygonzales
2 déc. 2010 à 04:50
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
0