IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier le traitement d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2004
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2004
    Messages : 532
    Points : 494
    Points
    494
    Par défaut Modifier le traitement d'un formulaire
    J'ai un petit formulaire html avec 3 champs qui doit etre traiter avec un script PHP mais, se dernier ca marche pas a 100% il ne traite pas les champs s'ils sont bien remplie et si l'adresse mail est correcte ou non? pouvez-vous m'aider a corriger se script?
    Code html du petit formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <form method="post" action="mail.php">
    <table width="520"  border="0" align="center" cellpadding="2" cellspacing="2">
       <tbody>
        <tr class="txt">
          <td align="right">&nbsp;</td>
          <td width="5">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr class="txt">
          <td align="right"><strong>Subject:<br />
          </strong></td>
          <td width="5">&nbsp;</td>
          <td><input size="50" name="subject" />
            *</td>
        </tr>
        <tr class="txt">
          <td align="right"><strong>E-mail Address:</strong></td>
          <td width="5">&nbsp;</td>
          <td><input size="50" name="email" />
            *</td>
        </tr>
        <tr class="txt">
          <td align="right">&nbsp;</td>
          <td width="5">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr class="txt">
          <td valign="top" align="right"><strong>Message:</strong></td>
          <td width="5">&nbsp;</td>
          <td valign="top"><textarea name="contents" rows="8" cols="50"></textarea></td>
        </tr>
        <tr class="txt">
          <td align="right">&nbsp;</td>
          <td width="5">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr class="txt">
          <td align="right">&nbsp;</td>
          <td width="5">&nbsp;</td>
          <td><input name="submit" type="submit" value="Submit" /></td>
        </tr>
        <tr class="txt">
          <td align="right">&nbsp;</td>
          <td width="5">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </tbody>
     
    </table>
    </form>
    Script PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     
    $destinataire = "*****@gmail.com";
    $email=$_POST["email"];
    //$headers = 'From: webmaster@example.com ' . "\r\n" ;
    $from=htmlentities("From: $email" . "\r\n") ;
    $subject=stripslashes(htmlentities($_POST["subject"]));
    //$name=$_POST["name"];
    //$website=$_POST["website"];
    $contents=stripslashes(htmlentities($_POST["contents"]));    
     
    $regex = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
     
    if (!preg_match($regex, $email))
    {
          echo 'Adresse' .$email. 'n est pas valide';
    }
       elseif (trim($contents)=="")
    {
            echo "Veuillez écrire votre message";
    }
     
    if (mail($destinataire, $email, $sujet, $contents, $from)) // Envoi du message
    {
        echo 'Votre message a bien été envoyé ';
    }
    else // Non envoyé
    {
        echo "Votre message n'a pas pu être envoyé";
    }
    ?>

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ok tu veux modifier ce formulaire. Mais que veux-tu obtenir ? En quoi son actuel traitement ne te convient pas ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2004
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2004
    Messages : 532
    Points : 494
    Points
    494
    Par défaut
    moi quand j'ai creer ce petit formulaire j'ai voulu que l'internaute doit remplir les 3 champs avant qu'il puisse l'envoyer, mais dans celui la je l'ai tester et ca marche pas a 100% par exemple, j'ai ecris une adresse mail bidon et j'ai envoye mon formulaire j'ai recu le message l'adresse mail xxxxx non valide votre message est bien envoye meme si l'adresse mail n'est pas valide j'ai recu le message ds ma boite mail et c'est le meme prob si je laisse le contenu de message est vide le meme message.
    maintenent vous avez une idee de mon probleme, je veux corriger ce formulaire pour qu'il faut remplir correctement les 3 champs pour qu'on puisse envoyer le message, et je veux ajouter la fonction de rediriction vers des pages si le message est bien envoye une page "merci.html" si non "erreur.html"

    j'espere etre bien claire.

    merci d'avance.
    cordialement

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Hmmm je vois ce que tu veux faire. Par conséquent je te propose de modifier ton traitement en prennant pour exemple ceci : Partie PHP : traitement du formulaire

    Pour informations : il faut que tu fasses au choix :
    • Une imbrication de if permettant le test des champs puis l'envoi du formulaire;
    • Créer un booléen qui est modifié en fonction du résultat du test et au final tu le testera pour permettre l'envoi de ce mail.
    Tu vois ce que je veux dire ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Décembre 2004
    Messages
    532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Décembre 2004
    Messages : 532
    Points : 494
    Points
    494
    Par défaut
    malheureusement non je ne suis qu'un petit debutent

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ben par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $bool = true;
     
        if(empty($_POST['nom']))
            $bool = false;
     
        if($bool)
        {
            if(mail(....)
                echo 'envoyé';
            else
                echo 'non envoyé';
        }

Discussions similaires

  1. Mon JS modifie l'affichage de mon formulaire
    Par StreM dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/06/2006, 12h59
  2. traitement d'un formulaire(debutant)
    Par Shyboy dans le forum Web
    Réponses: 1
    Dernier message: 15/06/2006, 13h30
  3. modifier le action d'un formulaire
    Par Sheriff dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/06/2006, 19h20
  4. Réponses: 4
    Dernier message: 22/03/2006, 12h19
  5. Comment modifier un champ quand le formulaire change?
    Par benjapar dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/03/2006, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo