11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

voila un formulaire de contact, dont je n'arrive pas a reçevoir l'e-mail:

(d'abordle fichier html)



<form method="post" action="envoi.php">
<p><label for="nom">Nom *</label> : <input type="text" name="nom" placeholder="Entrez votre nom" required/></p>
<p><label for="prenom">Prénom *</label> : <input type="text" name="prenom" placeholder="Entrez votre prénom"required/> </p>
<p><label for="mail">Email *</label> : <input type="mail" name="mail" placeholder="Entrez une adresse valide"required/></p>
<p><em><label for="Message">Votre message</label><br /><textarea name="message" id="message" required></textarea></em></p>
<input type="submit" value="Envoyer" />
</form>
(et maintenant le php)

<?php

// Envoi du message sur ma boite mail

    $email = $_POST['mail'];
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    
    $sujet="Formulaire de contact";
    $mailDestinataire=EMAIL 
= "From: ".$prenom." ".$nom."<".$email."> \nMime-Version:\n"; 
	$from .= " 1.0\nContent-Type: text/html; charset=UTF-8\n";
	$header= $Sujet;
	
	$messageMail = "
            Formulaire de contact:
            
            Nom :   ".$nom."
            Prénom :   ".ucfirst($prenom)."
            Email :   ".$email."
			Objet :   ".$objet."
            
            ----------- Commentaires -----------
            ".Stripslashes($_POST['commentaire'])."
            ---------------------------------------";
            
	mail($mailDestinataire, $sujet, $messageMail, $from);

?>

Modifié par sylvix (23 Jan 2018 - 12:27)
---Bonjour.
Effectivement c'est la jungle (qu'il faut traverser à la machette...) et tu y as notamment perdu ta textarea :
$message = $_POST['message'];

---Ce code (bcp plus simple) devrait atteindre ta boite aux mails.
Attention je n'ai pas repris tes variables $nom et $prenom, tu dois les inclure dans $message (à la manière que tu souhaites).
$to = 'sylvix95@gmail.com' ;
$subject = 'ce_que_tu_veux' ;
$message = nl2br($message) ;
$headers  = 'From: <' . $email .'>' . "\n" ;
$headers .= 'Content-Type: text/html; charset=iso-8859-15' ;
mail ($to, $subject, $message, $headers) ;

---particularités :
1- utiliser nl2br() pour un affichage correct dans ta boite mail !
2- concaténer correctement les sauts "\n" dans $headers .

" Less is more God is in the details ! "
Je te remercie de ta réponse, mais malheureusement ça n'a pas fonctionné pour moi Smiley decu

J'ai peut-être oublié quelque chose dans l'explication je vais tout reprendre depuis le début :

je ne pense pas avoir précisé ça (intelligente que-je-suis)...

j'ai un fichier contact.html dedans il y a ce code :

<form method="post" action="envoi.php">

<p><label for="nom">Nom *</label> : <input type="text" name="nom" placeholder="Entrez votre nom" required/></p>

<p><label for="prenom">Prénom *</label> : <input type="text" name="prenom" placeholder="Entrez votre prénom"required/> </p>

<p><label for="mail">Email *</label> : <input type="mail" name="mail" placeholder="Entrez une adresse valide"required/></p>

<p><em><label for="Message">Votre message</label><br /><textarea name="message" id="message" required></textarea></em></p>

<input type="submit" value="Envoyer" /></form>


De plus j'ai un fichier envoi.php qui est lié a la commande <form> (il me semble)
avec se nouveau code de iakou (merci ^ ^) :

// Envoi du message sur ma boite mail

$to = EMAIL ;
$subject = 'Formulaire de contact' ;
$message = nl2br($message) ;
$headers  = 'From: <' . $email .'>' . "\n" ;
$headers .= 'Content-Type: text/html; charset=iso-8859-15' ;
mail ($to, $subject, $message, $headers) ;?>



Malgré les modifications apportées, ça n'a pas marché

voila j'avait peut être oublié un ou deux truc, c’est peut être pour ça que ça ne fonctionne pas

