problèmes de base de donnée / $_GET

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problèmes de base de donnée / $_GET

Re: problèmes de base de donnée / $_GET

par Aureusms » 23 avr. 2011, 16:50

Moi j'ai suivi les conseils d'un membre de phpFrance en utilisant plutôt error_reporting ($nombre); mais les resultats est souvent la même chose...

Re: problèmes de base de donnée / $_GET

par popy » 21 avr. 2011, 13:13

Je fait du typo3, qui fait (par defaut en mode dev) error_reporting(E_ALL & ~E_NOTICE);

Re: problèmes de base de donnée / $_GET

par Aureusms » 21 avr. 2011, 08:08

Excat! Cependant, tu dois d'abord tester si $_GET['ID'] existe sinon je pense que tu auras une erreur.
Une notice en effet. En général elles ne sont pas affichées, mais j'utilise quand meme des isset par souci de performances.

Ceci dit, vu le niveau de la question je ne me suis pas attardé sur ce genre de considérations
Pax faux! :wink:
Pour l'affichage (ou pas) des erreurs, utilises-tu error_reporting(0); ou similaire ? (error_reporting(E_ERROR | E_WARNING | E_PARSE);)

Re: problèmes de base de donnée / $_GET

par popy » 20 avr. 2011, 16:45

Excat! Cependant, tu dois d'abord tester si $_GET['ID'] existe sinon je pense que tu auras une erreur.
Une notice en effet. En général elles ne sont pas affichées, mais j'utilise quand meme des isset par souci de performances.

Ceci dit, vu le niveau de la question je ne me suis pas attardé sur ce genre de considérations

Re: problèmes de base de donnée / $_GET

par docdamien93 » 20 avr. 2011, 15:42

Bonjour,

Merci beaucoup pour votre aide, ça marche :)
Le problème venait apparemment effectivement des { }.

Damien

PS: si un modérateur pouvait mettre ce topic "résolu" svp ;)

Re: problèmes de base de donnée / $_GET

par Aureusms » 18 avr. 2011, 18:52

Excat! Cependant, tu dois d'abord tester si $_GET['ID'] existe sinon je pense que tu auras une erreur.

Re: problèmes de base de donnée / $_GET

par popy » 18 avr. 2011, 18:47

perso, je commencerais par un $id = intval($_GET['id']);, pour m'assurer du type de ma variable.

Et du coup, pas besoin de quotes ou d'echappement particulier.

Re: problèmes de base de donnée / $_GET

par Aureusms » 18 avr. 2011, 18:03

Je pense avoir trouver :

Tu cherches
jeu.jeu_ID = '{".$id."}'
Mais tu as : jeu.jeu_ID = 100

