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 :

Formulaire de contact


Sujet :

Langage PHP

  1. #21
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    Je pensais que le formulaire fonctionnait mais je n'avais pas testé. en testant je m'aperçois que les contrôle mis en place ne fonctionne pas ni que le mail est envoyé.

    je remet tout le code. si quelqu'un peut me dire ce qui ne va pas =)

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    <?php
    function formulaire($Nom="Nom",$Telephone="Telephone",$Codepostal="Code postal",$Ville="Ville",$Rue="Rue",$Email="@mail",$Message="Votre message") 
    {
    ?>
     
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
        <table border="0" class="tour" cellspacing="0" cellpadding="5" align="center" width="543">
          <tr class="unite"> 
            <td width="19%" >Nom :</td>
            <td width="81%"> 
              <input type="text" name="Nom" size="30" value="<?php echo trim(htmlentities($Nom)) ?>" />
     
            </td>
          </tr>
          <tr class="unite">
            <td width="19%">Rue :</td>
            <td width="81%"> 
              <input type="text" name="Rue" size="40" value="<?php echo trim(htmlentities($Rue)) ?>" />
            </td>
          </tr>
    	  <tr class="unite"> 
            <td width="19%">Code Postal :</td>
            <td width="81%">
              <input type="text" name="Codepostal" size="5" value="<?php if (isset($Codepostal))echo trim(htmlentities($Codepostal)); ?>" />
            </td>
          </tr>
          <tr class="unite"> 
            <td width="19%">Ville :</td>
            <td width="81%"> 
              <input type="text" name="Ville" size="40" value="<?php echo trim(htmlentities($Ville)) ?>" />
     
              </td>
          </tr>
          <tr class="unite"> 
            <td width="19%">T&eacute;l&eacute;phone :</td>
            <td width="81%"> 
              <input type="text" name="Telephone" value="<?php echo trim(htmlentities($Telephone)) ?>" size="15" maxlength="10" />
     
            </td>
          </tr>
          <tr class="unite"> 
            <td width="19%">E-mail :</td>
            <td width="81%"> 
              <input type="text" name="Email" value="<?php echo trim(htmlentities($Email)) ?>" size="30" />
    	  </td>
          </tr>
          <tr class="unite"> 
            <td valign="top" width="19%">Message :</td>
            <td width="81%"> 
              <textarea name="Message" alt="Message" rows="10" cols="45" wrap="virtual"><?php if (ereg("[]%~#`$&|}{^[><]",$Message)) { echo "Certains caract&egrave;res utilis&eacute;s sont interdits";
      $erreur=true; }
      else {echo trim($Message); } ?></textarea>
     
            </td>
          </tr>
          <tr class="unite"> 
            <td width="19%">&nbsp;</td>
            <td width="81%"> 
              <center>
                <br />
                <input type="submit" name="Submit" value="Envoi" alt="Envoi" title="Envoi de votre message" onmouseover="this.style.color='#ff0000'" onmouseout="this.style.color='#000000'" onmousedown="this.style.color='#ff9900'" />
              </center>
            </td>
          </tr>
        </table>
    <?php
    }
    if(!isset($Nom)) 
    { 
    	formulaire();
    }
    else 
    {
    	$vNom=trim(htmlentities($_POST["Nom"]));
    	$vRue=trim(htmlentities($_POST["Rue"]));
    	$vCodepostal=trim(htmlentities($_POST["Codepostal"]));
    	$vVille=trim(htmlentities($_POST["Ville"]));
    	$vTelephone=trim(htmlentities($_POST["Telephone"]));
    	$vMessage=trim($_POST["Message"]);
    	$vEmail=trim(htmlentities($_POST["Email"]));
    	$destinataire='exemple@exemple.fr';
    	$titre="Modèle de page Contact";
    	$message="Provenance : $HTTP_REFERER\n";
    	$message.="Adresse IP : $REMOTE_ADDR,\n";
    	$message.="Navigateur : $HTTP_USER_AGENT\n";
    	$message.="Nom : $vNom\n";
    	$message.="Rue : $vRue\n";
    	$message.="Code postal : $vCodepostal\n";
    	$message.="Ville : $vVille\n";
    	$message.="Telephone : $vTelephone\n";
    	$message.="E-mail : $vEmail\n";
    	$message.="Message : $vMessage\n";
    	if (empty($vNom) || empty($Message) || empty($Email))
    	{
    		echo "<p class='red'>Vous n'avez pas complété toutes les zones&nbsp;:</p>";
    		$erreur=true;
    	}
    	if (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$",$vEmail) && ($erreur<>1))
    	{
    		echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
    		$erreur=true;
    	}
    	if ($erreur) 
    	{
    		formulaire($Nom,$Telephone,$Rue,$Codepostal,$Ville,$Email,$Message);
    	}
    	else 
    	{
    		mail($destinataire,$titre,$message,"From: $vEmail") ;
    		echo "<p class='vi4'>Votre message :</p>";
    		echo "<ul><li>Nom : <span class='red'>" . $vNom . "</span><br />";
    		echo "<li>Rue : <span class='red'>" . $vRue. "</span></li>";
    		echo "<li>Code postal : <span class='red'>" . $vCodepostal. "</span></li>";
    		echo "<li>Ville : <span class='red'>" . $vVille. "</span></li>";
    		echo "<li>Telephone : <span class='red'>" . $vTelephone. "</span></li>";
    		echo "<li>E-mail : <span class='red'>" . $vEmail. "</span></li>";
    		echo "<li>Message : <span class='red'>" . $vMessage.'</span></li></ul>';
    		echo "<p class='vi4'>Votre message a bien été envoyé. Nous vous remercions.</p>\n" ;
    		echo "<form name='boutons'><table border='0' cellspacing='0' cellpadding='0' width='90%' align='center'><tr><td><center>" ;
    		echo "<input type='button' name='accueil' alt='Accueil' value=\"Retour à la page d'accueil\" style='color:#660066;background-color:#ebe7f1' onclick=\"location.href='index.htm'\" onmouseover=\"this.style.color='#ff0000'\" onmouseout=\"this.style.color='#660066'\" onmousedown=\"this.style.color='#ff9900'\" />\n";
    		echo "</center></td></tr></table>";
    	}
    }
    ?>
    </form>
    </body>
    </html>
    dans mon php.ini j'ai mis ca pour faire les test:
    [mail function]
    ; For Win32 only.
    SMTP = localhost
    smtp_port = smtp.cegetel.fr

    ; For Win32 only.
    sendmail_from = me@localhost
    est-ce correct ?
    merci pour votre aide =)

  2. #22
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    quels sont les messages d'erreur que tu reçois ?

    sinon pour la config du smtp, essayes comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [mail function]
    ; For Win32 only.
    ;SMTP = localhost
    SMTP = smtp.cegetel.fr 
    smtp_port = 25 
     
    ; For Win32 only.
    sendmail_from = me@localhost

  3. #23
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    j'ai pas du tout de message d'erreurs, quand je clique sur le bouton "envoi" ca me recharge la page et il n'y a rien qui se passe.

    pour tester le contrôle sur le bouton "envoi" je clique dessus et le contrôle qui devrait s'afficher ne s'affiche pas et il me recharge la page.

    je vais ré essayer avec le config du smtp que tu viens de mettre voir si ca marche

  4. #24
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    essaye de faire du pas à pas pour savoir où tu te situe dans le code

    exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(!isset($Nom)) 
    { 
    echo 'form';
    	formulaire();
    }
    else 
    {
    echo 'post';
    	$vNom=trim(htmlentities($_POST["Nom"]));
     
    ...

    etc...

  5. #25
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!isset($Nom)) 
    { 
    	echo 'form';
    	formulaire();
    }
    le form s'affiche

    mais ensuite le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else 
    {
    echo 'post';
    	$vNom=trim(htmlentities($_POST["Nom"]));
    ne m'affiche rien, j'ai mis echo 'post'; sous la ligne pour le nom mais cela ne m'affiche rien non plus

  6. #26
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    à la place de

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!isset($Nom))

    mets :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( empty($_POST) )

  7. #27
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    ah bah ca me met la dose d'erreurs -_-

    Notice: Undefined variable: HTTP_REFERER in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 181

    Notice: Undefined variable: REMOTE_ADDR in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 182

    Notice: Undefined variable: HTTP_USER_AGENT in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 183

    Vous n'avez pas compl�t� toutes les zones :

    Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 196

    Notice: Undefined variable: Nom in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Telephone in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Rue in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Codepostal in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Ville in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Email in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203

    Notice: Undefined variable: Message in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 203
    peut-être est-ce parce que j'ai des $vNom etc ? j'ai vu ca sur différent site.

    bon je poste ce message et je vais voir si c'est du au "v" qu'il y a devant des variable

  8. #28
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    c'st normal que tu aies toutes ces erreurs puisque tu rentres dans le else

    et dans ton else tu as tes variables de form à vide j'imagine

    dans ton else fais :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
     
    exit;

    Les erreurs NOTICE signifient que tes variables n'ont pas été déclarées.

    ne pas utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $HTTP_REFERER
    $REMOTE_ADDR
    $HTTP_USER_AGENT
    mais plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SERVER['HTTP_REFERER']
    $_SERVER['REMOTE_ADDR']
    $_SERVER['HTTP_USER_AGENT']
    concernant l'erreur preg_match, si tu es en php 5, tu peux voir du côté de filter_var pour la vérification d'adresse email

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

    avec le filtre FILTER_VALIDATE_EMAIL

    http://fr.php.net/manual/fr/filter.filters.validate.php

  9. #29
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Points : 46
    Points
    46
    Par défaut
    j'ai fais le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
     
    exit;
    dans mon else et ca me donne :
    Array
    (
    [Nom] => Nom
    [Rue] => Rue
    [Codepostal] => Code postal
    [Ville] => Ville
    [Telephone] => Telephone
    [Email] => @mail
    [Message] => Votre message
    [Submit] => Envoi
    )
    mais j'ai encore cette erreur notice :
    Notice: Undefined variable: Message in C:\wamp\www\Nouvelle version 20101\php\contact.php on line 181
    j'ai remplacé ma variable pas $vMessage et dans la zone de saisie s'affiche :
    Votre messageNom : Nom
    Rue : Rue
    Code postal : Code postal
    Ville : Ville
    Telephone : Telephone
    E-mail : @mail
    Message : Votre messageNom : Nom
    Rue : Rue
    Code postal : Code postal
    Ville : Ville
    Telephone : Telephone
    E-mail : @mail
    il me reste l'erreur preg_match à corriger

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/01/2006, 08h23
  2. [Formulaire] de contact
    Par inferno66667 dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 20h32
  3. Prob avec formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2005, 19h53
  4. Prob avec PHP sur le formulaire de contact
    Par inferno66667 dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2005, 18h06
  5. Problème d'accès formulaire de contact
    Par Mystic26 dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2005, 17h47

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