PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 26-08-2009 01:07:16

axelwhite
Membre
Inscription : 26-08-2009
Messages : 3

[Résolu] problème pour insérer données de formulaire dans une table

Bonjour à tous et merci d'avance pour l'aide que vous voudrez bien apporter au grand débutant que je suis.

Pour commencer voilà le message d'erreur.

Erreur : 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 'adhérer à l'association SOS Faune Sauvage. Vous souhaitez vous présenter ou nous' at line 1

La phrase en question est dans un text-area du formulaire d'inscription. Pas du tout à la ligne 1 mais à la 93.

<p><textarea style="margin-right:0px;padding-right:0" name="message" rows="8" cols="45">Vous êtes sur le point d'adhérer à l'association SOS Faune Sauvage. Vous souhaitez vous présenter ou nous adresser un message ?  C'est ici...</textarea></p>

Dans le fichier appelé par un method=post, j'ai assigné le contenu du text-area a la variable $_POST

$message = $_POST['message'];

j'ai fait quelques vérifs de champs obligatoires.

if(empty($nom) OR empty($adresse) OR empty ($codepostal) OR empty($ville))
{
print("<center>Merci de renseigner les champs obligatoires (*)</center>");
exit();
}

Et pour finir je suis censé envoyer le tout à ma table


else {
mysql_connect("#####", "#####", "#####") or die("<p>Connexion au serveur mysql impossible, erreur ". mysql_errno() .", message d'erreur : ". mysql_error() ."</p>");
mysql_select_db("#####") or die("<p>Sélection de la base impossible, erreur ". mysql_errno() .", message d'erreur : ". mysql_error() ."</p>");

mysql_query ("INSERT INTO adhesions(id,nom,prenom,adresse,codepostal,ville,telephone,courriel,message,newsletter) VALUES('','$prenom','$nom','$adresse','$codepostal', '$ville','$telephone','$courriel','$message','$newsletter')") or die ('Erreur : '.mysql_error() );

mysql_close();
}
 

Sauf que ça marche pas

Quelqu'un saurait-il me dire pourquoi ?

Merci.

Hors ligne

#2 26-08-2009 08:00:56

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] problème pour insérer données de formulaire dans une table

Regarde ta chaine de texte....

Tu n'as ABSOLUMENT PAS isolé les caractères spéciaux, accents ou apostrophes

axelwhite a écrit :

Vous êtes sur le point d'adhérer à l'association SOS Faune Sauvage. Vous souhaitez vous présenter ou nous adresser un message ?  C'est ici...

Alors que tu devrais avoir un truc du style :

<p><textarea style="margin-right:0px;padding-right:0" name="message" rows="8" cols="45">Vous \êtes sur le point d\'adh\érer \à l\'association SOS Faune Sauvage. Vous souhaitez vous pr\ésenter ou nous adresser un message ?  C'est ici...</textarea></p>

Ensuite, il faudra aussi savoir en quel interclassement est ta table dans la bdd...


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#3 26-08-2009 11:06:17

axelwhite
Membre
Inscription : 26-08-2009
Messages : 3

Re : [Résolu] problème pour insérer données de formulaire dans une table

Merci Alnoss,

c'est mon premier site et j'étais complètement passé à côté de la question des caractères spéciaux ! Maintenant ca marche, merci. Et je recois les données dans ma table. Reste juste à trouver le moyen de faire en sorte que le visiteur puisse laisser un message sans avoir à isoler ses caractères spéciaux.

Concernant l'interclassement.

Ma table est en interclassement utf8_general_ci. Le champs du message du text-area l'est aussi : il est en type text. Les champs varchar le sont aussi. Le classsement des autres champs, de type int, n'est pas spécifié.

Mais vu que ça marche, je ne sais pas si ca servira à quelque chose.

Merci encore, beaucoup.

Dernière modification par axelwhite (26-08-2009 11:30:08)

Hors ligne

#4 26-08-2009 13:11:58

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] problème pour insérer données de formulaire dans une table

Pour la récupération, au lieu de faire un

$var = $_GET['champ'];

tu fais :

$var = addslashes($_GET['champ']);

Bon courage


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#5 27-08-2009 12:31:01

pepebzh
Membre
Inscription : 27-08-2009
Messages : 2
Site Web

Re : [Résolu] problème pour insérer données de formulaire dans une table

Sinon il existe la fonction mysql_real_escape_string : http://fr.php.net/manual/fr/function.my … string.php

Hors ligne

#6 27-08-2009 20:42:00

axelwhite
Membre
Inscription : 26-08-2009
Messages : 3

Re : [Résolu] problème pour insérer données de formulaire dans une table

Merci beaucoup pour vos réponses qui m'ont débloqué.
Je suis relancé pour un moment.
J'en profite pour adresser un coucou aux débutants comme moi qui sont arrivés à ce message en cherchant sur la toile.  Persévérance et courage !

Peace.

Hors ligne

Pied de page des forums