Authentification
aurad
-
Laurent G -
Laurent G -
je veux realiser un systeme d'authentification j'ai ecris le code suivant ;le login et le mot de passe sont ds une table de bd;je donne le login et le mot correct ,mais la boite de dialoge apparaît deux fois encore et enfin donne accés non authoriser;voila le scripte, si vous pouvez trouver le probleme ;
<?php
$auth=false;
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) {
$link = mysql_connect("localhost", "root", "")
or die("Could not connect");
/*echo "Connexion réussie"*/;
mysql_select_db("ged1") or die("Could not select database");
/* Exécuter des requêtes SQL */
$query = "SELECT * FROM redacteur WHERE login=\"$PHP_AUTH_USER\" AND password=\"$PHP_AUTH_PW\" ";
$resultat= mysql_query($query) or die("Query failed");
$Nombre=mysql_num_rows($resultat);
if($Nombre != 0) {
$auth=true;
}
}
if (!$auth) {
header('WWW-Authenticate: Basic realm="Private" ');
header(' HTTP /1.0 401 Unauthorized ' );
echo "accés non autoriser";
exit;
}
else {
echo" accés authoriser";
}
?>
<?php
$auth=false;
if (isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) {
$link = mysql_connect("localhost", "root", "")
or die("Could not connect");
/*echo "Connexion réussie"*/;
mysql_select_db("ged1") or die("Could not select database");
/* Exécuter des requêtes SQL */
$query = "SELECT * FROM redacteur WHERE login=\"$PHP_AUTH_USER\" AND password=\"$PHP_AUTH_PW\" ";
$resultat= mysql_query($query) or die("Query failed");
$Nombre=mysql_num_rows($resultat);
if($Nombre != 0) {
$auth=true;
}
}
if (!$auth) {
header('WWW-Authenticate: Basic realm="Private" ');
header(' HTTP /1.0 401 Unauthorized ' );
echo "accés non autoriser";
exit;
}
else {
echo" accés authoriser";
}
?>
1 réponse
-
G pas compris grand chose a ton code (désolé).mais j'ai une autre solution : La session :
<!-- Page permettant d'ouvrir une session -->
<?php if ($envoi != "") { $base = "webloc"; $conn = mysql_connect("localhost","root","") OR DIE ("Connexion impossible"); mysql_select_db($base) OR DIE ("Base inconnue"); if ($envoi == "2") { $new = mysql_query("INSERT INTO client(idClient) VALUES(NULL)") OR DIE("Nouveau client impossible"); $idCli = mysql_insert_id($conn); } $result = mysql_query("select * FROM client where idClient='$idCli' AND mot_de_passe = '$motPass'"); $nb_result= mysql_num_rows($result); if ($nb_result != 0) { session_start(); $cli = mysql_fetch_object($result); session_register("cli"); $retour="Client.php?"; header ("Location: $retour"); } else { $message = "utilisateur inconnu"; } } ?>
<!-- Page principale --><?php session_start(); if (!session_is_registered("cli")) header("Location: Identification.php?numReserv=$numReserv&LD_VilleDep=$LD_VilleDep&LD_VilleArr=$LD_VilleArr&modif=0&immatriculation=$immatriculation&dateD=$dateD&dateR=$dateR&retour=CA_Client.php&envoi&message");
explication :
si la personne ne s'est pas identifiée : la page d'identification s'ouvre. Puis on revient sur la page principale