Essaye sans les {} en vérifiant que jeu_ID est bien un nombre!!! (utilise is_numeric($_GET['id']) ce qui donnerai :
mysql_select_db($database_cg_v2, $cg_v2);
$id = (!empty($_GET['ID']) && is_numeric($_GET['ID'])) ? mysql_escape_string ($_GET['ID']) : FALSE;
if ($id)
{
$query_jeu = "SELECT * FROM jeu, categories WHERE jeu.jeu_ID = '".$id."' AND jeu.jeu_categorie = categories.cat_nom_court";
$jeu = mysql_query($query_jeu, $cg_v2) or die(mysql_error());
$row_jeu = mysql_fetch_assoc($jeu);
$totalRows_jeu = mysql_num_rows($jeu);
}
else
{
echo 'pas ID';
}

Re: problèmes de base de donnée / $_GET

par docdamien93 » 18 avr. 2011, 12:15

Bonjour,

ta modification ne fait aucun effet. je comprends rien!! je ne vois pas "pas ID" donc il est bien accepté par la requête mais elle ne retourne quand même aucun résultat :|
Le problème serait-il lié à ma table MySQL? Dans le doute, je vous en poste un extrait.
CREATE TABLE IF NOT EXISTS `jeu` (
  `jeu_ID` mediumint(9) NOT NULL AUTO_INCREMENT,
  `jeu_nom` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `jeu_but` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `jeu_trucs` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `jeu_categorie` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT 'course',
  `jeu_adresseabs` varchar(250) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `jeu_views` int(11) NOT NULL DEFAULT '1',
  `jeu_star` varchar(1) COLLATE utf8_swedish_ci NOT NULL DEFAULT '0',
  `jeu_votes` int(11) NOT NULL DEFAULT '1',
  `jeu_redac` int(1) NOT NULL,
  UNIQUE KEY `jeu_ID` (`jeu_ID`),
  UNIQUE KEY `jeu_adresseabs` (`jeu_adresseabs`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci AUTO_INCREMENT=105 ;
et voici un extrait de données:
INSERT INTO `jeu` (`jeu_ID`, `jeu_nom`, `jeu_but`, `jeu_trucs`, `jeu_categorie`, `jeu_adresseabs`, `jeu_views`, `jeu_star`, `jeu_votes`, `jeu_redac`) VALUES
(100, 'Apprendre à Voler!', 'Apprends au pingouin à voler! Pour cela, achète lui un deltaplane, des réacteurs et autres ;)', 'Utilise les flèches de direction gauche et droite pour ajuster l''angle de vol', 'sport', '/swf/voler.swf', 1655, '1', 1, 0),
Merci pour votre aide par avance,
Damien

Re: problèmes de base de donnée / $_GET

par Aureusms » 05 avr. 2011, 22:59

Essaye cela :
mysql_select_db($database_cg_v2, $cg_v2);
$id = (!empty($_GET['ID'])) ? mysql_escape_string ($_GET['ID']) : FALSE;
if ($id)
{
$query_jeu = "SELECT * FROM jeu, categories WHERE jeu.jeu_ID = '{".$id."}' AND jeu.jeu_categorie = categories.cat_nom_court";
$jeu = mysql_query($query_jeu, $cg_v2) or die(mysql_error());
$row_jeu = mysql_fetch_assoc($jeu);
$totalRows_jeu = mysql_num_rows($jeu);
}
else
{
echo 'pas ID';
}
En supposant que dans ta table des ID soient inscrits de la sorte : {1}, {2},...

Re: problèmes de base de donnée / $_GET

par docdamien93 » 05 avr. 2011, 21:45

Bonsoir,

Voici la ligne 142:

Code : Tout sélectionner

Voir les <a href="categorie-<?php echo $row_jeu['cat_nom_court']; ?>" title="<?php echo $row_jeu['cat_nom_complet']; ?>">autres jeux de la même catégorie</a>
Elle ne fait qu'afficher un bout de ma requête que voici en intégralité:
mysql_select_db($database_cg_v2, $cg_v2);
$query_jeu = "SELECT * FROM jeu, categories WHERE jeu.jeu_ID = '{$_GET['ID']}' AND jeu.jeu_categorie = categories.cat_nom_court";
$jeu = mysql_query($query_jeu, $cg_v2) or die(mysql_error());
$row_jeu = mysql_fetch_assoc($jeu);
$totalRows_jeu = mysql_num_rows($jeu);
Effectivement, je fais une réécriture d'URL, voici mon .htaccess:

Code : Tout sélectionner

RewriteEngine on RewriteRule ^(.*)-([0-9]+)$ jeu.php?ID=$2 [L]
Voila ;)

Damien

Re: problèmes de base de donnée / $_GET

par Aureusms » 01 avr. 2011, 23:43

Waouh c'est dangereux de mettre '{$_GET['ID']}' directement dans la requête.
Fais un test de préexistence avant.

'{$_GET['ID']}' veut dire que tu as un ?id=qqchose dans l'url mais je ne le vois pas. Fais tu une réécriture d'url ?

Re: problèmes de base de donnée / $_GET

par moogli » 31 mars 2011, 23:30

salut,

quel est la ligne 142 ?

Tu ne devrais pas employer une valeur que tu ne maitrise pas directement dans la requête => mysql_real_escape_string

affiche la requête avant de l'utiliser tu y verra peut être un problème ! (essais la dans phpmyadmin ou une console sql)

@+

problèmes de base de donnée / $_GET

par docdamien93 » 31 mars 2011, 20:38

Bonsoir,

je code actuellement la nouvelle version de mon site (http://games.ciaonetwork.com/dev/) et je fais face à un problème qui commence lentement à m'énerver :?

Dans mon script, je vais chercher les informations correspondant à chaque jeu en faisant cette requête:
SELECT * FROM jeu, categories WHERE jeu.jeu_ID = '{$_GET['ID']}' AND jeu.jeu_categorie = categories.cat_nom_court
Cette requête me retourne les informations de chaque jeu mais pas pour tous les enregistrements. En effet, cette page est fonctionelle: http://games.ciaonetwork.com/dev/X_Raye-33 alors que celle-ci ne l'est pas: http://games.ciaonetwork.com/dev/La_rev ... e_Chien-90
J'ai pourtant vérifié que les enregistrements existaient bien... Bref, je suis au bout de mon peu de latin :)

Si vous avez des pistes de résolution, je suis preneur !!!!

Merci bcp,
Damien

(PS: le mode sans erreur étant activé sur mon hébergeur, voici ce que je vois en me connectant en local: "Notice: Undefined index: jeu_nom in C:\Program Files\wamp\www\ciaogamesv2\jeu.php on line 142")