numrows error

numrows error - PHP - Programmation

Marsh Posté le 09-12-2002 à 17:00:02    

Voila j'ai fait un ptit script tout simple de connection en m'inspirant de je ne sait plus quel site mais malheuresement j'ai une erreurs
 
Voici le script
 

//connection
require("connect.php" );
$connect=mysql_connect(SERVEUR, NOM, PASSE);
mysql_select_db(BASE, $connect);
//requete
$req="SELECT * FROM User WHERE pseudo=$pseudo and password=$password";
$que=mysql_query($req);
$row=mysql_numrows($que);
if (!$row)
 {
  include("menu_principal.php" );
  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  <center>';
  echo "Bad entry !!";
 }
else
 {
  session_start();
  session_register("pseudo" );
  include("menu_principal.php" );
  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  <center>';
  echo "Welcome $pseudo";
  $sess_name=session_name();
  $sess_id=session_id();
 }


 
erreur :

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in login.php on line 9

Le ligne 9 est celle du numrows :)

Reply

Marsh Posté le 09-12-2002 à 17:00:02   

Reply

Marsh Posté le 09-12-2002 à 17:01:33    

y'a une erreur dans ta requete (au pif, des guillemets qui manquent autour de $pseudo et $password)


Message édité par lorill le 09-12-2002 à 17:01:50
Reply

Marsh Posté le 09-12-2002 à 17:03:15    

Pourtant j'ai repris ca du site php debutant
 

$sql = "SELECT * FROM membres WHERE login=$login and pass=$pass";  
 

:fou:

Reply

Marsh Posté le 09-12-2002 à 17:05:24    

essaye quand même  

Code :
  1. $sql = "SELECT * FROM membres WHERE login='$login' and pass='$pass'";


 
c'est ptet pas ca l'erreur, mais ca peut pas faire de mal

Reply

Marsh Posté le 09-12-2002 à 17:07:35    

ha ben c t ca :)
 
merchi phpdebutant :fou:

Reply

Marsh Posté le 09-12-2002 à 17:08:17    

chacal_one333 a écrit :

Pourtant j'ai repris ca du site php debutant
 

$sql = "SELECT * FROM membres WHERE login=$login and pass=$pass";  
 

:fou:  

C'est bien une façon de faire de débutant.
Le fait de mettre des ".$var." est plus propre et évite surtout des erreurs telles qu'une mauvaise interprétation du texte par le compilateur (ca m'est arrivé) quand t'as du texte colé au nom de la variable ainsi qu'une non interprétation du $var comme une variable si tu délimites à l'aide de '.
Mais sinon, ca marche.
 
Vérifie que login et pass ne soit pas des chaines de caractères (zones de type char, varchar, text) auquel cas il faut que tu mette un \" avant et après le nom de la variable (colé au nom de la variable).

Reply

Marsh Posté le 09-12-2002 à 17:09:54    

omega2 a écrit :


Vérifie que login et pass ne soit pas des chaines de caractères (zones de type char, varchar, text) auquel cas il faut que tu mette un \" avant et après le nom de la variable (colé au nom de la variable).


des ' s'il te plait. je sais bien que MySQL prends les deux, mais le standard SQL c'est le guillemet simple.

Reply

Marsh Posté le 09-12-2002 à 17:12:32    

lorill a écrit :


des ' s'il te plait. je sais bien que MySQL prends les deux, mais le standard SQL c'est le guillemet simple.

Ca, je savais pas, j'ai jamais eu de problème que ce soit sous mysql ou sybase (pas essayé d'autres bases de données)

Reply

Marsh Posté le 09-12-2002 à 17:13:37    

