Bonsoir,

Je suis en train de mettre en place un système de connexion, mais mysql me renvoi une erreur que je ne comprend pas.

Je vous met mon code:

<?php
require("../connexion.php");
//Gestion erreur
$err_login = 0;
$err_psw = 0;
$nb_err = 0;
//Déclaration
$login = $_POST'login'];
$psw = $_POST'psw'];
if(empty($_POST'login'])) //Si champ login vide
{
    $err_login=1;   
    $nb_err++;
    echo "Champ login vide<br />";
}
if(empty($_POST'psw'])) //Si champ mot de passe vide
{
    $err_psw=1; 
    $nb_err++;
    echo "Champ mot de passe est vide<br />";
}
if($nb_err == 0) //Si aucune erreur
{
    $requete = "SELECT * FROM utilisateur WHERE nom ='$login'";
    $result = mysql_query($requete);
    $donnee = mysql_fetch_array($result);

    if ($donnee'pass'] == md5($psw)){
        echo 'ok';
    }
    else {
        echo 'nok';
    }
}
?>

L'erreur renvoyée est :
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\taussat-maree\admin\valid-connexion.php on line 42.

En gros je souhaites tout simplement récupérer le mot de passe dans la base celons ce que l'utilisateur a entré comme login pour ensuite le comparé avec le mdp entré. Si les deux sont identiques alors on redirige vers la bonne page, sinon on renvoi une erreur.

Je vois pas ou j'aurais pu faire une erreur, même de logique. Si quelqu'un a déjà eu le cas, merci !

Brice.

2 réponses


elsen
Réponse acceptée

hello

analysons l'erreur :

( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\taussat-maree\admin\valid-connexion.php on line 42

je vais partir du principe que l'erreur parle du "mysql_fetch_array" à la ligne 31 dans ton exemple (et non 42, comme dans l'erreur : j'imagine que tu n'as pas tout copié)

que te dit il ?

expects parameter 1 to be resource, boolean given

en gros il s'attend à avoir un "resource" en paramètre 1, et là tu lui donne un "booléen". Pourquoi ?

observons ce que tu lui passe : $result
$result est fabriqué à partir de "mysql_query". Un petit tour sur la doc de mysql_query et que lis tu ? "mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur"

Vu que l'erreur dit que "mysql_fetch_array" reçoit un booléen, c'est FORCEMENT que "mysql_query" a renvoyé FALSE. Donc qu'il y a une erreur dans ta requête.

Donc déjà je te conseille d'essayer une requête simple en t'affichant le dump php, juste pour voir si ta base marche bien.

++

A tout hasard, est ce que ta table utilisateur contient déjà des entrées ? (même bidons ... )