Questions/Reponses

Signaler
Messages postés
1
Date d'inscription
vendredi 13 mars 2020
Statut
Membre
Dernière intervention
17 mars 2020
-
Messages postés
28123
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 avril 2020
-
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.
Messages postés
28123
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 avril 2020
2 255
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
http://www.commentcamarche.net/faq/48399-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

.

Cordialement,
Jordane