Vous n'êtes pas identifié(e).
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.
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.
Et pour finir je suis censé envoyer le tout à ma table
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
Regarde ta chaine de texte....
Tu n'as ABSOLUMENT PAS isolé les caractères spéciaux, accents ou apostrophes
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 :
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
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
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
Sinon il existe la fonction mysql_real_escape_string : http://fr.php.net/manual/fr/function.my … string.php
Hors ligne
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