Problème d'authentification à une base de données
Zhelos
-
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà je cherches à créer une page d'authentification simple permettant de rentrer dans "administration.php" si les identifiants rentrés sont corrects ou bien de retourner un message d'erreur si ce n'est pas le cas ou que l'un des champs est vide.
Or, il s'avère que j'ai créer une page qui ne me donne aucune erreur, seulement quand je rentre un identifiant correct, il me sort quand même que les identifiants sont incorrects au lieu de m'amener sur la page recherchée (administration.php).
J'espérais donc trouver de l'aide ici. Je poste donc mon code !
Merci d'avance pour l'aide apportée !
Voilà je cherches à créer une page d'authentification simple permettant de rentrer dans "administration.php" si les identifiants rentrés sont corrects ou bien de retourner un message d'erreur si ce n'est pas le cas ou que l'un des champs est vide.
Or, il s'avère que j'ai créer une page qui ne me donne aucune erreur, seulement quand je rentre un identifiant correct, il me sort quand même que les identifiants sont incorrects au lieu de m'amener sur la page recherchée (administration.php).
J'espérais donc trouver de l'aide ici. Je poste donc mon code !
<?php
$identifiant = $_GET["login"];
$pass = $_GET["pass"];
$verif = true;
if($identifiant == '')
{
echo 'Veuillez remplir le champ de l\'identifiant !<br />';
$verif = false;
}
if($pass == '')
{
echo 'Veuillez remplir le champ du mot de passe !<br />';
$verif = false;
}
if ($verif == false)
{
echo '<br /><a href="adm.php">Retour a la page d\'identification.</a>';
}
else
{
session_start();
include'connexion_mysql.php';
if($connexion)
{
$req = "select count(*) from utilisateur where login ='".$_GET['login']."' and mdp = md5('".$_GET['pass']."')";
$res = mysqli_query($connexion, $req);
$tab = mysqli_num_rows($res);
if($tab[0])
{
$_SESSION['id'] = $tab[0];
header('Location: administration.php');
}
else
{
echo 'Au moins un des deux champs est incorrect, veuillez réessayer. <br /><br /> <a href="adm.php">Retour a la page d\'identification.</a>';
}
mysqli_close($connexion);
}
}
?>
Merci d'avance pour l'aide apportée !
A voir également:
- Problème d'authentification à une base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Double authentification google - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
2 réponses
Salut,
Selon la doc PHP : https://www.php.net/manual/fr/mysqli-result.num-rows.php
mysqli_num_rows() renvoit un entier et non un tableau.
Je t'ai mis sur la piste, tu n'as plus qu'à corriger..
;)
Selon la doc PHP : https://www.php.net/manual/fr/mysqli-result.num-rows.php
mysqli_num_rows() renvoit un entier et non un tableau.
Je t'ai mis sur la piste, tu n'as plus qu'à corriger..
;)
Ta requête est en elle même problématique, tu fais un select du nombre de ligne (Count(*)) que tu rempli ensuite dans une session en tant qu'id, ce n'est pas logique, tu devrait faire un select qui récupère l'id, ensuite tu verifié via mysqli_num_rows qu'il y a un résultat et pour finir tu fait ton fetch (fetch_row te donnera $tab[0], fetch_array te donnera $tab["id"]).
PS : ta sécurité est proche de zéro, si tu utilise le pseudo
PS : ta sécurité est proche de zéro, si tu utilise le pseudo
' or 1=1#tu te connectera sans mot de passe.
J'ai donc recherché quelle fonction renvoyait un tableau et je suis tombé sur mysqli_fetch_array mais mon problème n'est toujours pas résolu :/