Espace membre

Utilisateur anonyme -  
 Utilisateur anonyme -
salut tous: Mercie pour votre aide d'avance
voici le code que php de ma page connexion.php le problème est la suivante ,le serveur m'envoi un message d’erreur ( PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given)

le code php:
/////////////
}
else
{
 $ousername = '';
 //On verifie si le formulaire a ete envoye
 if(isset($_POST['username'], $_POST['password']))
 {
  //On echappe les variables pour pouvoir les mettre dans des requetes SQL
  if(get_magic_quotes_gpc())
  {
   $ousername = stripslashes($_POST['username']);
   $[/contents/1347-wsh-objet-wshnetwork username] = mysql_real_escape_string(stripslashes($_POST['username']));
   $password = stripslashes($_POST['password']);
  }
  else
  {
   $username = mysql_real_escape_string($_POST['username']);
   $password = $_POST['password'];
  }
  //On recupere le mot de passe de lutilisateur
  $req = mysql_query('select password,id from users where username="'.$username.'"');
  $dn = mysql_fetch_array($req);
  //On le compare a celui quil a entre et on verifie si le membre existe
  if($dn['password']==$password and mysql_num_rows($req)>0)
  {
   //Si le mot de passe es bon, on ne vas pas afficher le formulaire
   $form = false;
   //On enregistre son pseudo dans la session username et son identifiant dans la session userid
   $_SESSION['username'] = $_POST['username'];
   $_SESSION['userid'] = $dn['id'];


//////

EDIT : Ajout des balises de code

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, après
    $req = mysql_query
    , tu dois vérifier que $req n'est pas faux. si il est faux, la requête a retourné une erreur, tu ne peux pas faire mysql_fetch_array.
    je te suggère:
    $sql='select password,id from users where username="'.$username.'"'
    $req = mysql_query($sql); 
    if (!$req)
    {
        echo "erreur sql: ".$sql
    }
    else
    {
         $dn = mysql_fetch_array($req);
         ....
    }
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      Tu pourrais aussi ajouter le mot de passe dans le where, pour éviter de le vérifier ensuite.
      0
  2. Utilisateur anonyme
     
    le code que j-ai mis et la suivante :est même message d'erreur

    <php>
    
    //Si lutilisateur est connecte, on le deconecte
    if(isset($_SESSION['username']))
    {
     //On le deconecte en supprimant simplement les sessions username et userid
     unset($_SESSION['username'], $_SESSION['userid']);
    
    <php>
    <div class="message">Vous avez bien été déconnecté.<br />
    <a href="<?php echo $url_home; ?>">Accueil</a></div>
    
    <php>
    }
    else
    {
     $ousername = '';
     //On verifie si le formulaire a ete envoye
     if(isset($_POST['username'], $_POST['password']))
     {
      //On echappe les variables pour pouvoir les mettre dans des requetes SQL
      if(get_magic_quotes_gpc())
      {
       $ousername = stripslashes($_POST['username']);
       $username = mysql_real_escape_string(stripslashes($_POST['username']));
       $password = stripslashes($_POST['password']);
      }
      else
      {
       $username = mysql_real_escape_string($_POST['username']);
       $password = $_POST['password'];
      }
      //On recupere le mot de passe de lutilisateur
      $sql='select password,id from users where username="'.$username.'"'
    $req = mysql_query($sql); 
    if (!$req)
    {
        echo "erreur sql: ".$sql
    }
    else
    {
      $dn = mysql_fetch_array($req);
      //On le compare a celui quil a entre et on verifie si le membre existe
      if($dn['password']==$password and mysql_num_rows($req)>0)
      {
       //Si le mot de passe es bon, on ne vas pas afficher le formulaire
       $form = false;
       //On enregistre son pseudo dans la session username et son identifiant dans la session userid
       $_SESSION['username'] = $_POST['username'];
       $_SESSION['userid'] = $dn['id'];
    
    
    
    } }  
    
    
    }
      else
      {
       //Sinon, on indique que la combinaison nest pas bonne
       $form = true;
       $message = 'La combinaison que vous avez entré n\'est pas bonne.';
      }
     }
     else
     {
      $form = true;
     }
     if($form)
     {
      //On affiche un message sil y a lieu
     if(isset($message))
     {
      echo '<div class="message">'.$message.'</div>';
     }
     //On affiche le formulaire
    
    

    EDIT : Ajout des balises de code !

    //////////Mercie bien/////////
    0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    1 - A l'avenir, merci d'utiliser les balises de code pour poster ton code sur le forum. (j'ai édité tes messages pour les ajouter)
    • icone en forme de <> dans la barre de menu.


    2 - Tu utilises l'ancienne extension mysql considérée comme obsolète.
    Je t'invite vivement à passer à mysqli ou à pdo.
    => https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    3 - Si tu passes à PDO, voici un exemple de code qui pourrait te servir :
    https://forums.commentcamarche.net/forum/affich-34340900-login-password-php#7

    0
  4. Utilisateur anonyme
     
    <<Tu utilises l'ancienne extension mysql considérée comme obsolète.>>
    est ce que c'est possible que j'utilise ce code en modifiant les paramètres panel du serveur
    Mercie bien....
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Quel code ? celui que je t'ai donné ou le "tient" ??
      Qu'est-ce que tu appelles : "paramètres panel du serveur" ??

      Merci de bien vouloir faire des efforts dans dans la rédaction de tes questions en y mettant le minimum de détails nécessaire à notre compréhension.......
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    mes salutation
    je parle du code que j'ai donné ;
    pour ma deuxième question est ce que c'est possible de faire des modification dans les paramètre cpanel --pour sélectionner une version de php pour que mon code que j'ai mis soit correcte
    j’espère bien que mon aidé est claire
    0