Rapatrier données d'un formulaire vers mail
Mysterious_fea
Messages postés
406
Statut
Membre
-
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Dalida Messages postés 7114 Date d'inscription Statut Contributeur Dernière intervention -
Salut à tous !
Pour rappatrier les données d'un formulaire de contact sur mon site ( http://www.en-scene-association.fr ), j'utilisait jusqu'à présent le service gratuit de QuickWeb.com.
Mais voilà, la pub, ainsi que le message d'alerte terroriste (enfin presque...) à chaque envoi de formulaire, c'est pas le top.
Connaîtriez vous un autre service à installer directement sur son serveur, du style Raynette, pour faire cela ?
Ou alors suffit-il d'indiquer son mail en cible du formulaire ?
Un autre problème : la validation du formulaire avec les champs obligatoires, le type de données dans chaque champ, n'est pas très efficace avec Dreamweaver. Connaîtriez vous un site où c'est expliqué ou une astuce ou quelque chose pour le faire soi-même ?
Merci beaucoup d'avance
Ciao
Pour rappatrier les données d'un formulaire de contact sur mon site ( http://www.en-scene-association.fr ), j'utilisait jusqu'à présent le service gratuit de QuickWeb.com.
Mais voilà, la pub, ainsi que le message d'alerte terroriste (enfin presque...) à chaque envoi de formulaire, c'est pas le top.
Connaîtriez vous un autre service à installer directement sur son serveur, du style Raynette, pour faire cela ?
Ou alors suffit-il d'indiquer son mail en cible du formulaire ?
Un autre problème : la validation du formulaire avec les champs obligatoires, le type de données dans chaque champ, n'est pas très efficace avec Dreamweaver. Connaîtriez vous un site où c'est expliqué ou une astuce ou quelque chose pour le faire soi-même ?
Merci beaucoup d'avance
Ciao
A voir également:
- Rapatrier données d'un formulaire vers mail
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Windows live mail - Télécharger - Mail
- Comment télécharger un mail - Guide
- Formulaire de reclamation instagram - Guide
37 réponses
on a pas de boule de cristal !
filer un coup de main : oui.
mais gratter à distance : non.
donc il va falloir t'investir un peu plus !
QUELLE ERREUR ???!!!
filer un coup de main : oui.
mais gratter à distance : non.
donc il va falloir t'investir un peu plus !
QUELLE ERREUR ???!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Parse error: parse error, unexpected '{' in /homepages/32/d210732052/htdocs/ensceneassociation/formulaire.php on line 185
Ne connaissant pas bien la synthaxe du PHP, j'ai du mal à spotter les erreurs...
Ne connaissant pas bien la synthaxe du PHP, j'ai du mal à spotter les erreurs...
J'avais posté une réponse ou je te listait toutes les { } qui manquaient mais il a disparu !
il t'en manque pas mal dans tes test if avant et après des else aussi
Il me semble que tu as deux else pour un seul if aussi.
Quel éditeur utilises-tu ?
il t'en manque pas mal dans tes test if avant et après des else aussi
Il me semble que tu as deux else pour un seul if aussi.
Quel éditeur utilises-tu ?
moi j'arrive à ça, sans relire vraiment le code mais en essayant de rester logique (c'est pas gagné…) :
<?php
$Envoi="\n".'<span class="bt">
<input name="envoi" id="send" tabindex="4" value="Envoyer" type="submit"></span>';
$Reini="\n".'<span class="bt">
<input name="reini" id="reset" tabindex="5" value="Réinitialiser" type="reset"></span>';
if (isset($_POST['message']))
{
// La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$nom=preg_replace('#(<|>)#', '-', $_POST['nom']);
$nom=str_replace('"', "'",$nom);
$nom=str_replace('&', 'et',$nom);
$adresse=preg_replace('#(<|>)#', '-', $_POST['adresse']);
$adresse=str_replace('"', "'",$adresse);
$adresse=str_replace('&', 'et',$adresse);
$ville=preg_replace('#(<|>)#', '-', $_POST['ville']);
$ville=str_replace('"', "'",$ville);
$ville=str_replace('&', 'et',$ville);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$nom=stripslashes(htmlspecialchars($nom));
$motif=stripslashes(htmlspecialchars($motif));
$adresse=stripslashes(htmlspecialchars($adresse));
$code=stripslashes(htmlspecialchars($code));
$ville=stripslashes(htmlspecialchars($ville));
$tel=stripslashes(htmlspecialchars($tel));
$tel2=stripslashes(htmlspecialchars($tel2));
//input envoi
$envoi=htmlentities($_POST['envoi']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$nom=trim($nom);
$adresse=trim($adresse);
$code=trim($code);
$ville=trim($ville);
$tel=trim($tel);
$pot=trim($pot);
/*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.
(on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/
//Si ca ne vas pas (mal rempli, mail non valide...)
if((empty($message))or(empty($nom))or(empty($tel))or(!preg_match($verif,$votremail)))
{
//les 4 champs sont vides
if(empty($votremail)and(empty($message))and(empty($nom))and(empty($tel)))
{
echo '<p class="bt">Merci de remplir tous les champs marqués d\'une astérisque.</p>';
$message='';$votremail='';$nom='';
}
//un ou plusieurs des champs est/sont vide/s
else
{
if((empty($votremail))and(empty($tel))
{
if(!preg_match($verif,$votremail))
{
echo'<p class="bt">Votre adresse e-mail n\'est pas valide.</p>';
$message='';$nom='';$adresse='';$code='';$ville='';$motif='';
}
else
{
echo '<p class="bt">Merci d\'indiquer au moins un moyen de vous contacter (mail ou téléphone)</p>';
$message='';$nom='';$adresse='';$code='';$ville='';$motif='';
}
}
else
{
echo '<p class="bt">Merci de remplir tous les champs munis d\'une astérisque.</p>';
$message='';$nom='';$adresse='';$code='';$ville='';$motif='';$motif='';
}
}
}
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi
else
{
$domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);
$DomaineMailExiste=checkdnsrr($domaine,'MX');
if(!$DomaineMailExiste)
{
echo'<p class="bt">Votre adresse e-mail n\'est pas valide.</p>';
}
else
{
if($_POST['tel']!="" )
{
if( !is_numeric($_POST['code']) || strlen($_POST['code']!="10"))
{
//message d'erreur
echo'<p class="bt">Le numéro de téléphone n\'est pas valide.</p>';
}
else
{
if(!empty($envoi))
{
$objet='.::'.$motif.' de '.$nom.' - Formulaire du site::.';
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/html;charset=fr-ascii\r\n'.'MIME-Version: 1.0\r\n'.'Sent:'.date('l, F d, Y H:i');
$messagefinal='Motif du message : '.$motif."\r\n".'Nom : '.$nom."\r\n".'Adresse : '.$adresse.' - '.$code.' '.$ville."\r\n".'Numéro(s) de téléphone : '.$tel.' - '.$tel2."\r\n".'Message : '."\r\n".$message."\r\n";
if(mail($destinataire,$objet,$messagefinal,$headers))
{
echo "<script language=\"JavaScript\">
<!--
document.location=\"/formulaire-envoye.html#form\";
//-->
</script>";
}
}
else
{
echo'<p class="bt">Votre message n\'a pas pu être envoyé correctement. Merci de réessayer en remplissant correctement tous les champs marqués d\'une astérisque.</p>';
}
}
}
else
{
echo'<p class="bt">Votre message n\'a pas pu être envoyé correctement. Merci de réessayer en remplissant correctement tous les champs marqués d\'une astérisque.</p>';
}
}
}
else
{
echo '<p class="bt">Remplissez tous les champs munis d\'une astérisque et cliquez sur le bouton "Envoyer".</p>';
$votremail='';$message='';$nom='';$adresse='';$code='';$ville='';$tel='';$tel2='';
}
?>
C'est bon j'ai trouvé la faille !
J'ai un peu bidouillé, beaucoup cherché et c'est bon ! Par contre j'ai renoncé à rajouter des restrictions pour l'envoi pour le moment.
Mais j'ai un autre problème (et oui, il fallait s'en douter !) : comment remplacer les sauts à la ligne de la zone message par des <br> ou des \r\n pour qu'ils apparaissent dans le mail ?
Ca doit être quelque chose comme ça :
Mais je ne sais pas quoi mettre dans les parenthèses.
Et faut-il remplacer les sauts à la ligne par des <br>, sachant que mon mail est en html ? :
Merci
J'ai un peu bidouillé, beaucoup cherché et c'est bon ! Par contre j'ai renoncé à rajouter des restrictions pour l'envoi pour le moment.
Mais j'ai un autre problème (et oui, il fallait s'en douter !) : comment remplacer les sauts à la ligne de la zone message par des <br> ou des \r\n pour qu'ils apparaissent dans le mail ?
Ca doit être quelque chose comme ça :
message=str_replace(kelkechose,kelkechose,$message);
Mais je ne sais pas quoi mettre dans les parenthèses.
Et faut-il remplacer les sauts à la ligne par des <br>, sachant que mon mail est en html ? :
$objet='.::'.$motif.' de '.$nom.' - Formulaire du site::.'; $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".
'Content-type:text/html;charset=fr-ascii\r\n'.
'MIME-Version: 1.0\r\n'.'Sent:'.date('l, F d, Y H:i');
$messagefinal="<html><span class="titre">Motif du message :</span> $motif<br><span class="titre">Nom :</span> $nom<br><span class="titre">Adresse :</span> $adresse - $code $ville<br><span class="titre">Téléphone :</span> $tel - $tel2<br><span class="titre">Message :</span><br> $message </html>";
Merci
Autre truc : la mise en forme du mail pour un problème :
Ligne 207
Et le serveur m'affiche l'erreur suivante :
Quel est le problème ? Il semble que l'utilisation des # pour les couleurs fassent des erreurs, alors je les ai enlevé, mais toujours erreur. Je n'arrive pas non plus à utiliser de CSS.
Merci
Ciao
Ligne 207
$messagefinal="<html><strong><font color="e00300">Motif du message :</font></strong> $motif<br><strong><font color="e00300">Nom :</font></strong> $nom<br><strong><font color="e00300">Adresse :</font></strong> $adresse - $code $ville<br><strong><font color="e00300">Téléphone :</font></strong> $tel - $tel2<br><strong><font color="e00300">Message :</font></strong><br> $message </html>";
Et le serveur m'affiche l'erreur suivante :
Parse error: parse error, unexpected T_STRING in /homepages/32/d210732052/htdocs/ensceneassociation/formulaire.php on line 207
Quel est le problème ? Il semble que l'utilisation des # pour les couleurs fassent des erreurs, alors je les ai enlevé, mais toujours erreur. Je n'arrive pas non plus à utiliser de CSS.
Merci
Ciao
Tu mets $messagefinal=".................";
alors puisque ta chaine est entre des "
il faut que tu échapes tous les " qui sont dans la chaine par \ , sinon ils sont interprétés comme la fin de la chaine et le caractère qui suit n'est pas compris (unexpected T_STRING)
exemple:
ou alors tu mets des ' à l'intérieur de ta chaine à la place des "
alors puisque ta chaine est entre des "
il faut que tu échapes tous les " qui sont dans la chaine par \ , sinon ils sont interprétés comme la fin de la chaine et le caractère qui suit n'est pas compris (unexpected T_STRING)
exemple:
$messagefinal="<html><strong><font color=\"e00300\">Motif du message :<...........
ou alors tu mets des ' à l'intérieur de ta chaine à la place des "
OK Merci beaucoup.
Et quant aux sauts de ligne dans le la textarea ?
Merci
Ciao
Et quant aux sauts de ligne dans le la textarea ?
Merci
Ciao
salut,
si tu envoies direct ton mail depuis la saisie du '<textarea>' tu peux essayer la fonction 'nl2br()' pour formater la saisie des retours charriot en html.
si tu envoies direct ton mail depuis la saisie du '<textarea>' tu peux essayer la fonction 'nl2br()' pour formater la saisie des retours charriot en html.
Encore un autre truc (n'oubliez pas les sauts de ligne !) : comment faire apparaître dans "De" ou "From", à l'arrivée du mail, le nom de la personne. Parce que, jusqu'à maintenant, j'ai mis l'email entré en "From", mais arrivé dans la boite de récép de Gmail, je vois comme expéditeur le préfixe de l'email (avant le @), alors que certains sites qui vous envoient des mails apparaissent avec leur nom, pas le préfixe de leur adresse.
Je ne suis pas sûr que c'est possible, mais si quelqu'un a une idéé...
Ciao
Je ne suis pas sûr que c'est possible, mais si quelqu'un a une idéé...
Ciao
Plus clairement : que l'expéditeur apparaisse comme ça : Nom <email@domaine.com>
Mais que quand on fait "Répondre", cela réponde bien à email@domaine.com
Voilà
Mais que quand on fait "Répondre", cela réponde bien à email@domaine.com
Voilà
salut,
tu as trouvé la réponse.
tu ajoutes "Nom <email@domaine.com>" dans le header 'From' de ton mail.
il faudrait peut être vérifier la syntaxe, mais il me semble que tu as visé juste
sinon pour les mail, (tu l'as fait par toi même) la bonne école c'est ta boite mail !!!
il faut regarder le code source des news letters des grandes entreprises. ce n'est pas forcement le nec plus ultra technique mais ça doit passer partout.
tu as trouvé la réponse.
tu ajoutes "Nom <email@domaine.com>" dans le header 'From' de ton mail.
il faudrait peut être vérifier la syntaxe, mais il me semble que tu as visé juste
sinon pour les mail, (tu l'as fait par toi même) la bonne école c'est ta boite mail !!!
il faut regarder le code source des news letters des grandes entreprises. ce n'est pas forcement le nec plus ultra technique mais ça doit passer partout.