par
shuffle » 18 janv. 2016, 14:41
Bonjour,
Je suis ignare en php, c'est d'ailleurs pour cela que je poste ici.
J'ai sur mon site une page contact.html (seul) pour le formulaire, qui envoie les données sur une page de confirmation.php pour la réception et le mailing (déjà je ne sais pas si c'est la meilleure formule qui soit...).
je souhaiterais que mon formulaire laisse la possibilité de laisser certains champs facultatifs, c'est à dire pouvoir recevoir le mail que ceux-ci soient remplis ou pas. Et ce n'est pas le cas... je ne reçois tout simplement plus rien DU TOUT quand le moindre champ est resté vide.
L'autre problème est l'accentuation pour le sujet du message, si par malheur il s'y trouve un ç, un é, è, à, etc... idem, plus rien n'arrive du tout.
J'ai fait tous les tests var_dump($_POST); la page .php semble pourtant tout recevoir correctement, mais la messagerie (yahoo), nada.
Voici mon formulaire html et ma page php:
<form method="post" action="envoi.php" name="formsaisie" onsubmit="return validation() && verifmail();">
<p><label>Nom*:</label><br>
<input name="nom" class="formulaire" maxlength='30'></p>
<p><label>Prénom:</label><br>
<input name="prenom" class="formulaire" maxlength='30'></p>
<p><label>Mail*:</label><br>
<input name="mail" class="formulaire" maxlength='40'></p>
<p><label>Adresse:</label><br>
<textarea name="adresse" class="formulaire2" maxlength='120'></textarea></p>
<p><label>Sujet*:</label><br>
<input name="sujet" class="formulaire" maxlength='40'></p>
<p><label>Message*:</label><br>
<textarea name="message" class="formulaire2" maxlength='500'></textarea></p>
<input value="Envoyer" class="formulaire3" type="submit">
<input value="Effacer" class="formulaire4" type="reset">
</form>
<?php
var_dump($_POST);
$to='[email protected]';
$subject=$_POST['sujet'];
$headers='From: [email protected]'."\r\n";
$headers.=$_POST['nom']."\r\n";
$headers.=$_POST['prenom']."\r\n";
$headers.=$_POST['mail']."\r\n";
$headers.=$_POST['adresse'];
$content=$_POST['message'];
mail($to, $subject, $content, $headers, '-f [email protected]');
?>
(Le contrôle des champs obligatoires est pour l'instant géré par javascript.)
Quelqu'un a t-il une idée de ce qui peut bloquer entre ma page d'envoi.php et yahoo mail, qui en l'état n'aime visiblement pas recevoir de champ vide? Comment autoriser ces fichus champs facultatifs à être envoyés comme des champs remplis, et pourquoi seul mon $subject serait-il réfractaire à l'accentuation...?
Je n'y comprends rien, un peu d'aide serait vraiment la bienvenue...

Bonjour,
Je suis ignare en php, c'est d'ailleurs pour cela que je poste ici. :mrgreen:
J'ai sur mon site une page contact.html (seul) pour le formulaire, qui envoie les données sur une page de confirmation.php pour la réception et le mailing (déjà je ne sais pas si c'est la meilleure formule qui soit...).
je souhaiterais que mon formulaire laisse la possibilité de laisser certains champs facultatifs, c'est à dire pouvoir recevoir le mail que ceux-ci soient remplis ou pas. Et ce n'est pas le cas... je ne reçois tout simplement plus rien DU TOUT quand le moindre champ est resté vide.
L'autre problème est l'accentuation pour le sujet du message, si par malheur il s'y trouve un ç, un é, è, à, etc... idem, plus rien n'arrive du tout.
J'ai fait tous les tests var_dump($_POST); la page .php semble pourtant tout recevoir correctement, mais la messagerie (yahoo), nada.
Voici mon formulaire html et ma page php:
[html]<form method="post" action="envoi.php" name="formsaisie" onsubmit="return validation() && verifmail();">
<p><label>Nom*:</label><br>
<input name="nom" class="formulaire" maxlength='30'></p>
<p><label>Prénom:</label><br>
<input name="prenom" class="formulaire" maxlength='30'></p>
<p><label>Mail*:</label><br>
<input name="mail" class="formulaire" maxlength='40'></p>
<p><label>Adresse:</label><br>
<textarea name="adresse" class="formulaire2" maxlength='120'></textarea></p>
<p><label>Sujet*:</label><br>
<input name="sujet" class="formulaire" maxlength='40'></p>
<p><label>Message*:</label><br>
<textarea name="message" class="formulaire2" maxlength='500'></textarea></p>
<input value="Envoyer" class="formulaire3" type="submit">
<input value="Effacer" class="formulaire4" type="reset">
</form>[/html]
[php]<?php
var_dump($_POST);
$to='
[email protected]';
$subject=$_POST['sujet'];
$headers='From:
[email protected]'."\r\n";
$headers.=$_POST['nom']."\r\n";
$headers.=$_POST['prenom']."\r\n";
$headers.=$_POST['mail']."\r\n";
$headers.=$_POST['adresse'];
$content=$_POST['message'];
mail($to, $subject, $content, $headers, '-f
[email protected]');
?>[/php]
(Le contrôle des champs obligatoires est pour l'instant géré par javascript.)
Quelqu'un a t-il une idée de ce qui peut bloquer entre ma page d'envoi.php et yahoo mail, qui en l'état n'aime visiblement pas recevoir de champ vide? Comment autoriser ces fichus champs facultatifs à être envoyés comme des champs remplis, et pourquoi seul mon $subject serait-il réfractaire à l'accentuation...?
Je n'y comprends rien, un peu d'aide serait vraiment la bienvenue... 8-|