Espace membre

Fermé
Utilisateur anonyme - Modifié par jordane45 le 1/03/2017 à 23:39
 Utilisateur anonyme - 2 mars 2017 à 19:55
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

A voir également:

5 réponses

yg_be Messages postés 23430 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 janvier 2025 Ambassadeur 1 559
1 mars 2017 à 22:03
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
yg_be Messages postés 23430 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 janvier 2025 1 559
1 mars 2017 à 22:08
Tu pourrais aussi ajouter le mot de passe dans le where, pour éviter de le vérifier ensuite.
0
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
jordane45 Messages postés 38389 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 janvier 2025 4 729
1 mars 2017 à 23:44
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
Utilisateur anonyme
2 mars 2017 à 12:07
<<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
jordane45 Messages postés 38389 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 janvier 2025 4 729
Modifié par jordane45 le 2/03/2017 à 12:22
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
2 mars 2017 à 19:55
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