Problème sur mon site

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ème sur mon site

Re: Problème sur mon site

par Ryle » 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 :)

Re: Problème sur mon site

par Mathched » 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 :) ^^

Re: Problème sur mon site

par crash » 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());

Re: Problème sur mon site

par xTG » 06 févr. 2012, 16:57

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

Re: Problème sur mon site

par Mathched » 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>

Re: Problème sur mon site

par xTG » 06 févr. 2012, 14:12

Re: Problème sur mon site

par Mathched » 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.

Re: Problème sur mon site

par crash » 06 févr. 2012, 11:43

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

Re: Problème sur mon site

par moogli » 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


@+

Re: Problème sur mon site

par Mathched » 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.

Re: Problème sur mon site

par crash » 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());

Re: Problème sur mon site

par Mathched » 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 ?

Re: Problème sur mon site

par Mathched » 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 ? ^^

Re: Problème sur mon site

par xTG » 06 févr. 2012, 10:49

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

Re: Problème sur mon site

par Mathched » 06 févr. 2012, 10:48

Ç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 '@loucasaudebethloc.fr, Essai.)' at line 1