J'ai la Forme Hulère !

Cor3n71n

Membre enregistré
17 Avril 2013
6
4
Amis du soir bonsoir, petite question aux amis webmaster :

Sur mon site, je veu faire un formmail, qui envoie à mon adresse différent types de données que le visiteur rentrera, mais dans le mail que je recois, c'est le vide, la page blanche...

Je vous transmet donc mon interface de formulaire, et mon formmail.php

Interface :

<form method=POST action=formmail.php >
<input type=hidden name=subject value=formmail>
<table>
<tr><td>Votre Nom:</td>
<td><input type=text name=realname size=30></td></tr>
<tr><td>Votre Email:</td>
<td><input type=text name=email size=30></td></tr>
<tr><td>Kit voulu:</td>
<td><input type=text name=message size=30></td></tr>
<tr><td colspan=2>Commentaires:<br>
<textarea COLS=50 ROWS=6 name=comments></textarea>
</td></tr>
</table>
<br> <input type=submit value=Envoyer> -
<input type=reset value=Annuler>
</form>

formmail.php :

<?php
$TO = "[email protected]";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $h);

Header("Location: http://swordsofkingdom.pulseheberg.me/net/Merci.html");

?>

Si vous voulez, je peux ajouter le error_log du ftp...

Merci d'avoir pris le temps de lire mes codes ^^
 
Dernière édition:
Plop, je « ne parle pas web » et ne pourrais donc t'aider, mais je conseillerai de virer l'adresse mail de contact, sous peine d'être ciblés par des BOTSPAM.
 
Je ne comprend rien à ton code&#8230;
Oublie ce traitement des données passées en POST avec cette boucle while{} que tu ne maitrise pas.

Récupère, traite et transforme en variable un par un, chaque champ du formulaire passé en post.

Tu pourra plus facilement les sécuriser/formater et construire ton mail()

À aucun moment tu ne vérifie que les données envoyées par le formulaire sont valables pour envoyer un mail &#8230; Qu'est ce qui se passe si saisis n'importe quoi (ou pire) dans ton formulaire ?
 
Dernière édition:
Exact&#8230;

Ça devrait être :

Bloc de code:
 mail($TO, $subject, $message, $h);
Mais j'ajoute que, a contrario, la variable $subject qui est présente dans la mailto() n'est, elle, créée nulle part.

  • Soit on n'a pas tout le code et dans ce cas là, ça ne sert à rien qu'on se fatigue dans le vide.
  • Soit on a tout et ça ne va pas du tout : il faut que Corentin reprenne un tuto PHP pour bien comprendre ce qu'il fait. :zen:
 
Dernière édition:
Merci a tous pour vos réponses, alors j'ai repris mon code, mais sur ma messagerie, je n'ai que le sujet...

<?php
$recipient = "[email protected]";
$subject = "Achat d'un PasS'";

$mailheaders = "From: SOK-Site \n";

$nom = $_POST['nom'];
$commentaire = $_POST['commentaires'];
$courriel = $_POST['courriel'];

$msg = "Pseudo:\t$nom\n";
$msg .= "Email:\t$courriel\n";
$msg .= "Commentaire:\t$commentaire\r\n";

mail($recipient, $subject, $mailheaders, $msg)
?>

Je suis un Php nooooooob :hein:
 
C'est mieux.

Mais l'ordre des arguments pour la fonction mail(), c'est : 1 destinataire, 2 sujet, 3 message, 4 en-têtes :

Pour toi :

Bloc de code:
 mail($recipient, $subject, $msg, $mailheaders);

En plus il y a des erreurs de syntaxe (manque le ";" à la fin de l'instruction mail() ) qui devrait afficher un message d'erreur (active les messages d'erreur quand tu bricole le PHP : ça t'aidera beaucoup).

Et le code du formulaire ? Tu as du le modifier aussi&#8230;

Il faut bien entendu que les names="" de tes inputs correspondents aux $_POST[]&#8230;

Et n'oublie pas les guillemets partout où il y a "=":

Bloc de code:
     <td><input type="text" name="nom" size="30"></td></tr>
 
Dernière édition: