Help envoi d'un formulaire en PHP
Fermé
Seraphin49
-
13 oct. 2009 à 03:59
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 14 oct. 2009 à 02:08
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 14 oct. 2009 à 02:08
A voir également:
- Help envoi d'un formulaire en PHP
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Programmer l'envoi d'un sms - Guide
- Votre envoi est en transit sur nos plateformes logistiques. - Forum Consommation & Internet
- Formulaire instagram compte suspendu - Guide
12 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 oct. 2009 à 04:08
13 oct. 2009 à 04:08
tu testes if(isset($_POST[Valider]))
hors ton bouton submit n'a pas de name, donc normal que tu ne passes pas dans ton if
<input type="submit" value="Valider" />
il faut
ensuite les parametres de la fonction mail sont : mail(destinataire,sujet,message,entete)
donc tu dois mettre dans une variable $message les $nom $societe etc....
et ensuite dans le From il faut que ce soit TON EMAIL
hors ton bouton submit n'a pas de name, donc normal que tu ne passes pas dans ton if
<input type="submit" value="Valider" />
il faut
<input type="submit" name="Valider" value="Valider" />
ensuite les parametres de la fonction mail sont : mail(destinataire,sujet,message,entete)
donc tu dois mettre dans une variable $message les $nom $societe etc....
et ensuite dans le From il faut que ce soit TON EMAIL
Ca ne fonctionne toujours pas.
Voici mon code php maintenant :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="$nom,$prenom,$societe,$adresse,$ville_cp,$telephone,$email,$lemessage";
$mon_url = "http://www.url.fr";
$entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From: mon@email.fr\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
J'ai en permanence le message : Un problème s'est produit lors de l'envoi du message.
Merci de bien vouloir m'aider...
@+
Voici mon code php maintenant :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="$nom,$prenom,$societe,$adresse,$ville_cp,$telephone,$email,$lemessage";
$mon_url = "http://www.url.fr";
$entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From: mon@email.fr\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
J'ai en permanence le message : Un problème s'est produit lors de l'envoi du message.
Merci de bien vouloir m'aider...
@+
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 oct. 2009 à 14:52
13 oct. 2009 à 14:52
Pour concatener on ne fais pas comme ca en php
$message="$nom,$prenom,$societe,$adresse,$ville_cp,$telephone,$email,$lemessage";
il faut par exemple:
$message="$nom,$prenom,$societe,$adresse,$ville_cp,$telephone,$email,$lemessage";
il faut par exemple:
$message="Mr / Mme: ".$nom." ".$prenom."\n"; // pour le retour a la ligne dans le mail on met \n $message.="Societe:".$societe."\n"; $message.="Adresse: ".$adresse."\n"; $message.=$ville_cp."\n"; $message.="Telephone: ".$telephone."\n"; $message.="Email: '.$email."\n\n"; $message.=$lemessage"; // .= ca concatene chaque ligne
Merci de ton Alain (et non Allan, désolé) mais ça ne fonctionne toujours pas. Je désespère !
Voici mon code actuellement :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="Mr / Mme: ".$nom." ".$prenom."\n";
$message.="Societe:".$societe."\n";
$message.="Adresse: ".$adresse."\n";
$message.=$ville_cp."\n";
$message.="Telephone: ".$telephone."\n";
$message.="Email: ".$email."\n\n";
$message.="$lemessage";
$mon_url = "http://www.url.fr";
$entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From:mon@email.fr\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
Ca me renvoie toujours la phrase : Un problème s'est produit lors de l'envoi du message.
Voici mon code actuellement :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="Mr / Mme: ".$nom." ".$prenom."\n";
$message.="Societe:".$societe."\n";
$message.="Adresse: ".$adresse."\n";
$message.=$ville_cp."\n";
$message.="Telephone: ".$telephone."\n";
$message.="Email: ".$email."\n\n";
$message.="$lemessage";
$mon_url = "http://www.url.fr";
$entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From:mon@email.fr\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
Ca me renvoie toujours la phrase : Un problème s'est produit lors de l'envoi du message.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 oct. 2009 à 15:23
13 oct. 2009 à 15:23
1- est ce que la partie du if fonctionne ?
2- $entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From:mon@email.fr\r\n";
la aussi il faut concatener par .= et changer l'ordre
et je suppose que tu remplce mon@email.fr par ton adresse valide
2- $entete ="MIME-Version: 1.0\r\n";
$entete = "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete ="From:mon@email.fr\r\n";
la aussi il faut concatener par .= et changer l'ordre
$entete ="From:mon@email.fr\r\n"; $entete.= "Content-type: text/plain; charset=iso-8859-1\r\n"; $entete .="MIME-Version: 1.0\r\n";
et je suppose que tu remplce mon@email.fr par ton adresse valide
la partie if fonctionne
J'ai remplacé les $entete par les dernières que tu m'as donné et oui, bien sûr, mon@email.fr est remplacé par mon véritable email.
donc ça donne ça :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="Mr / Mme: ".$nom." ".$prenom."\n";
$message.="Societe:".$societe."\n";
$message.="Adresse: ".$adresse."\n";
$message.=$ville_cp."\n";
$message.="Telephone: ".$telephone."\n";
$message.="Email: ".$email."\n\n";
$message.="$lemessage";
$mon_url = "http://www.2wcom.fr";
$entete ="From:mon@email.fr\r\n";
$entete.= "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete .="MIME-Version: 1.0\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
J'ai toujours ce p.... de message !
J'ai remplacé les $entete par les dernières que tu m'as donné et oui, bien sûr, mon@email.fr est remplacé par mon véritable email.
donc ça donne ça :
<?php
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]);
if(empty($nom)){
echo 'Veuillez indiquer votre nom. <br/>';
}
elseif(empty($prenom)){
echo 'Veuillez indiquer votre prénom.<br/>';
}
elseif(empty($societe)){
echo 'Veuillez indiquer le nom de votre société.<br/>';
}
elseif(empty($adresse)){
echo 'Veuillez indiquer l adresse de votre société.<br/>';
}
elseif(empty($ville_cp)){
echo 'Veuillez indiquer la ville et le code postal de votre société.<br/>';
}
elseif(empty($email)){
echo 'Veuillez indiquer votre email.<br/>';
}
elseif(empty($lemessage)){
echo 'Veuillez indiquer votre message.<br/>';
}
else
{
$mon_email = "mon@email.fr";
$sujet="Demande de devis";
$message="Mr / Mme: ".$nom." ".$prenom."\n";
$message.="Societe:".$societe."\n";
$message.="Adresse: ".$adresse."\n";
$message.=$ville_cp."\n";
$message.="Telephone: ".$telephone."\n";
$message.="Email: ".$email."\n\n";
$message.="$lemessage";
$mon_url = "http://www.2wcom.fr";
$entete ="From:mon@email.fr\r\n";
$entete.= "Content-type: text/plain; charset=iso-8859-1\r\n";
$entete .="MIME-Version: 1.0\r\n";
if (@mail($mon_email,$sujet,$message,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
J'ai toujours ce p.... de message !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 oct. 2009 à 18:41
13 oct. 2009 à 18:41
si tu enleves le @
if (@mail($mon_email,$sujet,$message,$entete))
as tu un message d'erreur php ?
if (@mail($mon_email,$sujet,$message,$entete))
as tu un message d'erreur php ?
Ca marrrrrrrrrrche !!
Tain ! j'y croyais plus. Un grand merci à toi !
Mais j'ai quand même une dernière question :
Je reçois toutes les info par mail, ça c'est nickel mais les accents sont remplacés de cette manière : é
J'imagine qu'il existe un moyen mais j'ignore lequel.
En tout cas, encore une fois, un grand merci à toi Alain !
Tain ! j'y croyais plus. Un grand merci à toi !
Mais j'ai quand même une dernière question :
Je reçois toutes les info par mail, ça c'est nickel mais les accents sont remplacés de cette manière : é
J'imagine qu'il existe un moyen mais j'ignore lequel.
En tout cas, encore une fois, un grand merci à toi Alain !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
14 oct. 2009 à 01:05
14 oct. 2009 à 01:05
et si tu remplace par
'Content-type: text/plain; charset=UTF-8'
C'est pareil. Que ce soit en Content-type: text/plain; charset=iso-8859-1 ou en Content-type: text/plain; charset=UTF-8 j'obtiens toujours ça -> é à la place de n'importe quel accent.
gadoro
Messages postés
17
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
14 octobre 2009
14 oct. 2009 à 01:41
14 oct. 2009 à 01:41
Salut
dans cette section de ton code
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]
rajoute
$lemessage =htmlspecialchars($formCommentaire, ENT_QUOTES);
je pense que ça va fonctionner
dans cette section de ton code
if(isset($_POST["Valider"]))
{
$nom = stripslashes($_POST["nom"]);
$prenom = stripslashes($_POST["prenom"]);
$societe = stripslashes($_POST["societe"]);
$adresse = stripslashes($_POST["adresse"]);
$ville_cp = stripslashes($_POST["ville_cp"]);
$telephone = stripslashes($_POST["telephone"]);
$email = stripslashes($_POST["email"]);
$lemessage = stripslashes($_POST["lemessage"]
rajoute
$lemessage =htmlspecialchars($formCommentaire, ENT_QUOTES);
je pense que ça va fonctionner
J'aimerais te dire que ça a marché mais non. Au contraire, ça me supprime le message dans le corps du mail et les accents sont toujours remplacés de la même façon.
j'ai aussi essayé en iso-8859-15....pas mieux.
le htmlentities......pas mieux non plus (ou alors je ne sais pas m'en servir)
c'est quoi le $formCommentaire dans ton code ?
j'ai aussi essayé en iso-8859-15....pas mieux.
le htmlentities......pas mieux non plus (ou alors je ne sais pas m'en servir)
c'est quoi le $formCommentaire dans ton code ?
gadoro
Messages postés
17
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
14 octobre 2009
14 oct. 2009 à 02:06
14 oct. 2009 à 02:06
oups excuse moi, c'est un problème que j'ai règlé car j'avais le même problème que toi. J'ai fait un copier coller de mon code et j'ai oublié de changer le $formCommentaire pour $lemessage.
donc:
$lemessage =htmlspecialchars($lemessage , ENT_QUOTES);
donc:
$lemessage =htmlspecialchars($lemessage , ENT_QUOTES);
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
14 oct. 2009 à 02:08
14 oct. 2009 à 02:08
Dans ta page de formulaire tu es en Charteset UFT8
alors essayes en passant par la fonction utf8_decode
et laisses chartset iso.... dsmns $entete
alors essayes en passant par la fonction utf8_decode
et laisses chartset iso.... dsmns $entete
13 oct. 2009 à 11:49