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 :

verif + caractere formulaire contact


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut verif + caractere formulaire contact
    Bonjour,
    après avoir fait mon formulaire d'invite avec captcha j'ai voulu créer un formulaire contact avec le même captcha.

    et encore j'ai des soucis :/
    1er souci c'est si je remplis le captcha sans remplir pseudo,mail et message sa m'envoie quand même le mail

    2eme souci c'est dans mon message y a des caractères de type \ ou des petits carré

    3eme souci si je rajoute se code sa n'envoie pas de mail ou sa créer une erreur

    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
    $destinataire = 'votre_email@example.com';
            $email = htmlentities($_POST['email']);
            if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
            {
                    $sujet = 'Contact: '.stripslashes($_POST['sujet']);
                    $message = stripslashes($_POST['message']);
                    $headers = "From: <".$email.">\n";
                    $headers .= "Reply-To: ".$email."\n";
                    $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
                    if(mail($destinataire,$sujet,$message,"From: $from");
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de rencontre gratuit.</p><br/>
    <p>Merci de votre participation et à bientôt sur le chat.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>"; 
     
    }
    ?>
    J'ai des erreurs de se type

    Parse error: syntax error, unexpected '{' in /home/compte/www/Nouveau/envoi-mail.php on line 191
    Mon Formulaire
    ici mon news code contact.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
    34
    <form action="envoi-mail.php" method="post">
      <p class="Style5">- Vous avez des soucis de connection, besoin de nous faire part d'un bug ?</p>
      <p class="Style5">- Vous avez des suggestions, des id&eacute;es pour am&eacute;liorer le site ?</p>
      <p class="Style5">- Vous avez tout simplement besoin de renseignements ?</p>
      <p align="center" class="pub-chat"><font size="3"
                face="Tahoma"><strong>Votre Speudo </strong></font></p>
        <p align="center"><font color="#14588F" size="3"
                face="Tahoma"><strong>
          <input type="text" size="30" name="pseudo" value="<?php if(isset($_POST['pseudo'])){echo htmlentities($_POST['pseudo']);} ?>"/>
        </strong></font></p>
        <p align="center" class="pub-chat"><font size="3"
                face="Tahoma"><strong>Votre E-mail</strong></font></p>
        <p align="center"><font color="#14588F" size="3"
                face="Tahoma"><strong>
          <input type="text" size="30" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email']);} ?>" />
        </strong></font></p>
        <p align="center"><span class="pub-chat"><font size="3"
                face="Tahoma"><strong>Votre Message</strong></font></span></p>
        <p align="center"><strong><font size="3" face="Tahoma">
          <textarea name="message" cols="70" rows="4" class="Style3">Bonjour,<?php if(isset($_POST['message'])){echo htmlentities($_POST['message']);} ?>
    </textarea>
        </font></strong></p>
        <p align="center"><strong><font size="3" face="Tahoma">
          <label></label>
        </font></strong><img src="captcha.php" alt="captcha" /></p>
        <p align="center">Veuillez recopier le code ci-dessus:</p>
        <p align="center">
          <input type="text" name="captcha" />
        </p>
        <p align="center">
          <input type="submit" name="Submit" value="Envoyer l'invitation"
                style="font-family: Verdana; font-size: 8 pt; color: #FFFFFF; border: 2px solid #000000; background-color: #6084e6" />
        </p>
        </form>
    et ici mon Formulaire envoie-mail.php avec mon captcha de mon autre 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
    <?php
    //On verifie si le formulaire a ete valide
    if(isset($_POST['pseudo'], $_POST['email'], $_POST['message'], $_POST['captcha'], $_SESSION['captcha']))
    {
            //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
            if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
            {
                    unset($_SESSION['captcha']);
                    echo '<strong style="color:#00bb00;">Le code que vous avez entr&eacute; est bon.</strong>';
                    $form = false;
                    //Ici, vous pouvez envoyer les donnes du formulaire
            }
            else
            {
                    echo '<strong style="color:#bb0000;">Le code que vous avez entr&eacute; est mauvais, veuillez r&eacute;essayer.</strong>';
                    $form = true;
            }
    }
    else
    {
            $form = true;
    }
    //Si $form vaut true, le formulaire sera affiche
    if($form)
    {
    if(empty($pseudo) OR empty($email) OR empty($message) OR empty($_SESSION['captcha']))
        {
    	echo"Aucun champ ne peut rester vide.";
        }
    }
    else
    {
    // partie a configurer
    $destinataire = 'monmail@live.fr';
    $sujet = " Contact Webmaster Tchat-Fusion "; // definiser le sujet du mail
    $message = "message poster par $pseudo $message";// definisez votre message
    $from = "$email"; // votre semail
    // fin de la partie a configurer
    mail($destinataire,$sujet,$message,"From: $from");
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de rencontre gratuit.</p><br/>
    <p>Merci de votre participation et à bientôt sur le chat.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>"; 
     
    }
    ?>
    merci encore de votre aide car y a que sur se forum ou je trouve vraiment de l'aide convenable

    Cordialement Stéphane

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans ta première expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]
    tu as deux fois le ' et la deuxieme n'est pas échappée, elle termine donc la chaine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si tu veux pas t'embêter utilise filter_var avec FILTER_VALIDATE_EMAIL

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonsoir sabotage et stealth35
    merci beaucoup de votre aide
    pour :
    Citation Envoyé par sabotage Voir le message
    Dans ta première expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]
    tu as deux fois le ' et la deuxieme n'est pas échappée, elle termine donc la chaine.
    je les changer en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match('#^(([a-z0-9!\#$%&\\\*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    espérent que je me suis pas planté ou si j'ai bien compris


    stealth35 tu voie >> Snip74 = Gros Noob du php je connais pas mais merci car je vais matté sur GG pour voir se que veut dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filter_var avec FILTER_VALIDATE_EMAIL
    Citation Envoyé par stealth35 Voir le message
    si tu veux pas t'embêter utilise filter_var avec FILTER_VALIDATE_EMAIL
    sinon j'ai mis mon code comme sa :

    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
    51
    52
    <?php
    //On verifie si le formulaire a ete valide
    if(isset($_POST['pseudo'], $_POST['email'], $_POST['message'], $_POST['captcha'], $_SESSION['captcha']))
    {
            //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
            if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
            {
                    unset($_SESSION['captcha']);
                    echo '<strong style="color:#00bb00;">Le code que vous avez entr&eacute; est bon.</strong>';
                    $form = false;
                    //Ici, vous pouvez envoyer les donnes du formulaire
            }
            else
            {
                    echo '<strong style="color:#bb0000;">Le code que vous avez entr&eacute; est mauvais, veuillez r&eacute;essayer.</strong>';
                    $form = true;
            }
    }
    else
    {
            $form = true;
    }
    //Si $form vaut true, le formulaire sera affiche
    if($form)
    {
    if(empty($pseudo) OR empty($email) OR empty($message) OR empty($_SESSION['captcha']))
        {
    	echo"Aucun champ ne peut rester vide.";
        }
    }
    else
    {
    // partie a configurer
    $destinataire = 'votre_email@example.com';
    $email = htmlentities($_POST['email']);
    if(preg_match('#^(([a-z0-9!\#$%&\\\*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    $sujet = 'Contact: '.stripslashes($_POST['sujet']);
    $message = stripslashes($_POST['message']);
    $headers = "From: <".$email.">\n";
    $headers .= "Reply-To: ".$email."\n";
    $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
    if(mail($destinataire,$sujet,$message,"From: $from");
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de rencontre gratuit.</p><br/>
    <p>Merci de votre participation et à bientôt sur le chat.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>"; 
     
    }
    ?>
    et j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '{' in /home/ub33-fusion/www/Nouveau/envoi-mail.php on line 185
    et je viens de voir qu'il doit aussi manquer un truc ici mais quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(mail($destinataire,$sujet,$message,"From: $from");
    echo "<p align='center'><b>Bonjour ! </p><br/>
    Cordialement Stéphane

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    la colorisation syntaxique te montre ce qui va pas

    sinon pour filter_var
    http://php.net/manual/fr/function.filter-var.php

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    re
    merci pour le lien j'ai maté un peut mais je suis très loin de comprendre se qu'il dise et pour la colorisation vert = juste et rouge = faux ?
    moi dans mon notepad j'ai bleu, vert et orange.

    ex :
    tout les $ son en bleu
    tout les phrases son en vert et
    tout les //phrase son en orange a par cette ligne qui et vert bleu noir et orange :bete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match('#^(([a-z0-9!\#$%&\\\*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    Cordialement Stéphane

    Citation Envoyé par stealth35 Voir le message
    la colorisation syntaxique te montre ce qui va pas

    sinon pour filter_var
    http://php.net/manual/fr/function.filter-var.php

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est le deuxieme ' qui n'allait pas.
    Comme tu peux le voir, avant le ' tout est rouge, après tout est noir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    re ^^
    j'ai viré un ' sa donne tout de la même couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match(#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    mais j'ai du viré le ' au début de la ligne c'est la seule façon que j'ai trouvé pour que le code soi de la même couleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match(#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    et sa me dit cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '{', expecting ')' in /home/compte/www/Nouveau/envoi-mail.php on line 186
    et si je vire le 2eme c'est le reste qui change de couleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
    {
    j'ai testé plusieurs solution mais sans résulta :/

    Cordialement stéphane
    Citation Envoyé par sabotage Voir le message
    C'est le deuxième ' qui n'allait pas.
    Comme tu peux le voir, avant le ' tout est rouge, après tout est noir.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    dans un chaine entourer de ' il faut échapper tout les ' a l'intérieur \'

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    j'ai écouter ton conseil j'ai mis les \
    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
    if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_\'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_\'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i\',str_replace(\'&amp;','&',$email)))
    {
    $sujet = 'Contact: '.stripslashes($_POST['sujet']);
    $message = stripslashes($_POST['message']);
    $headers = "From: <".$email.">\n";
    $headers .= "Reply-To: ".$email."\n";
    $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
    if(mail($destinataire,$sujet,$message,"From: $from");
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de rencontre gratuit.</p><br/>
    <p>Merci de votre participation et à bientôt sur le chat.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>"; 
     
    }
    ?>
    erreur :
    Parse error: syntax error, unexpected ')' in /home/compte/www/Nouveau/envoi-mail.php on line 185
    donc je me suis dit qu'il fallait peut être supprimer un ) a la fin du code
    et sa ma donner sa comme erreur:
    Parse error: syntax error, unexpected ';' in /home/compte/www/Nouveau/envoi-mail.php on line 192
    et par la même occasion je me suis aperçus qui manquer le $headers dans la partie du bas donc je ne c'est pas si j'ai bien fait de le rajouter ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(mail($destinataire,$sujet,$message,$headers,"From: $from");
    Cordialement Stéphane

    Citation Envoyé par stealth35 Voir le message
    dans un chaine entourer de ' il faut échapper tout les ' a l'intérieur \'

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    La tu as échappé même celui qui entour c'est normale, mais avec la coloration tu voix pas qu’il y a un problème ?
    Et filter_var non ? Parce que la ton regexp est faux en plus

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonsoir la foule

    je reviens a vous car j'ai trouvé un tuto pour formulaire de contact mais j'arrive vraiment pas a inclure le captcha :/ si une âme charitable peut m'aidé sa serrait cool merci.

    mon nouveau envoi-mail.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
    <?php
    $destinataire  = 'monmail@live.fr';
    $psd = stripslashes($_POST['psd']);
    $email = stripslashes($_POST['email']);
    $sujet  = "Le sujet : ";
    $sujet .= stripslashes($_POST['sujet']);
    $msg  = "From : $psd \r\n";
    $msg .= "e-Mail : $email \r\n";
    $msg .= "$sujet \r\n\n";
    $msg .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";
    $msg .= "---Contact information--- \r\n\n";
    $msg .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
    $msg .= "Navigateur : ".$_SERVER["HTTP_USER_AGENT"]."\r\n";
    $msg .= "Page : ".$_SERVER["HTTP_REFERER"];
    if  (mail($destinataire , $sujet, $msg,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
    echo "envoyer";
    }else{
    echo "erreur";
    }
    ?>
    et mon captcha qui me sert pour un autre 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
    <?php
    session_start();
    //On verifie si le formulaire a ete valide
    if(isset($_POST['psd'], $_POST['captcha'], $_SESSION['captcha']))
    {
            //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
            if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
            {
                    unset($_SESSION['captcha']);
                    echo '<strong style="color:#00bb00;">Le code que vous avez entr&eacute; est le bon.</strong>';
                    $form = false;
                    //Ici, vous pouvez envoyer les donnes du formulaire
            }
            else
            {
                    echo '<strong style="color:#bb0000;">Le code que vous avez entr&eacute; est mauvais, veuillez r&eacute;essayer.</strong>';
                    $form = true;
            }
    }
    else
    {
            $form = true;
    }
    //Si $form vaut true, le formulaire sera affiche
    if($form)
    {
    ?>
    et mon formulaire contact.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
    34
    35
    36
    37
    38
    39
    40
    <form action="envoi-mail.php" method="post">
      <table width="100%">
          <tr>
            <td><p align="center">Votre pseudo ou Nom</p>
              <p align="center">
                <input type="text" name="psd" id="psd" /></p></td>
          </tr>
          <tr>
            <td><p align="center">Votre Mail</p>
              <p align="center">
                <input type="text" name="email" id="email" /></p></td>
          </tr>
          <tr>
            <td><p align="center">Votre Sujet</p>
              <p align="center">
                <input type="text" name="sujet" id="sujet" /></p></td>
          </tr>
          <tr>
            <td><p align="center">Votre message</p>
                <div align="center">
                  <textarea name="message" cols="60" rows="7" id="message"></textarea>
                </div></td>
          </tr>
          <tr>
            <td><p align="center"><img src="captcha.php" alt="captcha" /></p>
              <p align="center">Veuillez recopier le code ci-dessus:</p>
              <p align="center">
                <input type="text" name="captcha" />
              </p></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><div align="center">
              <input name="submit" type="submit" value="Envoyer votre message" />
            </div></td>
          </tr>
        </table>
        </form>
    je reconnais que je ne suis vraiment pas douer mais bon j'ai cherché mais j'arrive vraiment pas j'ai même testé de mettre une vérification email en temps réel même sa je ni arrive pas donc si une personne entre une fausse adresse mail sa arrive en boite indésirable :/.

    Cordialement Stéphane

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonjour all,
    Bon bah voila j'ai enfin trouvé ^^ en prime je reçois bien les mails sans les caractère et les liens cliquables donc se formulaire accepte les éèà d' et lien.
    voila la solution ci cela peut servir a une autre personne.

    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
    51
    52
    53
    54
    55
    56
    <?php
    //On verifie si le formulaire a ete valide
    if(isset($_POST['psd'], $_POST['email'], $_POST['sujet'], $_POST['message'], $_POST['captcha'], $_SESSION['captcha']))
    {
            //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
            if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
            {
                    unset($_SESSION['captcha']);
                    echo '<b style="color:#00bb00;">Le code que vous avez entr&eacute; est le bon.</b><br/>';
                    $form = false;
                    //Ici, vous pouvez envoyer les donnes du formulaire
            }
            else
            {
                    echo '<b style="color:#bb0000;">Le code que vous avez entr&eacute; est mauvais, veuillez r&eacute;essayer.</b><br/>';
                    $form = true;
            }
    }
    else
    {
            $form = true;
    }
    //Si $form vaut true, le formulaire sera affiche
    if($form)
    {
    if(empty($psd) OR empty($email) OR empty($sujet) OR empty($_POST['message']) OR empty($_SESSION['captcha']))
        {
    	echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
        }
    }
    else
    {
    $destinataire  = 'votremail@live.fr';
    $psd = stripslashes($_POST['psd']);
    $email = stripslashes($_POST['email']);
    $sujet  = "Le sujet : ";
    $sujet .= stripslashes($_POST['sujet']);
    $form  = "Pseudo : $psd \r\n";
    $form .= "Email : $email \r\n";
    $form .= "$sujet \r\n\n";
    $form .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";
    $form .= "---Contact information--- \r\n\n";
    $form .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
    $form .= "Page : ".$_SERVER["HTTP_REFERER"];
    if  (mail($destinataire , $sujet, $form,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de <strong>rencontre gratuit</strong>.</p><br/>
    <p>Merci de votre participation et à bientôt sur le <strong>chat</strong>.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>";
    }else{
    echo "Une erreur est survenue lors de l'envoi de votre message ! <br/>Veuillez recommencer ou signaler ce probleme aux admins de Tchat-Fusion. <br/>Nos excuses pour le d&eacute;sagr&eacute;ment. <br/><br/>L'&eacute;quipe de Tchat-fusion";
    }
    }
    ?>
    Maintenant me reste 1 et dernier truc a mettre dans le formulaire car en JavaScript si une personne désactive la fonction JavaScript bah sa sert a rien d'avoir mis la fonction JavaScript.

    Donc qui serrait me dire comment mettre un regex si l'on appel sa comme sa pour la vérification de mail en temps réelle ?

    Cordialement Stéphane

  14. #14
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 421
    Par défaut
    Citation Envoyé par snip74 Voir le message
    Maintenant me reste 1 et dernier truc a mettre dans le formulaire car en JavaScript si une personne désactive la fonction JavaScript bah sa sert a rien d'avoir mis la fonction JavaScript.

    Donc qui serrait me dire comment mettre un regex si l'on appel sa comme sa pour la vérification de mail en temps réelle ?

    Cordialement Stéphane
    Heu... pas certain d'avoir bien compris ta question mais sur le principe, on fait un contrôle en javascript, qui est ensuite doublé par un contrôle en php pour ceux qui auraient désactivé javascript.
    Si tu appelles "temps réel" le fait de pouvoir vérifier des données sans recharger la page, c'est bien évidemment impossible si javascript est désactivé.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonsoir ABCIWEB,
    Merci de cette réponsse
    en faite pour mieux expliquer si je prend une adresse quelconque du type :

    123456@live.fr ou teste@live.fr

    On et d'accord que c'est adresse mail n'existe pas donc je recherche un truc qui vérifi que l'adresse indiqué et une bonne adresse de type :

    ma-vrai-adresse@hotmail.fr ou ma-vrai-adresse@live.fr

    et a le mettre dans mon code.

    euh d'accord mais comment ?
    Citation Envoyé par ABCIWEB Voir le message
    mais sur le principe, on fait un contrôle en javascript, qui est ensuite doublé par un contrôle en php pour ceux qui auraient désactivé javascript.
    Cordialement Stéphane

  16. #16
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 421
    Par défaut
    Tu peux vérifier si la syntaxe d'un mail est bonne mais tu ne peux pas vérifier si le mail correspond effectivement à quelque chose. Enfin on peux tenter mais les serveurs ne répondent pas pour envoyer la bonne information (et heureusement y'a déjà assez de spams comme ça...).

    Pour vérifier si la syntaxe est bonne (ressemble à une vraie adresse) stealth35 t'a déjà mis sur la piste avec FILTER_VALIDATE_EMAIL.

    La syntaxe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (filter_var($email, FILTER_VALIDATE_EMAIL) !== false) 
    {
    echo "l'adresse ressemble à une bonne adresse";
    }
    Ensuite on peut aller un peu plus loin en testant le nom de domaine avec la fonction checkdnsrr()

    Mais c'est à peu près tout.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonjour all,
    j'ai encore un petit avec ce formulaire Affff j'ai abandonné pour la vérification de mail tros compliquer pour moi

    bon en fait le souci c'est que si je ne remplis rien j'ai bien un message comme quoi les champs et captcha son pas valide en revanche si je mais que le captcha sa m'envoie quand même le mail

    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
    51
    52
    53
    54
    55
    56
    <?php
    //On verifie si le formulaire a ete valide
    if(isset($_POST['psd'], $_POST['email'], $_POST['sujet'], $_POST['message'], $_POST['captcha'], $_SESSION['captcha']))
    {
            //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
            if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
            {
                    unset($_SESSION['captcha']);
                    echo '<b style="color:#00bb00;">Le code que vous avez entr&eacute; est le bon.</b><br/>';
                    $form = false;
                    //Ici, vous pouvez envoyer les donnes du formulaire
            }
            else
            {
                    echo '<b style="color:#bb0000;">Le code que vous avez entr&eacute; est mauvais, veuillez r&eacute;essayer.</b><br/>';
                    $form = true;
            }
    }
    else
    {
            $form = true;
    }
    //Si $form vaut true, le formulaire sera affiche
    if($form)
    {
    if(empty($psd) OR empty($email) OR empty($sujet) OR empty($_POST['message']) OR empty($_SESSION['captcha']))
        {
    	echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
        }
    }
    else
    {
    $destinataire  = 'monmail@live.fr';
    $psd = stripslashes($_POST['psd']);
    $email = stripslashes($_POST['email']);
    $sujet  = "Le sujet : ";
    $sujet .= stripslashes($_POST['sujet']);
    $form  = "Pseudo : $psd \r\n";
    $form .= "Email : $email \r\n";
    $form .= "$sujet \r\n\n";
    $form .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";
    $form .= "---Contact information--- \r\n\n";
    $form .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
    $form .= "Page : ".$_SERVER["HTTP_REFERER"];
    if  (mail($destinataire , $sujet, $form,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de <strong>rencontre gratuit</strong>.</p><br/>
    <p>Merci de votre participation et à bientôt sur le <strong>chat</strong>.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>";
    }else{
    echo "Une erreur est survenue lors de l'envoi de votre message ! <br/>Veuillez recommencer ou signaler ce probleme aux admins de Tchat-Fusion. <br/>Nos excuses pour le d&eacute;sagr&eacute;ment. <br/><br/>L'&eacute;quipe de Tchat-fusion";
    }
    }
    ?>
    Comment évité que sa m'envoie un mail si les champs son vide et que le captcha et bien remplis svp merci ?

    Cordialement Stéphane

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 104
    Par défaut
    Salut,

    tu peux essayer ceci:

    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
    if($form)
    {
    if(empty($psd) OR empty($email) OR empty($sujet) OR empty($_POST['message']) OR empty($_SESSION['captcha']))
        {
    	echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
        }
    }
    else
    {
    if(!empty($psd) AND !empty($email) AND !empty($sujet) AND !empty($_POST['message']) AND !empty($_SESSION['captcha']))
        {
    $destinataire  = 'monmail@live.fr';
    $psd = stripslashes($_POST['psd']);
    $email = stripslashes($_POST['email']);
    $sujet  = "Le sujet : ";
    $sujet .= stripslashes($_POST['sujet']);
    $form  = "Pseudo : $psd \r\n";
    $form .= "Email : $email \r\n";
    $form .= "$sujet \r\n\n";
    $form .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";
    $form .= "---Contact information--- \r\n\n";
    $form .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
    $form .= "Page : ".$_SERVER["HTTP_REFERER"];
    if  (mail($destinataire , $sujet, $form,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de <strong>rencontre gratuit</strong>.</p><br/>
    <p>Merci de votre participation et à bientôt sur le <strong>chat</strong>.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>";
    }else{
    echo "Une erreur est survenue lors de l'envoi de votre message ! <br/>Veuillez recommencer ou signaler ce probleme aux admins de Tchat-Fusion. <br/>Nos excuses pour le d&eacute;sagr&eacute;ment. <br/><br/>L'&eacute;quipe de Tchat-fusion";
    }
    }
    else
    {
    echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
    }
    }

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonjour proxichou,
    Merci de ton aide.
    J'ai placer le code que tu ma donner j'ai juste changer message par commentaires car sur mon contact.php j'ai mis commentaires.
    donc effectivement sa bloque bien mais sa n'envoie plus de message car sa me dit :

    Aucun champ ne peut rester vide.
    Alors que mais champs son tous remplie

    Citation Envoyé par proxichou Voir le message
    Salut,

    tu peux essayer ceci:

    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
    if($form)
    {
    if(empty($psd) OR empty($email) OR empty($sujet) OR empty($_POST['message']) OR empty($_SESSION['captcha']))
        {
    	echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
        }
    }
    else
    {
    if(!empty($psd) AND !empty($email) AND !empty($sujet) AND !empty($_POST['message']) AND !empty($_SESSION['captcha']))
        {
    $destinataire  = 'monmail@live.fr';
    $psd = stripslashes($_POST['psd']);
    $email = stripslashes($_POST['email']);
    $sujet  = "Le sujet : ";
    $sujet .= stripslashes($_POST['sujet']);
    $form  = "Pseudo : $psd \r\n";
    $form .= "Email : $email \r\n";
    $form .= "$sujet \r\n\n";
    $form .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n";
    $form .= "---Contact information--- \r\n\n";
    $form .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n";
    $form .= "Page : ".$_SERVER["HTTP_REFERER"];
    if  (mail($destinataire , $sujet, $form,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
    echo "<p align='center'><b>Bonjour ! </p><br/>
    <p>Votre message a bien été envoy&eacute;.</p><br/>
    <p>Nous vous remercions vivement de l’intérêt que vous portez à notre site de <strong>rencontre gratuit</strong>.</p><br/>
    <p>Merci de votre participation et à bientôt sur le <strong>chat</strong>.</p>
    <p>L'équipe Tchat-Fusion</p><br/><br/>
    <p align='right'><a href='index.php'>Page Accueil</a> </p>";
    }else{
    echo "Une erreur est survenue lors de l'envoi de votre message ! <br/>Veuillez recommencer ou signaler ce probleme aux admins de Tchat-Fusion. <br/>Nos excuses pour le d&eacute;sagr&eacute;ment. <br/><br/>L'&eacute;quipe de Tchat-fusion";
    }
    }
    else
    {
    echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>';
    }
    }
    Cordialement Stéphane

Discussions similaires

  1. Verif de formulaire tourne sous IE pas sous FireFox
    Par Hakim_Bey dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/07/2006, 10h28
  2. Verification champ formulaire
    Par calitom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2006, 14h54
  3. verification de formulaire malgres return false
    Par emile13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2006, 18h54
  4. verif de formulaire et boutons radio
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2006, 22h42
  5. Réponses: 2
    Dernier message: 16/06/2003, 15h15

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