[PHP] formulaire pour mail à améliorer... ? ?
Fermé
liegeus
Messages postés
113
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
24 octobre 2012
-
28 juin 2004 à 14:03
yonis5555 Messages postés 71 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 7 janvier 2010 - 26 août 2007 à 13:55
yonis5555 Messages postés 71 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 7 janvier 2010 - 26 août 2007 à 13:55
A voir également:
- [PHP] formulaire pour mail à améliorer... ? ?
- Yahoo mail - Accueil - Mail
- Publipostage mail - Accueil - Word
- Formulaire de réclamation facebook - Guide
- Windows live mail - Télécharger - Mail
- Boîte mail française gratuite - Guide
16 réponses
Pour les "\", tu es sur que ce sont bien les espaces ?
Essayes de mettre cette ligne avant d'envoyer le mail :
stripslashes($textarea);
Si ça ne marche pas, essayes :
str_replace("\", " ", $textarea);
Pour l'adresse, au lieu de mettre :
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email");
Rajoutes un paramètre pour que ca donne ca :
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email", "From: ".$email);
Essayes de mettre cette ligne avant d'envoyer le mail :
stripslashes($textarea);
Si ça ne marche pas, essayes :
str_replace("\", " ", $textarea);
Pour l'adresse, au lieu de mettre :
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email");
Rajoutes un paramètre pour que ca donne ca :
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email", "From: ".$email);
oups, pour les \, c'est pas pour les espaces, c'est quand il y a un apostrophe, quad on écrit "l'amis" dans le formulaire, on reçois "l\'amis" dans le mail...
alors docteur c'est grave? que dois je faire ?
par contre, rajouter un paramètre "From: ".$email ça ne marche pas... les mails n'arrivent plus quand je le rajoute....
merci
alors docteur c'est grave? que dois je faire ?
par contre, rajouter un paramètre "From: ".$email ça ne marche pas... les mails n'arrivent plus quand je le rajoute....
merci
Utilisateur anonyme
29 juin 2004 à 13:12
29 juin 2004 à 13:12
Salut,
Voila comment je vois le truc:
Ca devrait fonctionner comme cela. A noter, le champ From est optionnel étant donné qu'il est par défaut défini dans le php.ini
A+
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Voila comment je vois le truc:
<? $message = $_POST["textarea"] ; $message = stripslashes($message); $email = $_POST["email"] ; if($textarea=="") { print "écrivez un contenu au mail"; } else { if($email==""){ print "Veuillez écrire votre adresse mail"; } else { print "Votre message : ".$textarea." <br>"; print "Votre mail : ".$email." <br>"; print "Votre message a bien été envoyé<br>"; mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$message\n\n\nVoici l'email :\n\n$email"); } } ?>
Ca devrait fonctionner comme cela. A noter, le champ From est optionnel étant donné qu'il est par défaut défini dans le php.ini
A+
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
bon même comme ça, j'ai des "\" à toutes les apostrophes dans les mails reçus... mais j'ai pu régler le pb de l'expediteur. merci les gars
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour, jai créé un formulaire php, tout marche parfaitement , mais une seul chose, je voudrais savoir comment faire pour que si mon formulaire voit que la eprsonne na pas remplis des case et quel voit quil y a des case vides quel disent veuillez remplir les case.
Comment fait ton cela ?
merci
Comment fait ton cela ?
merci
salut ;o)
Je verrais plutôt la chose comme ca en fait :
Attention : à la ligne des entetes, ne mets pas d'espaes entre els guillemets, je l'ai fait pour les differencier l'un de l'autre ;o)
<?
$body = $_POST["textarea"] ;
$message = stripslashes($body);
$email = $_POST["email"] ;
$entetes = 'From : " '.$email.' " <'.$email.'>';
if( empty($message) ) {
print"écrivez un contenu au mail"; }
elseif(empty($email)) {
print "Veuillez écrire votre adresse mail"; }
else {
print "Votre message : ".$message." <br>";
print "Votre mail : ".$email." <br>";
print "Votre message a bien été envoyé<br>";
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email", $entetes); }
?>
Je verrais plutôt la chose comme ca en fait :
Attention : à la ligne des entetes, ne mets pas d'espaes entre els guillemets, je l'ai fait pour les differencier l'un de l'autre ;o)
<?
$body = $_POST["textarea"] ;
$message = stripslashes($body);
$email = $_POST["email"] ;
$entetes = 'From : " '.$email.' " <'.$email.'>';
if( empty($message) ) {
print"écrivez un contenu au mail"; }
elseif(empty($email)) {
print "Veuillez écrire votre adresse mail"; }
else {
print "Votre message : ".$message." <br>";
print "Votre mail : ".$email." <br>";
print "Votre message a bien été envoyé<br>";
mail("adrdestinataire@hotmail.com", "Formulaire", "Voici le message :\n\n$textarea\n\n\nVoici l'email :\n\n$email", $entetes); }
?>
Re-Salut ;o)
Désolé de poster un 2nd message, mais je n'avais pas vu la dernière question lle de Magnar) >_<
Il faut que lorsque tu recupere les donnée du formulaire (on va dire nom, email, message), il faut que tu entre la commande suivante :
<?php
$nom = $_POST["nom"];
$email = $_POST["email"];
$message = $_POST["messages"];
// Tu dois entrer le bloc ci dessous :
if ( empty($nom) || empty($email) || empty($message) )
{
echo 'Vous n'avez pas rempli une rubrique nécessaire ;o) <br> <a href="javascript:history.back()">Retour</a>
}
// et tu contiue ton script
?>
pour el retour, je ne sais pas si le code jscript est bon, car je susi une daube en jscript :P (ou tu peux mettre le message de ton choix)
Désolé de poster un 2nd message, mais je n'avais pas vu la dernière question lle de Magnar) >_<
Il faut que lorsque tu recupere les donnée du formulaire (on va dire nom, email, message), il faut que tu entre la commande suivante :
<?php
$nom = $_POST["nom"];
$email = $_POST["email"];
$message = $_POST["messages"];
// Tu dois entrer le bloc ci dessous :
if ( empty($nom) || empty($email) || empty($message) )
{
echo 'Vous n'avez pas rempli une rubrique nécessaire ;o) <br> <a href="javascript:history.back()">Retour</a>
}
// et tu contiue ton script
?>
pour el retour, je ne sais pas si le code jscript est bon, car je susi une daube en jscript :P (ou tu peux mettre le message de ton choix)
Je comprend pas tout a fait ton expliquation, jai un site et jai 2 fichier, un pour le formulaire en html et un nomé envoi.php pour l'envoyé. Je veux faire une vérification pour voir si tout les champ on été remplis . Dois-je créé un nouveau fichier php et mettre ton contenu dedans, svp peut tu rexpliquer plus clairment,
Merci davance
P.S : je suis débutant dans le php
Merci davance
P.S : je suis débutant dans le php
Bonjour encore une fois,
J'aimerais savoir le code php, pour mettre une image (gif) en background
Merci
J'aimerais savoir le code php, pour mettre une image (gif) en background
Merci
Utilisateur anonyme
2 juil. 2004 à 09:36
2 juil. 2004 à 09:36
Bonjour,
Ta question concernant un autre sujet, merci la prochaine fois de recréer un nouveau post.
Il n'y a pas de "code php" pour mettre une image en fond.
Il s'agit de html.
Insere dans la balise body l'option background.
<html>
<body backgroud = "./fondecran.gif">
Hello world
</body>
</html>
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Ta question concernant un autre sujet, merci la prochaine fois de recréer un nouveau post.
Il n'y a pas de "code php" pour mettre une image en fond.
Il s'agit de html.
Insere dans la balise body l'option background.
<html>
<body backgroud = "./fondecran.gif">
Hello world
</body>
</html>
Kalamit,
Vol au dessus d'un nid de Pika-baffe. :)
Pour revenir au formulaire,
Je fait un script php et j'ai mis mes code si un champs n'est pas remplis un message survien et la fonction exit(); s'ajoute.Cela marche normalement. Par contre si tout les champs sont corectement inscrit, la fonction exit(); reste toujours la et le formulaire est incapable d'envoyer.
Voici le code :
if(empty($email))
print "Vous n'avez pas repondu à ce champ : Votre adresse E-mail:<br><br></center>";
{
print "<center>Cliquez sur Précédent pour recommencer</center>";
exit();
}
$recipient = "voro@hotmail.com";
$subject = "Formulaire";
$mailheaders = "From:Formulaire<> \n";
$mailheaders .= "Reply-To: $voro@hotmail.com\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<HTML><HEAD>";
echo "<TITLE></TITLE></HEAD><body>";
echo "<H1 align=center>Formulaire envoyée avec succès.Merci !</H1>";
echo "<P align=center>";
echo Merci<br</P>";
echo "</BODY></HTML>";
?>
En aute mots : si tout les camps sont corectement inscrit, le reste du script apres exit(); ne marche pas
Comment faire pour que si les champs sont inscrits, exit(); s'annule et le formulaire est envoyé
Merci d'avance
Je fait un script php et j'ai mis mes code si un champs n'est pas remplis un message survien et la fonction exit(); s'ajoute.Cela marche normalement. Par contre si tout les champs sont corectement inscrit, la fonction exit(); reste toujours la et le formulaire est incapable d'envoyer.
Voici le code :
if(empty($email))
print "Vous n'avez pas repondu à ce champ : Votre adresse E-mail:<br><br></center>";
{
print "<center>Cliquez sur Précédent pour recommencer</center>";
exit();
}
$recipient = "voro@hotmail.com";
$subject = "Formulaire";
$mailheaders = "From:Formulaire<> \n";
$mailheaders .= "Reply-To: $voro@hotmail.com\n\n";
mail($recipient, $subject, $msg, $mailheaders);
echo "<HTML><HEAD>";
echo "<TITLE></TITLE></HEAD><body>";
echo "<H1 align=center>Formulaire envoyée avec succès.Merci !</H1>";
echo "<P align=center>";
echo Merci<br</P>";
echo "</BODY></HTML>";
?>
En aute mots : si tout les camps sont corectement inscrit, le reste du script apres exit(); ne marche pas
Comment faire pour que si les champs sont inscrits, exit(); s'annule et le formulaire est envoyé
Merci d'avance
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
3 juil. 2004 à 02:09
3 juil. 2004 à 02:09
Salut,
Il faut placer l'accolade juste après la condition. Donc ça donne:
Et pour faire plus simple, comme exit() de permet d'ajouter un message, tu peux faire comme ça :
Il faut placer l'accolade juste après la condition. Donc ça donne:
if(empty($email)) { print "Vous n'avez pas repondu à ce champ : Votre adresse E-mail:<br><br></center>"; print "<center>Cliquez sur Précédent pour recommencer</center>"; exit(); }
Et pour faire plus simple, comme exit() de permet d'ajouter un message, tu peux faire comme ça :
if(empty($email)) { exit("<center>Vous n'avez pas repondu à ce champ : Votre adresse E-mail:<br><br>Cliquez sur Précédent pour recommencer</center>"; } Voilà, et si je puis me premettre quelques remarques.... Je ne comprends pas pourquoi tu as affecté deux fois une valeur différente $mailheaders. Et je comprends pas trop non plus d'où vient la variable $voro@hotmail.com (peut être voulais tu mettre $recipient. Voilà, et tu as oublié une guillemet làecho Merci<br</P>";
Voilà :-)
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
3 juil. 2004 à 02:21
3 juil. 2004 à 02:21
Oups, j'ai fait une tite erreur dans ma mise en page.
Désolé je peux plus éditer :-)
Désolé je peux plus éditer :-)
yonis5555
Messages postés
71
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
7 janvier 2010
2
26 août 2007 à 13:25
26 août 2007 à 13:25
Bonjour,
Dans mon formulaire de contact, j'ai voulu poser une question de securité, avant que le mail soit envoyé.
Du genre:
Dans ma feuille contactus.html
<form action="contactus1.php" method="post" enctype="multipart/form-data" onSubmit="MM_validateForm('name','','R','mail','','RisEmail','Answer','','R','message','','R');return document.MM_returnValue">
<p>Votre nom : <br />
<input name="name" type="text" id="name" />
<br />
Votre e-Mail : <br />
<input name="mail" type="text" id="mail" />
<br />
Votre message : <br />
<textarea name="message" cols="50" rows="5" id="message"></textarea>
<input type="hidden" name="objet" value="Object" />
</p>
<p>De quelle couleur est le ciel?</p>
<input name="Answer" type="text" id="Answer"size="11" />
<br />
<input name="submit" type="submit" value="Envoyer !" />
<input name="reset" type="reset"/>
</p>
</form>
---------------------------------------------------------------
Dans contactus1.php
<?php
$answer = $_POST['Answer'];
$couleur = 'bleu';
if ($answer != "$couleur"){
echo("Erreur: ce n'est pas la bonne reponse...");
echo("<meta http-equiv=\"refresh\" content=\"1; url=contactus.html\" />");
}else{
echo ("Veuillez confirmer l'envoi du message");
}
?>
<?php
//On stocke les infos que le visiteur a envoyé dans des variables
$name = htmlentities($_POST['name']);
$mail= htmlentities($_POST['mail']);
$message = htmlentities($_POST['message']);
//L'e-Mail du destinataire du message
$destinataire = 'monemail@gmail.com';
//L'objet du message, définis dans le champs caché
$objet = $_POST['objet'];
//Le message qui vous est envoyé
$message_envoye =
'Nom : ' . $name .'\r\n'.
'E-Mail :' . $mail . '\r\n'.
'Message : ' . $message .'\r\n' .
'X-Mailer: PHP/' . phpversion();
$ip = $_SERVER['REMOTE_ADDR'];
$message_envoye .= 'IP: $ip\n';
//Le mail du posteur
$from = 'From: ' .$destinataire;
echo("
<form method='post' action='contactus.php'>");
echo("<input name='name' type='hidden' id='name' value='$name'> \n");
echo("<input name='mail' type='hidden' id='mail' value='$mail'> \n");
echo("<input name='message' type='hidden' id='message' value='$message'> \n");
echo("<input name='destinataire' type='hidden' id='destinataire' value='$destinataire'> \n");
echo("<input type='hidden' name='objet' value='$objet'> \n");
echo(" <input type='hidden' name='ip' value='$ip'> \n");
echo("<input name='Suivant' type='submit' value='Suivant'> \n");
echo("</form>\n");?>
-----------------------------------------------------
Dans contactus.php
<?php
//On stocke les infos que le visiteur a envoyé dans des variables
$name = htmlentities($_POST['name']);
$mail= htmlentities($_POST['mail']);
$message = htmlentities($_POST['message']);
//L'e-Mail du destinataire du message
$destinataire = "monemail@gmail.com";
//L'objet du message, définis dans le champs caché
$objet = $_POST['objet'];
//Le message qui vous est envoyé
$message_envoye =
'Nom : ' . $name ."\r\n".
'E-Mail :' . $mail . "\r\n".
'Message : ' . $message ."\r\n" .
'X-Mailer: PHP/' . phpversion();
$ip = $_SERVER['REMOTE_ADDR'];
$message_envoye .= "IP: $ip\n";
//Le mail du posteur
$from = "From: " .$destinataire;
if(mail($destinataire, $objet, $message_envoye, $from)){
echo ('Merci . Votre message a été envoyé avec succès .');
echo ('<meta http-equiv="refresh" content="2;url=home.html"');
} else {
echo ('<p>Erreur mail non envoyé</p>');
echo ('<meta http-equiv="refresh" content="2;url=contactus.html"');
}
?>
----------
Voila mon probleme: quand je recois l'email, s'il y a des appostrophe dans le mail je ne recois rien apres les appostrophe par exemple:
Mon message: Bonjour je m'appelle Jonathan. J'ai 20 ans.
L'e-mail que je recois:
Bonjour je m\\
Auriez vous une solution?
Dans mon formulaire de contact, j'ai voulu poser une question de securité, avant que le mail soit envoyé.
Du genre:
Dans ma feuille contactus.html
<form action="contactus1.php" method="post" enctype="multipart/form-data" onSubmit="MM_validateForm('name','','R','mail','','RisEmail','Answer','','R','message','','R');return document.MM_returnValue">
<p>Votre nom : <br />
<input name="name" type="text" id="name" />
<br />
Votre e-Mail : <br />
<input name="mail" type="text" id="mail" />
<br />
Votre message : <br />
<textarea name="message" cols="50" rows="5" id="message"></textarea>
<input type="hidden" name="objet" value="Object" />
</p>
<p>De quelle couleur est le ciel?</p>
<input name="Answer" type="text" id="Answer"size="11" />
<br />
<input name="submit" type="submit" value="Envoyer !" />
<input name="reset" type="reset"/>
</p>
</form>
---------------------------------------------------------------
Dans contactus1.php
<?php
$answer = $_POST['Answer'];
$couleur = 'bleu';
if ($answer != "$couleur"){
echo("Erreur: ce n'est pas la bonne reponse...");
echo("<meta http-equiv=\"refresh\" content=\"1; url=contactus.html\" />");
}else{
echo ("Veuillez confirmer l'envoi du message");
}
?>
<?php
//On stocke les infos que le visiteur a envoyé dans des variables
$name = htmlentities($_POST['name']);
$mail= htmlentities($_POST['mail']);
$message = htmlentities($_POST['message']);
//L'e-Mail du destinataire du message
$destinataire = 'monemail@gmail.com';
//L'objet du message, définis dans le champs caché
$objet = $_POST['objet'];
//Le message qui vous est envoyé
$message_envoye =
'Nom : ' . $name .'\r\n'.
'E-Mail :' . $mail . '\r\n'.
'Message : ' . $message .'\r\n' .
'X-Mailer: PHP/' . phpversion();
$ip = $_SERVER['REMOTE_ADDR'];
$message_envoye .= 'IP: $ip\n';
//Le mail du posteur
$from = 'From: ' .$destinataire;
echo("
<form method='post' action='contactus.php'>");
echo("<input name='name' type='hidden' id='name' value='$name'> \n");
echo("<input name='mail' type='hidden' id='mail' value='$mail'> \n");
echo("<input name='message' type='hidden' id='message' value='$message'> \n");
echo("<input name='destinataire' type='hidden' id='destinataire' value='$destinataire'> \n");
echo("<input type='hidden' name='objet' value='$objet'> \n");
echo(" <input type='hidden' name='ip' value='$ip'> \n");
echo("<input name='Suivant' type='submit' value='Suivant'> \n");
echo("</form>\n");?>
-----------------------------------------------------
Dans contactus.php
<?php
//On stocke les infos que le visiteur a envoyé dans des variables
$name = htmlentities($_POST['name']);
$mail= htmlentities($_POST['mail']);
$message = htmlentities($_POST['message']);
//L'e-Mail du destinataire du message
$destinataire = "monemail@gmail.com";
//L'objet du message, définis dans le champs caché
$objet = $_POST['objet'];
//Le message qui vous est envoyé
$message_envoye =
'Nom : ' . $name ."\r\n".
'E-Mail :' . $mail . "\r\n".
'Message : ' . $message ."\r\n" .
'X-Mailer: PHP/' . phpversion();
$ip = $_SERVER['REMOTE_ADDR'];
$message_envoye .= "IP: $ip\n";
//Le mail du posteur
$from = "From: " .$destinataire;
if(mail($destinataire, $objet, $message_envoye, $from)){
echo ('Merci . Votre message a été envoyé avec succès .');
echo ('<meta http-equiv="refresh" content="2;url=home.html"');
} else {
echo ('<p>Erreur mail non envoyé</p>');
echo ('<meta http-equiv="refresh" content="2;url=contactus.html"');
}
?>
----------
Voila mon probleme: quand je recois l'email, s'il y a des appostrophe dans le mail je ne recois rien apres les appostrophe par exemple:
Mon message: Bonjour je m'appelle Jonathan. J'ai 20 ans.
L'e-mail que je recois:
Bonjour je m\\
Auriez vous une solution?
yonis5555
Messages postés
71
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
7 janvier 2010
2
26 août 2007 à 13:55
26 août 2007 à 13:55
j'ai oublié de préciser que j'ai vérifié avec phpinfo si j'avais une librairie GD et j'en ai pas.. donc cùest impossible de faire une image cryptée... s'il y a un moyen de l'installer merci de me le dire ça faliciterait tout