Problème sur mon site

ViPHP
xTG
ViPHP | 7331 Messages

06 févr. 2012, 10:49

Bingo, regardes donc la fin de mon message. ;)

Eléphanteau du PHP | 16 Messages

06 févr. 2012, 10:54

Ok donc à la place de :
mysql_query("INSERT INTO message (id, nom, prenom, email, message) VALUES ('', $nom, $prenom, $email, $message)") or die(mysql_error());
Je met :
mysql_query(mysql_real_escape_string("INSERT INTO message (id, nom, prenom, email, message) VALUES ('', $nom, $prenom, $email, $message)")) or die(mysql_error());
C'est ça ou j'ai rien compris ? ^^

Eléphanteau du PHP | 16 Messages

06 févr. 2012, 11:01

J'ai mit :
mysql_query(mysql_real_escape_string("INSERT INTO message (id, nom, prenom, email, message) VALUES ('', $nom, $prenom, $email, $message)")) or die(mysql_error());
Et du coup ça 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 '\'\', CHEDOZEAU, Mathieu, [email protected], Essai.)' at line 1

Si j'ai bien compris ça me dit qu'il y a un problème quand il essaye de stocker la variable ID dans ma DB ?

Si c'est bien ça que dois-je faire pour résoudre le problème s'il vous plait ?

Eléphant du PHP | 99 Messages

06 févr. 2012, 11:33

Non, mysql_real_escape_string dois être sur tes variables :
mysql_query("INSERT INTO message (id, nom, prenom, email, message) VALUES ('', '". mysql_real_escape_string($nom) ."', '". mysql_real_escape_string($prenom) ."', '". mysql_real_escape_string($email) ."', '". mysql_real_escape_string($message) ."')") or die(mysql_error());

Eléphanteau du PHP | 16 Messages

06 févr. 2012, 11:38

Yeeeees un GRAND merci à vous tous pour vos aides et la rapidité de vos réponses :) Je garde ce forum en favori pour revenir vous embêter si jamais j'ai d'autres soucis.

Et qui sait peut être que d'ici quelques temps je pourrais aider quelqu'un à mon tour :)

Je m'attaque à l'affichage des message sur mon site maintenant, j'espère y arriver sans vous dérranger.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 févr. 2012, 11:38

ça te dit que tu as une erreur dans la requête SQL !

en claire ce que tu passe au mysql_query n'est pas une requetes sql valide.

le meilleur moyen de débugger c'est d'utiliser une variable pour stocker la requête et de l'utiliser pour l'afficher en cas de problème.

ceci sans parler du fait que tu ne sais pas utiliser mysql_real_escape_string :)

dans ton cas
$sql = "INSERT INTO message (id, nom, prenom, email, message) VALUES ('', $nom, $prenom, $email, $message)";
mysql_query($sql) or die('Erreur SQL : '.mysql_error().'<br />'.$sql);
l'utilisation du die est assez abrupte et peux utilisable gérer l'affichage du message serais une meilleur idée.

déjà avec ce que j'ai mis au dessus tu pourra te rendre compte que la requete ne peux pas être valide et ceci simplement parce que SQL réclame (comme quasiment tout les langage) une délimitation des chaines de caractères dans le cas de SQL par des simples quotes ( 'ceci est une chaine de caractère en SQL' ).

pour ce qui est du SQL => [url]http:/sqlpro.developpez.com[/url]

quand a l'utilisation mysql_real_escape_string


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 99 Messages

06 févr. 2012, 11:43

@Mathched : n'hésites pas si tu as d'autres soucis :) bonne continuation ^^.

Eléphanteau du PHP | 16 Messages

06 févr. 2012, 13:05

Me revoilà :)

Comment je peux faire pour ajouter la date et l'heure à laquelle les gens envoient les messages dans la BBD ?

Merci d'avance.

ViPHP
xTG
ViPHP | 7331 Messages

06 févr. 2012, 14:12


Eléphanteau du PHP | 16 Messages

06 févr. 2012, 16:40

Merci xTG pour le lien.

