Error my SQL syntax
je voudrais creer un formulaire d'envoi de mail pour pour que les visiteurs puissent inviter des amis à voir et lire des articles et éventuelement récupérer les donner envoyés sur ma BD.
1) J arrive a lancer des invitations mais le lien de l'article ne s'affiche pas?
2) Je reçois une erreur de connexion a ma base de donnée que voici :
Le message a bien été envoyé à mbaye.mamadou@gmail.com ...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 'to, votrenom, votremail, message) VALUES ('mbaye.mamadou@gmail.com', 'Moussa San' at line 1
De plus le code php le voici :
<?php
$to = strip_tags($_POST['to']);
$votrenom = strip_tags($_POST['votrenom']);
$votremail = strip_tags($_POST['votremail']);
$message = strip_tags($_POST['message']);
mail($to, $votrenom, $votremail, $message);
{
echo "Le message a bien été envoyé à $to ...";
}
$dd = "db_senauto3_1";
$amienvoyer = "amienvoyer";
// On vérifie qu'il y a bien eu un envoi de données.
// Pour cela, on vérifie que le champ "to" à bien été rempli
if(isset($_POST['to']));
{
// D'abord, on se connecte à MySQL
mysql_connect('MySQL5.hebergement.com', 'db_senauto3_1', 'pfwoyiJC') or die(mysql_error());
mysql_select_db($dd) or die(mysql_error());
// Enregistrement dans la base de donnees
mysql_query("INSERT INTO amienvoyer (to, votrenom, votremail, message) VALUES ('".$to."', '".$votrenom."', '".$votremail."', '".$message."')") or die(mysql_error());
}
mysql_close();
?>
Merci de m'aider SVP?
Configuration: Windows XP Firefox 3.0.16
25 réponses
Il est question d'un formulaire d'envoi d'invitations par email et de la récupération des données en BD, mais des bugs surviennent, notamment le lien d'article qui ne s'affiche pas. Des causes identifiées incluent une utilisation incorrecte de mail(), une concaténation manquante pour ajouter le lien au message, et une requête SQL utilisant un champ réservé 'to' sans échappement. D'autres points signalés concernent la condition if (isset($_POST['to'])); avec un point-virgule parasite, l'emploi de l'ancienne API MySQL et l'ordre des paramètres mail(), causant des valeurs au mauvais endroit. En pratique, la correction passe par renommer ou échapper le champ 'to' (ou le remplacer), corriger la concaténation du message avec le point, et réorganiser le code pour une utilisation sécurisée.
-
C'est au ton message comporte une apostrophe.
Pour y remédier, il faut échapper correctement les textes que tu passes à mysql :
mysql_query("INSERT INTO amienvoyer (nomdest, votrenom, votremail, message) VALUES ('".$nomdest."', '".$votrenom."', '".$votremail."', '".mysql_real_escape_string($message)."')") or die(mysql_error());-
Merci professeur!
A pressent il me reste une seul équation à résoudre.
Dans le message que reçoit le destinataire tout le contenu s'affiche mais pas normalement. Le texte est collé à l'url de la page ce qui fait quant on clic dessus on n'est mal rediriger.
Voici l'exemple :
C'est au ton message comporte une apostrophe.
Pour y remédier, il faut échapper correctement les textes que tu passes à mysqlwww.senauto.org/renault_fluence_z.e._concept.php
Merci de me corriger.
-
-
J'arrête de t'embêter
$message=qq chose
veut dire que tu mets qq chose dans la variable $message.
Quand on dit mettre quelque chose, ça veut dire peu importe ce qu'il y avait avant, après il y a aura qq chose et rien que qq chose
maintenant
$message = strip_tags($_POST['message']);
$message = "www.senauto.org".$_POST['article'];
La 1ère ligne ne sert à rien : avec la deuxième tu mets le lien dans $message, mais ce q'il y avait avant dans $message est oublié.
C'est le B A BA de la plupart des langages informatiques : quand tu mets quelque chose dans une variable, il y a cette chose, et rien d'autre.
En PHP, il y a (heureusement) une opération qui te permet d'ajouter (et non pas de remplacer) un nouveau texte à la suite du texte déjà contenu dans une variable. Ça s'appelle al concaténation et ça se note avec un point (et absolument pas de AND)
$message = strip_tags($_POST['message']);
$message .= "www.senauto.org".$_POST['article'];
J'ai simplement ajouté un point.
Tu devrais vraiment commencer par apprendre les bases avant d'essayer d'aller plus loin.-
J'ai mis :
$message .= "www.senauto.org".$_POST['article']; et ça marche.
mais cet erreur s'affiche toujours sur la page envoyer.php:
Le message a bien été envoyé à mbaye.mamadou@gmail.com...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 'obtention par son pays de l'organisation de la Coupe du monde 2010, sont partout' at line 1.
Comment le corriger.
Vraiment merci et je m'y atelerais à apprendre les bases de php. -
-
-
Ce qui reste c'est qu'en effectuant ces changement seul l'url de la page correspondant à l'article s'affiche au détriment de la message envoyé qui ne s'affiche plus.
Je sais, tu l'as déjà dit dans le message 21.
Et je t'ai déjà répondu message 22.
Quand tu écris ces deux lignes :
$message = strip_tags($_POST['message']);
$message = "www.senauto.org".$_POST['article'];
As-tu une quelconque idée de ce qu'elles veulent dire ? Je pourrais te corriger ton erreur en une seule ligne, ce serait beaucoup moins fatigant pour moi mais je suis sûr que tu peux comprendre et corriger toi-même.-
Bonjour,
Je viens de retourner ce script dans tout les sens :
$message = strip_tags($_POST['message']);
$message = "www.senauto.org".$_POST['article'];
Et vraiment je n'es aucune idée de ce qu'elles veulent dire à présent. j'ai mis ceci :
$message = "www.senauto.org".$_POST['article'] AND .$_POST['message']; Mais là l'url cede la place au message contenu dans l'article. Et je ne croises pas les bras, je voudrais apprendre.
Merci -
J'ai mis ceci : $message = "www.senauto.org".$_POST['article'] .$_POST['message']; et sa marche. Mais il y a un message d'erreur qui s'affiche dans la page envoyer.php le voici :
Le message a bien été envoyé à mbaye.mamadou@gmail.com...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 'année 2007, mais en baisse de 80,3% par rapport à l'année précédent Article du ' at line 1
Comment le corriger? merci de m'aider.
-
-
Merci de m'aider.
Maintenant j'ai l'url de la page correspondant où se trouve l'article en ajoutant comme suggérer ceci :
<a href="destinataire.php?article=<?php echo $_SERVER['PHP_SELF']?>">Envoyer à une amie</a>
Et j'ai mis dans la page destinataire.php cet lien caché :
<input type="hidden" name="article" value="<?php echo $_GET['article']; ?>" />
et dans la page envoye.php qui traite les donnees j'ai replacer en mettant ceci :
$message = "www.senauto.org".$_POST['article'];
Voici le code php :
<?php
$nomdest = strip_tags($_POST['nomdest']);
$votrenom = strip_tags($_POST['votrenom']);
$votremail = strip_tags($_POST['votremail']);
$message = strip_tags($_POST['message']);
$message = "www.senauto.org".$_POST['article'];
mail($nomdest, $votrenom, $votremail, $message);
{
echo "Le message a bien été envoyé à $nomdest...";
}
$dd = "db_senauto3_1";
$amienvoyer = "amienvoyer";
// On vérifie qu'il y a bien eu un envoi de données.
// Pour cela, on vérifie que le champ "to" à bien été rempli
if(isset($_POST['nomdest']));
{
// D'abord, on se connecte à MySQL
mysql_connect('MySQL5.hebergement.com', 'db_senauto3_1', 'pfwoyiJC') or die(mysql_error());
mysql_select_db($dd) or die(mysql_error());
// Enregistrement dans la base de donnees
mysql_query("INSERT INTO amienvoyer (nomdest, votrenom, votremail, message) VALUES ('".$nomdest."', '".$votrenom."', '".$votremail."', '".$message."')") or die(mysql_error());
}
mysql_close();
?>
Ce qui reste c'est qu'en effectuant ces changement seul l'url de la page correspondant à l'article s'affiche au détriment de la message envoyé qui ne s'affiche plus.
Merci de m'aider. -
Si tu fais $message = "www.senauto.org".$_POST['article']; dans $message il n'y a QUE "www.senauto.org".$_POST['article'].
Ça ne te semble pas évident ?
Tu t'attendais à autre chose ? -
Cette page marchait jusqu'à présent . Qu'as-tu modfié dedans ? C'est toi qui le sais, pas moi.
Et normalement, et regardant toi-même le script et en vérifiant ce qu'il fait, tu dois bien voir où ça cloche. -
Maintenant mon lien "envoyer à une ami" (sans oublier le v de envoyer qui manqué sur ma page) contien l'adresse de ta page comme indiquer ci dessous:
<a href="destinataire.php?article=<?php echp $_SERVER['PHP_SELF']?>">Envoyer à une amie</a>
Cependant en voulant ouvrir la page content l'article et le lien en question: http://www.senauto.org/renault_fluence_z.e._concept.php je reçois une page complètement blanche. n'a t-il pas une erreur sur le code en haut.
Merci de m'aider. -
Ça n'est pas clair ? Dans ta page, au lieu d'écrire
envoyer à un ami
tu as écris
enoyer à un ami
Tu ne vois pas qu'il manque un V ?-
Merci le père.
Maintenant j'ai l'url de la page correspondant où se trouve l'article en ajoutant comme suggérer ceci :
<a href="destinataire.php?article=<?php echo $_SERVER['PHP_SELF']?>">Envoyer à une amie</a>
Et j'ai mis dans la destinataire.php cet lien caché :
<input type="hidden" name="article" value="<?php echo $_GET['article']; ?>" />
et dans la page envoye.php qui traite les donnees j'ai replacer en mettant ceci :
$message = "www.senauto.org".$_POST['article'];
Ce qui reste c'est qu'en effectuant ces changement seul l'url de la page correspondant à l'article s'affiche au détriment de la message envoyé qui ne s'affiche plus.
Merci de m'aider.
-
-
merci de la reponse apportee que je vais tester bientot. Mais je veux une explication sur le contenu suivant de ton message :
Il faut d'abord que ton lien "envoyer à un ami" (sans oublier le v de envoyer qui manque sur ta page) contienne l'adresse de ta page.
Tu parle dequel v de benvoyer et qui manque sur ma page contenant l'adresse de la pagte?
Merci! -
Il faut d'abord que ton lien "envoyer à un ami" (sans oublier le v de envoyer qui manque sur ta page) contienne l'adresse de ta page :
<a href="destinataire.html?article=<?php echp $_SERVER['PHP_SELF']?>">Envoyer à un ami</a>
Dans ton formulaire destinataire, tu ajoutes un champ caché pour passer cette valeur
<input type="hidden" name="article" value="<?php echo $_GET['article']; ?>" />
(au passage l'envoi à un ami devient l'envoi à une amie. C'est fait exprès ?)
Enfin, dans ton script d'envoi de message tu ajoutes le lien au message:
$message .="http://www.senauto.org".$_POST['article']; -
le lien vient d'une autre page dans laquelle se trouve l'article en question exemple : http://www.senauto.org/renault_fluence_z.e._concept.php. mais quant on clic sur envoyé ç un ami un autre page s'ouvre : destinataire.php après on rempli le formulaire en question puis on clic sur envoyé et un page intituléé envoyer.php dont le contenu est représenté ci-dessus, récupère les données et les envoi au destinataire.
mais le voudrais que le lien de l'artiche à s'avoir http://www.senauto.org/renault_fluence_z.e._concept.php, puisse figurer soit dans le formulaire quant on clic sur envoyer à un ami, soit dans le messge que reçoit par le destinataire.
merci! -
Merci de m'indiquer clairement le chemin à prendre
Dès que tu auras posé clairement le problème. D'où vient le lien dont tu nous parles ? Si c'est toujours www.senauto.org , le script que tu as montré devrait marcher -
Je veux inclure ce script dans tout les pages de mon site ayant un article. Et je voudrais quant quelqu'un invite un ami a venir voir un article le lien de la page où il se retrouve s'affiche dans le message envoyé. donc forcément les liens vont changer de temps à autre.
Voici le script présentement :
<?php
$nomdest = strip_tags($_POST['nomdest']);
$votrenom = strip_tags($_POST['votrenom']);
$votremail = strip_tags($_POST['votremail']);
$message = strip_tags($_POST['message']);
$message = "www.senauto.org
" . $message;
mail($nomdest, $votrenom, $votremail, $message);
{
echo "Le message a bien été envoyé à $nomdest...";
}
$dd = "db_senauto3_1";
$amienvoyer = "amienvoyer";
// On vérifie qu'il y a bien eu un envoi de données.
// Pour cela, on vérifie que le champ "to" à bien été rempli
if(isset($_POST['nomdest']));
{
// D'abord, on se connecte à MySQL
mysql_connect('MySQL5.hebergement.com', 'db_senauto3_1', 'pfwoyiJC') or die(mysql_error());
mysql_select_db($dd) or die(mysql_error());
// Enregistrement dans la base de donnees
mysql_query("INSERT INTO amienvoyer (nomdest, votrenom, votremail, message) VALUES ('".$nomdest."', '".$votrenom."', '".$votremail."', '".$message."')") or die(mysql_error());
}
mysql_close();
?>
Je veux s'avoir comment procéder pour avoir le résultat attendu.
Merci de m'indiquer clairement le chemin à prendre? -
Si tu veux que ce lien apparaisse dans ton message, mets-le dedans !
C'est à l'endroit où tu crées le texte actuel :
www.senauto.org
merci de lire cet article
de mfallntic@yahoo.fr
qu'il faut intervenir. -
Un petite explication j'ai trois pages :
1) contenant l'article en question avec un lien (envoyer cet article à un ami)
2) Quant on clic sur le lien un autre page s'affiche destinataire.html contenant le formulaire avec :
<form action="envoyer.php" method="post">
3) un autre envoyer.php qui récupère les données - l'envoie au destinataire et les stock les données envoyés dans mon BD. -
Salut! je parles du lien de la page à envoyer au destinataire où se trouve l'article en question et no du lien vers mon site qui s'affiche dans les message envoyé :
en ce moment le destinataire reçois ceci :
www.senauto.org
merci de lire cet article
de mfallntic@yahoo.fr
et je voudrais qu'il reçois en mm temps lien vers l'article correspondant :
comme ceci : http://www.senauto.org/renault_fluence_z.e._concept.php
Merci de m'aider? -
De quel lien parles-tu ? Ton message, c'est simplement :
$message = strip_tags($_POST['message']);
S'il y a un lien dedans, la fonction strip_tags enlève la balise correspondante. Mais ça ne devrait pas être gênant, beaucoup de logiciels de mail génèrent des liens automatiquement quand une partie du texte a une allure d'URL. -
Salut! je viens de tester et ça marche. Toutefois le lien vers l'article envoyé ne s'affiche pas dans le message que reçois le destinataire.
Pouvez vous m'aider en m'indiquant un script et/ou la procédure à suivre?
Merci A+ -
Merci le Père!
c réussi ! toutefois le lien vers l'article ne s'affiche pas encore dans le message envoyé au destinataire.
Pouvez-vous m y aider avec un script.
Merci encore! -
Ok! merci je vais modifier et tester puis je te tiendrais au courant!
Vive la solidarité numérique.
- 1
- 2