Probleme PHP sur page connexion avec mysql_fetch_array()
S504
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'obtiens cette erreur quand on veut se connecter sur mon site web en developpement.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
J'aimerai savoir pourquoi j'obtiens cette erreur. Qu'est qui faut que je change pour ne plus avoir cette erreur.
Voici mon code!
J'obtiens cette erreur quand on veut se connecter sur mon site web en developpement.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
J'aimerai savoir pourquoi j'obtiens cette erreur. Qu'est qui faut que je change pour ne plus avoir cette erreur.
Voici mon code!
<form method="post" action="connexion.php"> <fieldset> <legend>Connexion</legend> <p> <label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br /> <label for="mdp">Mot de Passe :</label><input type="mdp" name="mdp" id="mdp" /> </p> </fieldset> <p><input type="submit" value="Connexion" /></p> </form> <?php if(!empty($_POST['pseudo']) and isset($_POST['mdp'])) { $pseudo = $_POST['pseudo']; $mdp = $_POST['mdp']; mysql_connect('localhost','root',''); mysql_select_db('bd_brunomercille'); $requete = "SELECT peusdo, mdp "; $requete .= "FROM tbl_admin "; $requete .= "WHERE pseudo='".$pseudo."' AND mdp = '".$mdp."' "; $sql = mysql_query($requete); while($ligne = mysql_fetch_array($sql)) { if($ligne['pseudo'] == $pseudo and $ligne['mdp']== $mdp) { session_start(); // on ouvre une session $_SESSION['pseudo'] = $ligne['pseudo']; $_SESSION['mdp'] = $ligne['mdp']; echo "vous vous êtes bien connectés"; } else { echo "Vous avez fait une erreur lors de la saisie du pseudo et du mot de passe, recommencez:"; } } } else { echo "Vous n'avez pas remplis un des champs, recommencez"; }
A voir également:
- Probleme PHP sur page connexion avec mysql_fetch_array()
- Gmail connexion - Guide
- Comment supprimer une page sur word - Guide
- Imprimer tableau excel sur une page - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
- Site inaccessible n'autorise pas la connexion - Guide
1 réponse
Bonjour,
Déjà.. il serait bien de placer la connexion à ta BDD dans un fichier à part .. que tu inclueras uniquement lorsque tu en as besoin...
Cela t'évitera de devoir te retaper toutes la pages de ton site une par une.. au cas où tu aurais besoin de changer les infos de connexion à ta BDD...
Fichier : connexion_bdd.php
Ensuite.. dans ton code :
- Pas besoin de faire des $requête .= "..." .. tu peux tout écrire dans un seul et faire des retours à la ligne...
- Ajout de "or DIE" pour gérer les erreurs
- On regarde le Nb lignes retournées par la requête ... et donc.. si résultat il y a.. alors on peut se connecter... pas besoin de while...
NB : Le session_start est à placer TOUT EN HAUT de ton script .. avant même que quoi que ce soit ne soit affiché !!
NB2 : Tu utilises l'ancienne extension Mysql .. attention.. elle est considérée comme Oblsolète.
Je t'invite à lire ceci ( puis à passer à la PDO ! )
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
.
Cordialement,
Jordane
Déjà.. il serait bien de placer la connexion à ta BDD dans un fichier à part .. que tu inclueras uniquement lorsque tu en as besoin...
Cela t'évitera de devoir te retaper toutes la pages de ton site une par une.. au cas où tu aurais besoin de changer les infos de connexion à ta BDD...
Fichier : connexion_bdd.php
$host = "localhost"; $user = "root"; $pwd = ""; $base = "bd_brunomercille"; mysql_connect($host,$user,$pwd) or die('Connexion impossible : ' . mysql_error()); mysql_select_db($bdd) or die ('Impossible de sélectionner la base de données : ' . mysql_error());; ?>
Ensuite.. dans ton code :
- Pas besoin de faire des $requête .= "..." .. tu peux tout écrire dans un seul et faire des retours à la ligne...
- Ajout de "or DIE" pour gérer les erreurs
- On regarde le Nb lignes retournées par la requête ... et donc.. si résultat il y a.. alors on peut se connecter... pas besoin de while...
require_once "connexion_bdd.php"; $sql= "SELECT peusdo , mdp FROM tbl_admin WHERE pseudo='$pseudo' AND mdp = '$mdp' "; $result= mysql_query($requete) or die ("<br>Erreur dans la requête : " . mysql_error() . " <br> Requete: ".$sql); $num_rows = mysql_num_rows($result); if($num_rows == 1){ $_SESSION['pseudo'] = $ligne['pseudo']; $_SESSION['mdp'] = $ligne['mdp']; echo "vous vous êtes bien connectés"; }else { echo "Vous avez fait une erreur lors de la saisie du pseudo et du mot de passe, recommencez:"; } //fin du if $num_rows
NB : Le session_start est à placer TOUT EN HAUT de ton script .. avant même que quoi que ce soit ne soit affiché !!
NB2 : Tu utilises l'ancienne extension Mysql .. attention.. elle est considérée comme Oblsolète.
Je t'invite à lire ceci ( puis à passer à la PDO ! )
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
.
Cordialement,
Jordane