pourrais-je avoir d'autre réponse ? SVP

Merci d'avance !
Modifié par sylvix (23 Jan 2018 - 12:26)
Bonsoir.

Oui c'est correct : envoi.php est bien requis par le paramètre action de ton FORM contact.html !

J'ai bien vu le ?> de fin de code php, mais pas le <?php d'ouverture de code... Je suppose que c'est en amont, et que derrière tu as bien récupéré tes données $_POST : nom, prenom, mail et message...

Attention dans ton html tu utilises la variable mail et dans ton php $email donc :
$email = $_POST['mail'];
Comme tu l'as bien écrit au début.

par ailleurs après le ?> que fais tu ?... Rien ou y-a-t-il de l'HTML derrière ?

<table width="370" height="245" border="1" align="center">
  <tr>
    <td align="center"><strong>Votre demande <br>
est bien prise en compte.</strong><br>
<br><strong>Une r&eacute;ponse vous sera envoy&eacute;e prochainement.<br />
<strong>Merci, &agrave; bient&ocirc;t</strong><br /><br /><a href="Contact.html">Retour vers le site</a></strong></td>
  </tr>
</table>



comment tu ferait toi ? avec les $_POST de nom, prenom, mail et message ?

Ou tu les placerais ?

svp
merci d'avance
Modifié par sylvix (14 Nov 2013 - 09:29)
Modérateur
Pas de message d'errurs? rien?

Le mail peut bloquer de pleins de manières, pour différentes raisons.

déja si tu éxecutes ce scrip uniquement (en remplaçant l'adresse email par la tienne):

mail('tonAdresse@truc.com', 'un sujet', 'un message') ;

est-ce que cela fonctionne?
a) si non: il faudra les détails de ton environnement de travail (OS, serveur, hébergeur, etc.)
b) si oui: améliore progressivement ce script jusqu'au résultat final en repérant où ça plante.
Modifié par kustolovic (14 Nov 2013 - 13:06)
Bonjour,

Si tu testes sous WAMP Serveur, il faut initialiser 1 paramètre dans php.ini. Accès par l'icône WAMP : dossier PHP > php.ini

C'est un ficher TXT plein de commentaires. Assez bas, il y a un pavé Module Settings, et encore quelques lignes plus bas le paramètre [mail fonction].

Il faut mettre à jour ce paramètre : oter le point virgule de commentaire en 1ère position et préciser le smtp de ton fai (fournisseur d'accès internet). Exemple : SMTP = smtp.nordnet.fr

Si tu testes avec un autre "émulateur" tu dois avoir la même problématique.

Est-ce que ça qui coince ?
Bonjour,

J'ai aussi oublié cela dans php.ini (quelques lignes en dessous du paramètre SMTP :
sendmail_from = "sylvix95@gmail.com"

Sous WAMP, la fonction mail enverra donc un message de ton compte de messagerie vers l'adresse correspondant au paramètre '$to' de envoi.php. En d'autres termes tu envoies un message à toi-même si tu as codé :
$to = "sylvix95@gmail.com" ;

Tout laisse supposer que tu est en phase de TEST. C'est pour cela que j'évoque le paramétrage de WAMP que tout le monde utilise. mais je ne sais pas si c'est cela qui coince, car tu ne réponds pas !...
Bonsoir.

De rien !
Mais pourrais-tu préciser ce qui "clochait" ?...
Pour que ceux qui suivaient le débat (dont moi) ne restent pas dans l'ignorance...
Cdlt

P.S N'oublies pas de marquer ton "post" comme "Résolu".
Et bah je suis juste débile en fait,

Mon Hebergeur n'acceptais pas les PHP, j'ai du parlementer avec lui.

mais il y avait aussi un problème au niveau du code, il est quand mème plus simple qu'avant

Voila c'est tout merci à tous !
Bonsoir,
c'est par le lien "répondre au sujet" ( en bas ) : En qualité d'auteur du "post" tu as accès à une "checkbox" pour marquer "résolu".

Bonne continuation.