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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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