Authentification http

Esteban25
Invité n'ayant pas de compte PHPfrance

08 mars 2014, 14:12

Bonjour, j'ai récemment commencé les authentification http mais je ne comprends pas grand chose au déroulement du code.
Quelqu'un peut m'expliquer ce qu'il se passe exactement ici :
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
    exit;
} elseif ($_SERVER['PHP_AUTH_USER'] != 'banane' || $_SERVER['PHP_AUTH_PW'] != 'orange') {	
    header('WWW-Authenticate: Basic realm="My Realm"');
}else{
	echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>

Shadors8586
Invité n'ayant pas de compte PHPfrance

08 mars 2014, 14:18

Tu ne peut pas mettre du PHP dans ton HTML, tu doit passer par un formulaire HTML <form action="url_de_ta_page_php_qui_executera_l'autentification" method="POST"></form> et une page PHP qui executera ton formulaire (chercher l'utilisateur et le mot de passe dans une base de donné ou un fichier .htaccess

Esteban25
Invité n'ayant pas de compte PHPfrance

08 mars 2014, 15:07

Pourquoi tu me parles de ça ? je ne vois pas le rapport.
J'aimerais juste comprendre le déroulement de ce code.

Eléphant du PHP | 243 Messages

08 mars 2014, 16:32

Bonjour,

Jette un coup d’œil sur ce tuto http://php.net/manual/fr/features.http-auth.php
Si tu as d'autres questions, je reste dans le coin.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Esteban25
Invité n'ayant pas de compte PHPfrance

08 mars 2014, 17:36

Déjà lu, j'aimerais juste savoir où dois-je insérer mon code qui va aller vérifier dans un fichier .txt si le mdp et login sont correctes.
L'authentification php :
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Texte utilisé si le visiteur utilise le bouton d\'annulation';
    exit;
} elseif ($_SERVER['PHP_AUTH_USER'] != 'banane' || $_SERVER['PHP_AUTH_PW'] != 'orange') {	// vérification à la place de cette ligne
    header('WWW-Authenticate: Basic realm="My Realm"');
}else{
	echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
	
}
Le morceau de code en question qui va permettre de vérifier dans le .txt :
$temp1 = md5($_SERVER['PHP_AUTH_PW']); //vérification du mdp/ndc dans le fichier .txt si flag = false alors le mdp ou login est incorrecte.
	$flag = false; 
	$Identifiantmdp = fopen("mdpndc.txt","r");
	while ($ligne=fgets($Identifiantmdp) and $flag = false)
		{
		$temp = explode(";",$ligne);
		if ($_SERVER['PHP_AUTH_USER'] == $temp[0] && $temp1 == $temp[1])
			{
			$flag = True;	
			}
                }
                fclose($Identifiantmdp);
		
?>