Voui mon pass et login sont de type varchar :(
 
mon code veut pas marcher il em dit sans arret bad entry !!
 

<?php
//connection
require("connect.php" );
$connect=mysql_connect(SERVEUR, NOM, PASSE);
mysql_select_db(BASE, $connect);
//requete
$req="SELECT * FROM User WHERE pseudo=\"$pseudo\" and password=\"$password\"";
$que=mysql_query($req);
$row=mysql_numrows($que);
if (!$row)
 {
  include("menu_principal.php" );
  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  <center>';
  echo "Bad entry !!";
  echo '</td>';
  include("bas.php" );
  exit;
 }
else
 {
  session_start();
  session_register("pseudo" );
  include("menu_principal.php" );
  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  <center>';
  echo "Welcome $pseudo";
  echo '</td>';
  include("bas.php" );  
  $sess_name=session_name();
  $sess_id=session_id();
 }
 
?>


Message édité par Profil supprimé le 09-12-2002 à 17:14:55
Reply

Marsh Posté le 09-12-2002 à 17:41:05    

svp qqun sait pk il m'afficher tjr bad entry !! alors que mon pass/pseud est bon?

Reply

Marsh Posté le 09-12-2002 à 17:41:05   

Reply

Marsh Posté le 09-12-2002 à 19:56:37    

Si on avait pas eu une coupure du net tout à l'heure, je t'aurais déjà répondus (le message était tapé, mais pas pu partir)
Bon, les raisons possibles :
mauvais pseudo (c'est case sentive)
mauvais mot de passe (c'est case sentive)
mot de passe cripté au moment où tu le sauvegardes dans la base puis comparé au mot de passe décripté
 
Voilà les erreurs comises le plus souvent.

Reply

Marsh Posté le 09-12-2002 à 19:58:32    

le pass cripté spapossible il l'set pas dans ma db.
Sinon case sensitive ca veut dire que ca respecte les maj et min?

Reply

Marsh Posté le 09-12-2002 à 20:25:29    

chacal_one333 a écrit :

le pass cripté spapossible il l'set pas dans ma db.
Sinon case sensitive ca veut dire que ca respecte les maj et min?

Voilà. ;)
Ainsi que les accents. :)

Reply

Marsh Posté le 09-12-2002 à 20:26:44    

ben pourtrant je respecte bien les maj et min de mon nom et de mon pass :/

Reply

Marsh Posté le 09-12-2002 à 20:41:23    

chacal_one333 a écrit :

ben pourtrant je respecte bien les maj et min de mon nom et de mon pass :/

Alors là, je vois pas.
Peut être des espaces au début ou à la fin d'une valeurs ou un autre caractères du genre.
Sinon, c'est vraiment bizare.

Reply

Marsh Posté le 09-12-2002 à 22:00:41    

Fatal error: open(O_RDWR) failed for session file. The error is No such file or directory (2). Please consult http://support.free.fr/web/php/php4.html in login.php on line 22
 
Fatal error: open(O_RDWR) failed for session file. The error is No such file or directory (2). Please consult http://support.free.fr/web/php/php4.html in your script on line 0
 
 
 :??:  :??:

Reply

Marsh Posté le 10-12-2002 à 00:32:54    


jai le meme probleme mais chez moi en local, faut que je le resolve, donc ton cas.
je vois : Please consult http://support.free.fr/web/php/php4.html
donc jy vais, apparemment c sur les sessions donc chapitres sessions et :
 
Les sessions  
 
Les sessions sont un moyen pour conserver des informations pendant une visite. PHP4 inclue un 'gestionnaire de session' simplifiant le mécanisme.  
 
Le gestionnaire de session est activé sur Free. Par défaut, il s'agit des sessions 'fichiers' mais vous pouvez bien sûr développer votre propre systême.  
 
Afin de permettre une gestion transparente des sessions, l'option --enable-trans-sid est activée. Elle permet une réécriture des URLs ou l'envoi de cookies permettant de suivre votre visiteur.  
 
important : Pour que vos sessions 'fichiers' (mode par défaut) fonctionnent, vous devez créer un répertoire "sessions" (en minuscules sans les guillemets) à la racine de votre site Web (ou du cas échéant, de votre site Web secondaire). Sinon un message d'erreur vous signalant l'impossibilite de sauvegarder les sessions apparaitra.
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed