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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut formulaire de contact
    Le formulaire de contact en php dont vous trouverez le code ci-dessous fonctionne chez un hébergeur gratuit, je transfère mes pages ches un hébergeur payant et là tout fonctionne apparemment bien sur le site : remplir le formulaire, envoyer, page "Merci" mais je ne reçois rien dans ma boite mail.
    Quelqu'un a t-il une explication : voir code ci-dessous

    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
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    <?php
     
    $email_dest = "monemail@mail.fr";
     
    if ($_POST['envoi']) {
     
    $message_remerciement = "Merci";
     
    // E-mail headers:
    $headers ="MIME-Version: 1.0 \n";
    $headers .="From: expéditeur<e-mail>\n";
     
     
    $headers .="Content-Type: text/html; charset=iso-8859-1 \n";
     
    $subject = "contact";
     
    $partie_entete = "<html><head>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    </head>
    <body bgcolor=#FFFFFF>";
     
    for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
    $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
    }
     
    if ($_POST['nbre_zone_email'] != 0) {
    $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
    }
     
    if ($_POST['nbre_zones_texte'] != 0) {
    $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
    $partie_zone_texte = stripslashes($partie_zone_texte);
    }
     
    $fin = "</body></html>";
     
    $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;
     
    // Send the e-mail
    if (@!mail($email_dest,$subject,$sortie,$headers)) {
    echo("Envoi du formulaire impossible");
    } // Closing if !mail...
     
    } // Closing if edit
    ?><html>
    <head>
    <title>Assistant d'envoi de formulaires</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript"><!-- Hide script from older browsers
    function verifSelection() {if (mail_form.champ1.value == "") {
    alert("Nom")
    return false
    } if (mail_form.champ2.value == "") {
    alert("")
    return false
    } if (mail_form.zone_email.value == "") {
    alert("e-mail")
    return false
    }
     
    invalidChars = " /:,;'"
     
    for (i=0; i<invalidChars.length; i++) {    // does it contain any invalid characters?
    badChar = invalidChars.charAt(i)
     
    if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
    alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
    mail_form.zone_email.focus()
    return false
    }
    }
     
    atPos = mail_form.zone_email.value.indexOf("@",1)            // there must be one "@" symbol
    if (atPos == -1) {
    alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
    mail_form.zone_email.focus()
    return false
    }
     
    if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) {    // and only one "@" symbol
    alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
    mail_form.zone_email.focus()
    return false
    }
     
    periodPos = mail_form.zone_email.value.indexOf(".",atPos)
     
    if (periodPos == -1) {                    // and at least one "." after the "@"
    alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
    mail_form.zone_email.focus()
    return false
    }
     
    if (periodPos+3 > mail_form.zone_email.value.length)    {        // must be at least 2 characters after the 
    alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
    mail_form.zone_email.focus()
    return false
    }} // Fin de la fonction
     
    </script>
    </head>
     
    <body bgcolor="#333333">
    <form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
    <div align="center"></div>
    <p align="center">
    <?php
    if ($message_remerciement) {
    echo("<font face=Verdana size=2>");
    echo(stripslashes($message_remerciement));
    echo("</p></body></html>");
    exit();
    }
    ?>
    <table width="566" border="0" align="center">
    <p align="center">
    </p><tr>
    <td><font color="#FFFFFF" size="1" face="Verdana">Nom</font></td>
    <td><input name="champ1" type="text"></td>
    </tr><tr>
    <td><font color="#FFFFFF" size="1" face="Verdana">Téléphone</font></td>
    <td><input name="champ2" type="text"></td>
    </tr><tr>
    <td width><font color="#FFFFFF" size="1" face="Verdana">E-mail</font></td>
    <td width><input name="zone_email" type="text"></td>
    </tr><tr>
    <td valign="top"><font color="#FFFFFF" size="1" face="Verdana">Message</font></td>
    <td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
    </tr><tr>
    <td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="2">
    <input name="nbre_zones_texte" type="hidden" value="1">
    <input name="nbre_zone_email" type="hidden" value="1">
    <input name="titre_champ1" type="hidden" value="Nom"><input name="titre_champ2" type="hidden" value="Téléphone"><input name="titre_email" type="hidden" value="E-mail"><input name="titre_zone" type="hidden" value="Message"></td>
    <td><div align="center">
    <input type="reset" name="Reset" value="Effacer">
    <input type="submit" name="envoi" value="Envoyer">
    </div></td>
    </tr>
    </table>
    <div align="center"></div>
    </form>
    </body>
    </html>

  2. #2
    Membre chevronné Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Par défaut
    bonjour,

    tout d'abord je te conseil d'utiliser le tag [code] dans tes post, ca le rendra plus facile a lire.
    Ensuite il y a des post identiques un peu plus bas dans le forum.
    Enfin enleve le '@' devant ta fonction mail ça t'aideras à debugguer. Il faut aussi savoir que certains hebergeurs interdisent l'utilisation de la fonction mail, ou oblige le codeur a rajouter des header pour autentifier ton mail comme par exemple Return-Path et X-Sender..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Je te remercie de ta réponse. Cependant je suis carrément débutant sur les forums (d'où ces petites erreurs) et également en php. Donc tu me dis d'enlever @ devant la fonction mail : à quel endroit du script exactement ?
    Merci encore de ton aide

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Citation Envoyé par philoubi62
    Je te remercie de ta réponse. Cependant je suis carrément débutant sur les forums (d'où ces petites erreurs) et également en php. Donc tu me dis d'enlever @ devant la fonction mail : à quel endroit du script exactement ?
    Merci encore de ton aide
    ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (@!mail($email_dest,$subject,$sortie,$headers)) {
    Ainsi tu verras le message d'erreur.

    Chez quel hébergeur es tu ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Je suis chez phpnet.org

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Bon voilà j'ai trouvé : ça vient pas de mon script mais de mon fournisseur d'accès. (le neuf) Je sais pas pourquoi mais il ne me transmet pas les messages qui sont passés par phpnet.org (là où j'héberge mon site). J'ai essayé chez un autre fournisseur d'accès (alice) et là aucun problème je reçois parfaitement les données du formulaire.
    Allez comprendre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

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

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