Précision authentification http
tryop
-
Super_carotte Messages postés 1420 Date d'inscription Statut Membre Dernière intervention -
Super_carotte Messages postés 1420 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai récemment commencé des cours sur l'authentification http, mais j'ai quelques problèmes de compréhension.
Je me suis donc renseigné sur php.net et j'ai vu ce morceau de code :
<?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;
} else {
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>
J'ai donc modifié le code pour qu'il puisse vérifier si le mot de passe et login sont correctes.
Voici le second code :
<?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;
} else {
if ($_SERVER['PHP_AUTH_USER'] =='Kevin' && $_SERVER['PHP_AUTH_PW'] == 'Banane')
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
else
echo "mauvais mot de passe ou nom de compte";
}
?>
Que faut'il faire dans le cas où l'utilisateur entre un mauvais mot de passe pour qu'il puisse réessayer ? (faut-il réinitialiser les variables ?)
j'ai récemment commencé des cours sur l'authentification http, mais j'ai quelques problèmes de compréhension.
Je me suis donc renseigné sur php.net et j'ai vu ce morceau de code :
<?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;
} else {
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>
J'ai donc modifié le code pour qu'il puisse vérifier si le mot de passe et login sont correctes.
Voici le second code :
<?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;
} else {
if ($_SERVER['PHP_AUTH_USER'] =='Kevin' && $_SERVER['PHP_AUTH_PW'] == 'Banane')
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
else
echo "mauvais mot de passe ou nom de compte";
}
?>
Que faut'il faire dans le cas où l'utilisateur entre un mauvais mot de passe pour qu'il puisse réessayer ? (faut-il réinitialiser les variables ?)
A voir également:
- Précision authentification http
- Http - Guide
- Http //192.168.l.l - Guide
- Authentification transcash ✓ - Forum Consommation & Internet
- Double authentification google - Guide
- Http //cast2tv.net/ - Forum TV & Vidéo
11 réponses
tu met le code de ton formulaire d'indentification dans une page. (login.php par exemple)
Et dans ton code tu rajoute une ligne comme ceci:
Et dans ton code tu rajoute une ligne comme ceci:
<?phpComme ça l'utilisateur verra le message d'erreure et aura a nouveau le formulaire qui s'affiche pour pouvoir réésayer.
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;
} else {
if ($_SERVER['PHP_AUTH_USER'] =='Kevin' && $_SERVER['PHP_AUTH_PW'] == 'Banane')
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
else
echo "mauvais mot de passe ou nom de compte";
include('login.php');
}
?>
oui mais si je mets un mauvais mot de passe, la variable PHP_AUTH_USER est quand même enregistré, impossible de réutiliser l'authentification http, ça me met automatiquement "mauvais mot de passe ...."
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Au temps pour moi.
Je t'ai fait ce petit code qui devrait t'aider à comprendre:
Si tu as un souci, préviens moi
Je t'ai fait ce petit code qui devrait t'aider à comprendre:
<?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') {
echo "<p>Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Votre mot de passe est {$_SERVER['PHP_AUTH_PW']}.</p>";
}else{
header('WWW-Authenticate: Basic realm="My Realm"');
}
?>
Si tu as un souci, préviens moi
Meme code mais organiser plus intuitivement:
<?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>";
}
?>
Ah, et pour info, je fais mes formulaire a la main (cad que je créé un formulaire moi meme, je passe pas par celui tout fait) pour l'identification. (comme beaucoup de développeur php il me semble)
Tu devrais essayer.
Tu devrais essayer.
Merci pour cette réponse je vais tester ça de suite !
Edit : j'aurais eu plus de facilité à le faire à la main que de passer par un truc tout fait, c'est juste imposé pour mon projet.
Edit : j'aurais eu plus de facilité à le faire à la main que de passer par un truc tout fait, c'est juste imposé pour mon projet.
Petite erreure dans mon code précédent.
La correction:
La correction:
<?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>";
}
?>
J'ai donc modifié ce que tu m'as marqué pour que le morceau de code aille cherché dans un fichier .txt le mot de passe et login d'un utilisateur, mais le programme me demande en boucle le login/mdp même lorsque je mets des données valides.
Voici le code modifier :
Voici le code modifier :
<?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;
}
else
{
$temp1 = md5($_SERVER['PHP_AUTH_PW']); /*vérification du mdp/ndc dans la base*/
$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);
if($flag == false)
{
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>";
}
}
?>