Questions/Reponses

Fermé
ibrahimkhalil.yi Messages postés 4 Date d'inscription vendredi 13 mars 2020 Statut Membre Dernière intervention 7 septembre 2021 - Modifié le 17 mars 2020 à 12:18
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 17 mars 2020 à 12:26
Bonjour à tous,
j'ai un petit probleme: j'arrive pas a me connecter avec mon login et mot de passe de l'utilisateur
Apparement l'erreur se trouve sur $nb=mysqli_fetch_array
le code est là :

<?php
//session_start();
/*****Verification du mot de passe ****/
if(isset($_POST['mdp'])){
if($_POST['pseudo']!="" and $_POST['mdp']!=""){
 $pseudo=$_POST['pseudo'];
    $mdp=$_POST['mdp'];
 
 $nb=mysqli_fetch_array($con->query("select count(*) as nb,type,Num from login where pseudo='$pseudo' and passe='$mdp'"));
 if($nb['nb']==1){
  if($nb['type']=="etudiant")
   $_SESSION['etudiant']=$nb['Num'];
  else if($nb['type']=="prof")
   $_SESSION['prof']=$nb['Num'];
  else if($nb['type']=="admin")
   $_SESSION['admin']=$nb['Num'];
 }
 else{
 ?> 
<SCRIPT LANGUAGE="Javascript">alert("Login ou mot de passe incorrect");</SCRIPT


EDIT : Ajout des balises de code

Merci Cordialement

2 réponses

Salut,
déjà il y a une erreur ici:
else{
?>

Si vous ouvrez une instruction(else) et que vous dites de fermer le programme sans fermer l'instruction ça n'ira pas.
On peut faire ce genre de choses avec un echo suivit de HTML car il ne s'agit que de chaînes de caractères, ici c'est une instruction qui n'est pas écrite correctement...curieux que vous ne voyez pas l'erreur s'afficher.

Regardez les erreurs lignes par ligne déjà , ça peut vous aider.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 17 mars 2020 à 12:26
Bonjour,

Déjà, à l'avenir, merci d'utiliser les balises de code pour poster ton code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Ensuite, commence par activer l'affichage des erreurs PHP et applique les divers conseils donnés ici
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


On remarque également que :
- Le démarrage des SESSIONS n'est pas fait (en commentaire )
- La connexion à la bdd n'est pas présent

Tu mélanges l'écriture "objet" et "procédurale" de ton mysqli..... il faut éviter !

Ta requête n'est pas correcte. Tu ne peux pas avoir.. et le "count" et le détail.
Soit tu fais deux requêtes différentes... soit tu changes ta façon de gérer ton php.

Evite de chainer les instructions
$nb=mysqli_fetch_array($con->query("select count(*) as nb,type,Num from login where pseudo='$pseudo' and passe='$mdp'"));

A remplacer par
$sql = "select `type`,Num 
             from login 
            where pseudo='$pseudo' and passe='$mdp' ";
$res = $con->query($sql);
if (!$res) {
   printf("Errormessage: %s\n", $con->error);
   exit;
}
$row = $res ->fetch_array(MYSQLI_ASSOC);


On voit également que ton mot de passe n'est pas "crypté" (Hashé )... donc aucune sécurité...
Renseignes toi sur les fonctions
https://www.php.net/manual/fr/function.password-hash.php
https://www.php.net/manual/fr/function.password-verify.php

.

0