J'ai un problème de syntaxe à la ligne mysql_query et malgré une torture extrême de mes petites cellules grises je trouve pas où elle peut-être.
Je vous met donc mon code et demande à nouveau votre aide :(
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="#E2F3EB" BACKGROUND="" TEXT="#000000" LINK="#008040" ALINK="#008040" VLINK="#008040">

<?php

	$nom = isset($_POST['nom']) ? $_POST['nom'] : '';
   $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : '';
   $societe = isset($_POST['societe']) ? $_POST['societe'] : '';
   $email = isset($_POST['email']) ? $_POST['email'] : '';
   $telephone = isset($_POST['telephone']) ? $_POST['telephone'] : '';
   $adresse = isset($_POST['adresse']) ? $_POST['adresse'] : '';
   $adressebis = isset($_POST['adressebis']) ? $_POST['adressebis'] : '';
   $ville = isset($_POST['ville']) ? $_POST['ville'] : '';
   $codepostal = isset($_POST['codepostal']) ? $_POST['codepostal'] : '';
   $commentaires = isset($_POST['commentaires']) ? $_POST['commentaires'] : '';
   $commentaires = nl2br($commentaires);


mysql_connect("localhost" , "Mathched" , "motdepasse13");
mysql_select_db("contact");

	
		if( empty($nom) OR empty($prenom) OR empty($email) OR empty($telephone) OR empty($adresse) OR empty($ville) OR empty($codepostal))
		{
			echo '<font color="red"><CENTER>Attention certains champs obligatoires sont vide !</CENTER></font>';
		}
		else
		{
			 		   
			mysql_query("INSERT INTO donnees (id, nom, prenom, societe, email, telephone, adresse, adressebis, ville, codepostal, commentaires) VALUES ('', '". mysql_real_escape_string($nom) ."', '". mysql_real_escape_string($prenom) ."', '". mysql_real_escape_string($societe) ."', '". mysql_real_escape_string($email) ."', '". mysql_real_escape_string($telephone) ."', '". mysql_real_escape_string($adresse) ."', '". mysql_real_escape_string($adressebis) ."', '". mysql_real_escape_string($ville) ."', '". mysql_real_escape_string($codepostal) ."', '". mysql_real_escape_string($commentaires) ."'") or die(mysql_error());
			echo '<font color="green"><CENTER>Fiche client envoyée avec succès !</CENTER></font>';
			 		
		}
		
			 	
			 		
 	 

?>

<FONT COLOR="#008040" SIZE=3><A HREF="Contact.php" target="Acceuil"><CENTER>Retour</CENTER></A></FONT>


</BODY>
</HTML>

ViPHP
xTG
ViPHP | 7331 Messages

06 févr. 2012, 16:57

Quelle est l'erreur exacte ? Car pour ma part je suis comme toi je ne vois rien. :)

Eléphant du PHP | 99 Messages

06 févr. 2012, 16:57

Salut :)

Il te manque la fermeture de la parenthèse VALUES :

Avant :
mysql_query("INSERT INTO donnees (id, nom, prenom, societe, email, telephone, adresse, adressebis, ville, codepostal, commentaires) VALUES ('', '". mysql_real_escape_string($nom) ."', '". mysql_real_escape_string($prenom) ."', '". mysql_real_escape_string($societe) ."', '". mysql_real_escape_string($email) ."', '". mysql_real_escape_string($telephone) ."', '". mysql_real_escape_string($adresse) ."', '". mysql_real_escape_string($adressebis) ."', '". mysql_real_escape_string($ville) ."', '". mysql_real_escape_string($codepostal) ."', '". mysql_real_escape_string($commentaires) ."'") or die(mysql_error());
Après ;)
mysql_query("INSERT INTO donnees (id, nom, prenom, societe, email, telephone, adresse, adressebis, ville, codepostal, commentaires) VALUES ('', '". mysql_real_escape_string($nom) ."', '". mysql_real_escape_string($prenom) ."', '". mysql_real_escape_string($societe) ."', '". mysql_real_escape_string($email) ."', '". mysql_real_escape_string($telephone) ."', '". mysql_real_escape_string($adresse) ."', '". mysql_real_escape_string($adressebis) ."', '". mysql_real_escape_string($ville) ."', '". mysql_real_escape_string($codepostal) ."', '". mysql_real_escape_string($commentaires) ."')") or die(mysql_error());

Eléphanteau du PHP | 16 Messages

06 févr. 2012, 17:02

Crash t'es un DIEU :)

Merci beaucoup à tout ceux qui m'ont aidé dans mon long périple Phpien :) ^^

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 févr. 2012, 22:57

Petite suggestion :
$sql = "INSERT INTO donnees (id, nom, prenom, societe, email, telephone, adresse, adressebis, ville, codepostal, commentaires) VALUES ('', '". mysql_real_escape_string($nom) ."', '". mysql_real_escape_string($prenom) ."', '". mysql_real_escape_string($societe) ."', '". mysql_real_escape_string($email) ."', '". mysql_real_escape_string($telephone) ."', '". mysql_real_escape_string($adresse) ."', '". mysql_real_escape_string($adressebis) ."', '". mysql_real_escape_string($ville) ."', '". mysql_real_escape_string($codepostal) ."', '". mysql_real_escape_string($commentaires) ."')";

mysql_query($sql) or die(mysql_error());
Ceci aura rigoureusement le même effet, mais te permet d'afficher la valeur $sql pour voir la requête SQL que tu envois as ta base de données... c'est toujours utile en cas d'erreur ou simplement pour vérifier les informations que tu envois dans ta base de données :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...