Problème avec mon formulaire php

soad78

Membre actif
Bonjour,

Je rencontres divers problèmes avec mon formulaire php, voici mes "problèmes" :


1) Quand je clic sur envoyer rien ne ce passe

2) Comment vérifier si une adresse e-mail, a bien été tapé dans la zone de saisie, votre e-mail ?

3) Comment bloquer la barre de défilement horizontal de ma zone de saisie ?


Voici mon code :


Bloc de code:
<div align=center>
<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 Prenom :</td>
    <td><input type=text name=realname size=30></td></tr>
<tr><td>Société :</td>
    <td><input type=text name=realname size=30></td></tr>
<tr><td>Telephone :</td>
    <td><input type=text name=realname size=30></td></tr>
<tr><td>Votre e-mail :</td>
    <td><input type=text name=email size=30></td></tr>
<tr><td>Sujet :</td>
    <td><input type=text name=title size=30></td></tr>
<tr><td colspan=2>Commentaires :<br>
  <textarea COLS=33 ROWS=6 name=comments></textarea>
</td></tr>
</table>
<br> <input type=submit value=Envoyer> 
     <input type=reset value=Annuler>
</form>
</div>
PHP:
<?php
$TO = "votre adresse email";

$h  = "From: " . $TO;

$message = "";

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

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

Header("Location: http://<URL de la page de remerciement>");

?>
 

dmo95

Membre actif
24 Mai 2007
584
14
Je te propose une alternative :
Bloc de code:
$destinataire='tonemail';
     $email_expediteur=$_POST['from'];

     $message_texte=$_POST['msg'];
     $sujet = $_POST['subject'];

     $frontiere = '-----=' . md5(uniqid(mt_rand()));

     $headers = 'From: <'.$email_expediteur.'>'."\n";
     //$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
   
     $message = $message_texte."\n\n";


    if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'ok'; //Pas nécessaire, juste pour tester, mais tu peux retourner une erreur //sinon
     }
     else
     {
          echo 'notok';
     }

Tu remplaces correctement les champs de ton formulaire par from, msg, subject éventuellement tu peux en rajouter...

Mon traitement se fait en JavaScript avec AJAX, d'où les echo(). Et donc en amont je fais le tests des différents champs avec JavaScript, puis si les conditions ne sont pas vérifier je ne porpose rien. Par ailleurs l'envoi se fait en deux étapes, pour évites les bots en tout genre qui seraient mené à spamer...

Le test sur le mail peut également se faire en PHP, à l'aide d'une regex, ma regex utilisé est la suivante :

Bloc de code:
^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$

Il me semble qu'elle traite tous les cas.