Détection du protocole avec php

druith Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

6 réponses

Sylvain
 
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
 
<?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
 
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
speedygonzales
 
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   Statut Membre Dernière intervention   124
 
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
 
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