Soucis server perso

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 : Soucis server perso

par @rthur » 30 juil. 2008, 00:06

Comment je fais pour afficher la requete et ensuite l'executé dans phpmyadmin.
Navré de mon ignorance
Aucun problème, mais nous sommes là pour t'aider à progresser et que tu réussisses à le faire toi-même.
D'où ma question:
=> Qu'as tu déjà essayé de faire?

Afficher une chaîne de caractère tu dois savoir le faire, ça fait partie des bases quand on démarre en PHP. A défaut, petit détour sur: http://www.phpdebutant.org ou http://www.siteduzero.com

par McGyver » 29 juil. 2008, 16:11

Ben les deux

affiché la requete sql et ensuite executé dans phpmyadmin

Comment je fais pour afficher la requete et ensuite l'executé dans phpmyadmin.
Navré de mon ignorance

par @rthur » 29 juil. 2008, 15:58

Excuse moi mais comment je fais, car la c'est un peu compliqué, car a part importer exporter pour le reste c'est encore dur
1) Affiche la requête MySQL que tu exécutes
2) Exécute là dans phpmyadmin

=> Qu'as tu essayé?
Où bloques-tu?

par McGyver » 29 juil. 2008, 15:35

Et bien tu as ta réponse alors, ta requête MySQL est incorrecte...
Affiche là avant de l'exécuter et teste là dans phpmyadmin pour la corriger.
Excuse moi mais comment je fais, car la c'est un peu compliqué, car a part importer exporter pour le reste c'est encore dur

Merci de ta reponse

par @rthur » 29 juil. 2008, 14:56

Et bien tu as ta réponse alors, ta requête MySQL est incorrecte...
Affiche là avant de l'exécuter et teste là dans phpmyadmin pour la corriger.

par McGyver » 29 juil. 2008, 14:50

merci a vous je vais tester

l'erreur ce fait la maintenant
$row = mysql_fetch_row($result);
Inspire toi de ma réponse et fait pareil ;)
J'ai fais ce que as dit et cela m'a donné cette erreur
Erreur MySQL : 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 'erreur viens une fois sur dix' AND user='McGyver' AND UNIX_TIMESTAMP()-UNIX_TIME' at line 1

par @rthur » 28 juil. 2008, 22:50

merci a vous je vais tester

l'erreur ce fait la maintenant
$row = mysql_fetch_row($result);
Inspire toi de ma réponse et fait pareil ;)

par McGyver » 28 juil. 2008, 14:15

merci a vous je vais tester

l'erreur ce fait la maintenant
$row = mysql_fetch_row($result);

par @rthur » 28 juil. 2008, 07:57

Bonjour,

Pour faciliter le débugage, remplace:
$result = mysql_query($query); 
par
$result = mysql_query($query) or die("Erreur MySQL : ".mysql_error()); 

par Calimero » 27 juil. 2008, 21:03

Chez un hébergeur, l'affichage des erreurs dans la page est souvent désactivé - l'hébergeur part du principe que tu y place un site pour tes visiteurs, et que tes visiteurs n'ont pas à voir les messages d'erreur liés au code s'il y en a.

Si tu regardes dans le log d'erreur chez ton hébergeur, tu y trouveras sûrement la même erreur et peut-être d'autres.

Tu peux très bien cacher ce message sur ta configuration de développement en jouant avec le paramètre error_reporting du php.ini, mais je ne te le conseille pas. C'est plutôt bien que tu sois informé de ce qui ne va pas dans ton site, non ? ;-)

Ton erreur se produit quand ta requête ne retourne aucun enregistrement. Comme tu ne testes pas le nombre d'enregistrements retournés, PHP essaye d'en lire un quoiqu'il arrive (même lorsqu'il n'y en a pas), et alors il t'informe que ça déconne :-)

Pour régler le problème, il faut donc utiliser la fonction mysql_num_rows() dans un test supplémentaire :
//INSERT MESSAGE
if ($_POST['message'] > ''){    
    if (isset($CURUSER)){    
        $query = "SELECT COUNT(*) FROM shoutbox WHERE message='".$_POST['message']."' AND user='".$CURUSER['username']."' AND UNIX_TIMESTAMP()-UNIX_TIMESTAMP(date) < 30";
        $result = mysql_query($query);
        // Ici le test en plus, pour être sûr que la requête ramène bien quelquechose :
        if(mysql_num_rows($result)) {
          $row = mysql_fetch_row($result);

          if ($row[0] == '0') {
              $query = "INSERT INTO shoutbox (msgid, user, message, date, userid, avatar) VALUES (NULL, '".$CURUSER['username']."', '".unesc($_POST['message'])."', '".get_date_time()."', '".$CURUSER['id']."', '".$CURUSER['avatar']."')";
              mysql_query($query);
          }
       }
    }
}
[/quote]

par Patriboom » 27 juil. 2008, 20:56

Es-tu sûr de tes mots de passe et noms de BdD ?
Vérifie ta connexion au serveur MySQL, que soient conformes les noms des champs de ta table locale aux noms de la même table distante..

Peut-être n'as-tu pas configuré les "utilisateurs" et "privilèges" de ta BdD locale comme ils le sont dans ta BdD distante.

par McGyver » 27 juil. 2008, 20:08

mais comment y resoudre car sur un hebergeur normal tout se passe bien

voici le code en question en rouge la ligne en question
//INSERT MESSAGE
if ($_POST['message'] > ''){	
	if (isset($CURUSER)){	
		$query = "SELECT COUNT(*) FROM shoutbox WHERE message='".$_POST['message']."' AND user='".$CURUSER['username']."' AND UNIX_TIMESTAMP()-UNIX_TIMESTAMP(date) < 30";
		$result = mysql_query($query);
		$row = mysql_fetch_row($result);

		if ($row[0] == '0') {
			$query = "INSERT INTO shoutbox (msgid, user, message, date, userid, avatar) VALUES (NULL, '".$CURUSER['username']."', '".unesc($_POST['message'])."', '".get_date_time()."', '".$CURUSER['id']."', '".$CURUSER['avatar']."')";
			mysql_query($query);
		}
	}
}
la ligne 232 c'est sa
$row = mysql_fetch_row($result);

Re: Soucis server perso

par Calimero » 27 juil. 2008, 19:07

Bonjour,
je sais que cela viens depuis que j'ai touché au php.ini car avant cela ne faisait pas d'erreur

Merci pour votre aide
Moi je te parie que l'erreur a toujours été là, seulement elle n'était pas affichée avant que tu touches au php.ini.

Aucun réglage du php.ini ne peut déclencher directement cette erreur-là ;-) c'est une erreur de code très classique.

Soucis server perso

par McGyver » 27 juil. 2008, 17:31

Bonjour

Je ne sais pas si je post dans le bon forum, on verra bien

Voila j'ai monté un serveur perso sous windows xp. Jusque la tout va bien. le probleme est que depuis j'ai configurer les php.ini j'ai une erreur
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\AppServ\www\shoutbox.php on line 232
je sais que cela viens depuis que j'ai touché au php.ini car avant cela ne faisait pas d'erreur

Merci pour votre aide