CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Warning: mysql_num_rows()

[JV]test360
[JV]test360
Niveau 10
18 avril 2013 à 15:13:39

Bonjours,
je créer actuellement un site, où il y aura un espace membre.
Là, j'en suis a l'activation du compte, par celui qui c'est inscris.
J'ai donc mis, que quand il s'inscrit, dans la BDD, il y a écris 0 (active) et une fois valider, "1".

Mais une fois que l’utilisateur a cliquer sur le lien, il arrive sur la page active.php

Mais, il a cette erreur :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in active.php on line 13
Lien invalide, contactez le Webmaster.

Le code :

<?php

if(isset($_GET['id'])&&isset($_GET['code']))
{
$id = $_GET['id'];
$code=$_GET['code'];
$connect = mysql_connect('#','#','#MDP');
mysql_select_db('u285140355_membres');

$query=mysql_query("SELECT * FROM users WHERE id='$id'AND token='$code'");

$rows = mysql_num_rows($query);
if($rows==1)
{
$act=mysql_query("UPDATE users SET active='1' WHERE id='$id'");
die("Votre compte a bien été activé vous pouvez vous<a href='login.php' connecter</a>");
}else echo"Lien invalide, contactez le Webmaster";

}else echo"Informations introuvables";
?>

[JV]test360
[JV]test360
Niveau 10
18 avril 2013 à 17:30:07

Une idée ? :snif:

vava740
vava740
Niveau 10
18 avril 2013 à 19:21:04

C'est pourtant assez clair, l'erreur te dit que ta ressource ($query) n'est pas valide. C'est donc qu'il y a eu une erreur quand tu as appelé mysql_query pour sélectionner l'utilisateur.

http://php.net/manual/fr/function.mysql-query.php

Comme tu le vois ici cette fonction te retourne FALSE en cas d'erreur. Et il se trouve que FALSE n'est pas une ressource valide, or tu dois passer une ressource valide à la fonction mysql_num_rows.

Tu peux donc rajouter une condition après ta requête pour tester que le résultat n'est pas FALSE.

Dans le cas où $query serait FALSE, tu peux avoir le détail de l'erreur MySQL avec la fonction mysql_error.

Apparemment le problème vient du fait que tu n'as pas mis d'espace entre la quote fermante et le AND dans ta requête, mais la fonction mysql_error te le diras plus précisément que moi.

Au passage penses à échapper les variables que tu utilises dans ta requête, on peut très facilement faire une injection SQL dans l'état actuel.

[JV]test360
[JV]test360
Niveau 10
18 avril 2013 à 20:52:06

J'ai donc mis or die(mysql_error()); Et il m'affiche :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '11AND token='cdehqrABFHILPR8 at line 1

vava740
vava740
Niveau 10
18 avril 2013 à 21:04:57

"Apparemment le problème vient du fait que tu n'as pas mis d'espace entre la quote fermante et le AND dans ta requête"

[JV]test360
[JV]test360
Niveau 10
18 avril 2013 à 21:20:07

Merci beaucoup ! :oui:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment