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 sans Javascript


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Formulaire sans Javascript
    Bonjour,

    Je tente en vain de vérifier mon formulaire php sans passer par du java-script.
    Surtout d’avoir l’echo juste en dessous, en cas d’erreur et non pas sur une autre page.
    Je suis parti d’après le formulaire de contact Slide-In avec Jquery par Janko Jovanovic, obtenu sur ce site.
    Il fonctionne très bien, j’ai rajouté du php en dessous pour les contrôles (Nom, Email et Message).
    Mais ça bug, les echos s’affichent tous à l’ouverture du formulaire….
    Voici le code du formulaire et du php en dessous, j’ai omis les détails du css etc.

    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
     
    <div id="contactFormPosition">
    <div id="Formulaire">
    <form id="contact" action="<?= $_SERVER["PHP_SELF"] ?>" method="post" enctype="multipart/form-data" name="form1"> 
    <fieldset> 
    <label for="Nom">Prénom et Nom *</label>
    <input id="Nom" name="Nom" type="text" value=""/>
    <label for="Email">Adresse Email *</label>
    <input id="Email" name="Email" type="text" value=""/>
    <label for="Message">Votre message *</label>
    <textarea id="Message" name="Message" rows="3" cols="20" ></textarea>
     
    <a href="java-script: new_captcha();">Recopier et/ou modifier le code</a>&nbsp;&nbsp;
     
    <img alt="" src="image.php" id="captcha" style="border:0px; width:100px; height:55px"/>
    &nbsp;&nbsp; <input type="text" name="code" /><br/><br/>
     
    <p style="text-align:center"> <input type="submit" name="sub" value="Envoyer" /></p>
     
    </fieldset>
    /*------------------séparation du formulaire pour intégrer le php----------------*/
    <div>
    <?php
    function VerifierAdresseMail($Email){
    $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if(preg_match($Syntaxe,$Email)){
    return true;
    }else
    {
    return false;
    }
    }
     
    /* PetitClean($var,$lg) */
    /* $var la varible traiter */
    /* la longueur de sortie */ 
     
    function PetitClean($var,$lg){
    $var=strip_tags($var);
    /* troncature on ne va pas me poster un roman */
    if(strlen($var)>$lg){
    $var = substr($var, 0, $lg);
    $last_space = strrpos($var, " ");
    $var = substr($var, 0, $last_space);
    }else{
    $lg=0;
    } 
    return $var;
    }
     
    $error=NULL;
     
    if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
    $nom=$_POST['Nom'];$error=NULL;
    //filtrage 
    $nom=PetitClean($Nom,30); /*30 caractres maxi*/
    }else{
    echo $error='LE NOM EST VIDE';exit;
    }
     
    if(isset($_POST['Email']) && !empty($_POST['Email'])){
    $Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
    //filtrage
    $Email=PetitClean($Email,60);
    }else{
    echo $error='ADRESSE MAIL VIDE';exit;
    }
     
    if(isset($_POST['Message']) && !empty($_POST['Message'])){
    $Message=$_POST['Message'];$error=NULL;
    //filtrage
    $Message=PetitClean($Message,300);
    }else{
    echo $error='LE MESSAGE EST VIDE';exit;
    }
     
    if(VerifierAdresseMail($Email)){
    //echo 'mail ok';
    }else{
    echo $error='VOTRE ADRESSE MAIL N EST PAS VALIDE';exit;
    }
     
    if($_SERVER['REQUEST_METHOD']==='POST' && isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 
     
     
    $destinataire="monadresse@fournisseur.fr";
    $subject=$objet;
    $body=$message;
     
    /*format du mail*/
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    /*ici on dtermine l'expediteur et l'adresse de réponse*/
    $headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
    /*tout est ok*/
     
    if (Email($destinataire,$subject,$body,$headers)){
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo 'VOTRE MESSAGE EST ENVOYE, MERCI!';exit; 
     
    }else{
    /*petite secu*/
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo 'DESOLE VOTRE MESSAGE N A ETE ENVOYE!';exit;
    }
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $destinataire=NULL;
     
    } else {
    echo $error='ERREUR SUR LE CODE DE SECURITE</h3>';exit;
    }
    ?>
    </div>
    /*------------------Fin de la séparation du formulaire pour intégrer le php----------------*/
     
    </form>
    </div>
    <div id="contactLink"></div>
    </div>
    Ais-je bien noté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     action="<?= $_SERVER["PHP_SELF"] ?>"
    Je n’arrive pas à trouver mon erreur.
    Merci pour votre aide
    Bien cordialement.

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    voila :
    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
    <div id="contactFormPosition">
    <div id="Formulaire">
    <form id="contact" action="<?= $_SERVER["PHP_SELF"] ?>" method="post" enctype="multipart/form-data" name="form1"> 
    <fieldset> 
    <label for="Nom">Prénom et Nom *</label>
    <input id="Nom" name="Nom" type="text" value=""/>
    <label for="Email">Adresse Email *</label>
    <input id="Email" name="Email" type="text" value=""/>
    <label for="Message">Votre message *</label>
    <textarea id="Message" name="Message" rows="3" cols="20" ></textarea>
     
    <a href="java-script: new_captcha();">Recopier et/ou modifier le code</a>&nbsp;&nbsp;
     
    <img alt="" src="image.php" id="captcha" style="border:0px; width:100px; height:55px"/>
    &nbsp;&nbsp; <input type="text" name="code" /><br/><br/>
     
    <p style="text-align:center"> <input type="submit" name="sub" value="Envoyer" /></p>
     
    </fieldset>
    <!------------------séparation du formulaire pour intégrer le php---------------->
    <div>
    <?php
    function VerifierAdresseMail($Email){
    $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if(preg_match($Syntaxe,$Email)){
    return true;
    }else
    {
    return false;
    }
    }
     
    /* PetitClean($var,$lg) */
    /* $var la varible traiter */
    /* la longueur de sortie */ 
     
    function PetitClean($var,$lg){
    $var=strip_tags($var);
    /* troncature on ne va pas me poster un roman */
    if(strlen($var)>$lg){
    $var = substr($var, 0, $lg);
    $last_space = strrpos($var, " ");
    $var = substr($var, 0, $last_space);
    }else{
    $lg=0;
    } 
    return $var;
    }
     
    $error=NULL;
     
    if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
    $nom=$_POST['Nom'];$error=NULL;
    //filtrage 
    $nom=PetitClean($nom,30); /*30 caractres maxi*/
    }else if (isset($_POST['Nom']) && empty($_POST['Nom'])){
    echo $error='LE NOM EST VIDE';exit;
    }
     
    if(isset($_POST['Email']) && !empty($_POST['Email'])){
    $Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
    //filtrage
    $Email=PetitClean($Email,60);
    if(VerifierAdresseMail($Email)){
    //echo 'mail ok';
    }else{
    echo $error='VOTRE ADRESSE MAIL N EST PAS VALIDE';exit;
    }
    }else if(isset($_POST['Email']) && empty($_POST['Email'])){
    echo $error='ADRESSE MAIL VIDE';exit;
    }
     
    if(isset($_POST['Message']) && !empty($_POST['Message'])){
    $Message=$_POST['Message'];$error=NULL;
    //filtrage
    $Message=PetitClean($Message,300);
    }else if(isset($_POST['Message']) && empty($_POST['Message'])){
    echo $error='LE MESSAGE EST VIDE';exit;
    }
     
     
     
    if($_SERVER['REQUEST_METHOD']==='POST'){ 
    if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 
     
    $destinataire="monadresse@fournisseur.fr";
    $subject=$objet;
    $body=$message;
     
    /*format du mail*/
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    /*ici on dtermine l'expediteur et l'adresse de réponse*/
    $headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
    /*tout est ok*/
     
    if (Email($destinataire,$subject,$body,$headers)){
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo 'VOTRE MESSAGE EST ENVOYE, MERCI!';exit; 
     
    }else{
    /*petite secu*/
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo 'DESOLE VOTRE MESSAGE N A ETE ENVOYE!';exit;
    }
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $destinataire=NULL;
     
    } else {
    echo $error='ERREUR SUR LE CODE DE SECURITE</h3>';exit;
    }
    }
    ?>
    </div>
    <!------------------Fin de la séparation du formulaire pour intégrer le php---------------->
     
    </form>
    </div>
    <div id="contactLink"></div>
    </div>

  3. #3
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour vorace,

    Merci pour cette réponse rapide, que je vient de tester...
    J'ai remis le code en entier ci-dessous...
    J'obtiens l'erreur suivante:
    Notice: Undefined index: verif in /home/www/bresseweb/www/index.php on line 280
    Voici en code la ligne 279 et 280
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if($_SERVER['REQUEST_METHOD']==='POST'){ 
    if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
    A quoi correspond cette 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
    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
     
                <div id="contactFormPosition">
                    <div id="Formulaire">
    <form id="contact" action="<?= $_SERVER["PHP_SELF"] ?>" method="post" enctype="application/x-www-form-urlencoded" name="form1">    
      <fieldset>                 
    <label for="Nom">Votre Prénom et Nom *</label>
    <input id="Nom" name="Nom" type="text" value=""/>
    <label for="Email">Votre adresse Email *</label>
    <input id="Email" name="Email" type="text" value=""/>
    <label for="Message">Votre message *</label>
    <textarea id="Message" name="Message"  rows="3" cols="20" ></textarea>
     
     <a href="JavaScript: new_captcha();"  style="color: #D9E9DE; font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif
    ">Recopier et/ou modifier le code</a>&nbsp;&nbsp;
     
     
     
        <img alt="" src="image.php" id="captcha" style="border:0px; width:100px; height:55px"/>
     &nbsp;&nbsp;    <input type="text" name="code"  /><br/><br/>
     
     <p style="text-align:center"> <input type="submit" name="sub" value="Envoyer" /></p>
     
    </fieldset>
    <!------------------séparation du formulaire pour intégrer le php---------------->
    <div  style="color: #D9E9DE; font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-size: 10px; text-align: center">
    <?php
    function VerifierAdresseMail($Email){
    $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if(preg_match($Syntaxe,$Email)){
    return true;
    }else
    {
    return false;
    }
    }
     
    /* PetitClean($var,$lg) */
    /* $var la varible traiter */
    /* la longueur de sortie */ 
     
    function PetitClean($var,$lg){
    $var=strip_tags($var);
    /* troncature on ne va pas me poster un roman */
    if(strlen($var)>$lg){
    $var = substr($var, 0, $lg);
    $last_space = strrpos($var, " ");
    $var = substr($var, 0, $last_space);
    }else{
    $lg=0;
    } 
    return $var;
    }
     
    $error=NULL;
     
    if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
    $nom=$_POST['Nom'];$error=NULL;
    //filtrage 
    $nom=PetitClean($nom,30); /*30 caractres maxi*/
    }else if (isset($_POST['Nom']) && empty($_POST['Nom'])){
    echo $error='- N\'oubliez pas votre prénom et votre nom<br/>';
    }
     
    if(isset($_POST['Email']) && !empty($_POST['Email'])){
    $Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
    //filtrage
    $Email=PetitClean($Email,60);
    if(VerifierAdresseMail($Email)){
    //echo 'mail ok';
    }else{
    echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';exit;
    }
    }else if(isset($_POST['Email']) && empty($_POST['Email'])){
    echo $error='- N\'oubliez pas votre adresse mail<br/>';
    }
     
    if(isset($_POST['Message']) && !empty($_POST['Message'])){
    $Message=$_POST['Message'];$error=NULL;
    //filtrage
    $Message=PetitClean($Message,300);
    }else if(isset($_POST['Message']) && empty($_POST['Message'])){
    echo $error='- N\'oubliez pas votre message<br/>';
    }
    if($_SERVER['REQUEST_METHOD']==='POST'){ 
    if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){ 
     
    $destinataire="contact@fournisseur.fr";
    $subject=$objet;
    $body=$message;
     
    /*format du mail*/
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    /*ici on dtermine l'expediteur et l'adresse de réponse*/
    $headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
    /*tout est ok*/
     
    if (Email($destinataire,$subject,$body,$headers)){
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo '- Votre message vient être envoyé<br/>!';
     
    }else{
    /*petite secu*/
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo '- Votre message n\'a pas été envoyé<br/>';
    }
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $destinataire=NULL;
     
    } else {
    echo $error='- N\'oubliez pas le code de sécurité<br/>';
    }
    }
    ?>
    </div>
    <!------------------Fin de la séparation du formulaire pour intégrer le php---------------->
     
     
                       </form>
                    </div>
                    <div id="contactLink"></div>
                </div>
    Merci pour ton aide

  4. #4
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    t'as du oublié de mettre session_start() tout au debut de ton script, l'erreur concerne $_SESSION['verif']

  5. #5
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Citation Envoyé par vorace Voir le message
    t'as du oublié de mettre session_start() tout au debut de ton script, l'erreur concerne $_SESSION['verif']
    Cela vient surtout du fait que ton code ne vérifie pas que l'index existe... Ce serait un tableau autre qu'un tableau de session il y aurait le même problème. => isSet()

  6. #6
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,

    Je rencontre des petits soucis dont voici les messages d'erreur.

    Si suppression de session_start() alors le message est le suivant :

    Notice : Undefined index : verif in /home/www/bresseweb/www/index.php on line 270

    Voici la ligne 270 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
    Si je remet session_start() alors le message est le suivant :

    Ignoring session_start() in /home/www/bresseweb/www/index.php on line 217

    Voici la ligne 217 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    session_start();

  7. #7
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    tu dois mettre session_start() tout au début de ton script, à la première ligne.

  8. #8
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,

    Il ce trouve juste après
    <?php
    session start()
    etc
    etc
    ?>

    Que faire

  9. #9
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    mes d'abord ça, tout au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!isset($_SESSION))
    {
    session_start();
    }

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    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 418
    Par défaut
    Citation Envoyé par vorace Voir le message
    mes d'abord ça, tout au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!isset($_SESSION))
    {
    session_start();
    }
    C'est pas faux mais si aucune session n'est démarrée et que l'on trouve par exemple $_SESSION['a'] = 'b'; avant dans le code, la session ne sera pas démarrée. On peut utiliser if (!session_id()) session_start(); pour éviter ce cas de figure.

  11. #11
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour à vous,

    Je viens d'essayer avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    if(!isset($_SESSION))
    {
    session_start();
    }
    et puis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if (!session_id()) session_start();

    Résutat : Notice undefined index: verif ligne 271 ce qui correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if(isset($_POST['code']) && !empty($_POST['code']) && $_POST['code']===$_SESSION['verif']){
    Alors le mail n'est pas envoyé, peut-être est-ce la faute du contrôle du captcha !!!
    Qui correspond au code de sécurité ?

    Merci

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    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 418
    Par défaut
    Sans doute que $_SESSION['verif'] n'a pas été définie auparavant ....

  13. #13
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    transgohan n'avait pas tord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['code']) && !empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){

  14. #14
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    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 418
    Par défaut
    Citation Envoyé par BRUNO71 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(isset($_POST['code']) && !empty($_POST['code']) ...
    A propos de ta ligne de code, un isset($_POST['code']) suivi d'un !empty($_POST['code']) est redondant puisque !empty est plus exigeant que isset et que ces deux "fonctions" vérifient toutes les deux l'existence de la variable. Donc pour le même résultat tu peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){

  15. #15
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonsoir,

    Avant toutes choses, merci à vous pour votre aide...

    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
     
     
    <?php
     
    if (!session_id()) session_start();
    	$_SESSION['verif'] = '';
     
    function VerifierAdresseMail($Email)
    {
    $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if(preg_match($Syntaxe,$Email))
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    function PetitClean($var,$lg){
    $var=strip_tags($var);
    if(strlen($var)>$lg){
    $var = substr($var, 0, $lg);
    $last_space = strrpos($var, " ");
    $var = substr($var, 0, $last_space);
    }else{
    $lg=0;
    } 
    return $var;
    }
     
    $error=NULL;
     
    if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
    $nom=$_POST['Nom'];$error=NULL;
    //filtrage 
    $nom=PetitClean($nom,30); /*30 caractres maxi*/
    }else if (isset($_POST['Nom']) && empty($_POST['Nom'])){
    echo $error='- N\'oubliez pas votre prénom et votre nom<br/>';
    }
     
    if(isset($_POST['Email']) && !empty($_POST['Email']))
    {
    $Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
    //filtrage
    $Email=PetitClean($Email,60);
    if(VerifierAdresseMail($Email))
    {
    //echo 'mail ok';
    }
    else
    {
    echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';
    }
    }
    else if(isset($_POST['Email']) && empty($_POST['Email']))
    {
    echo $error='- N\'oubliez pas votre adresse mail<br/>';
    }
     
    if(isset($_POST['Message']) && !empty($_POST['Message']))
    {
    $Message=$_POST['Message'];$error=NULL;
    //filtrage
    $Message=PetitClean($Message,300);
    }
    else if(isset($_POST['Message']) && empty($_POST['Message']))
    {
    echo $error='- N\'oubliez pas votre message<br/>';
    }
    if($_SERVER['REQUEST_METHOD']==='POST')
    { 
     
     if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){ 
    $destinataire="mail@fournisseur.fr";
    $subject=$objet;
    $body=$message;
     
    /*format du mail*/
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    /*ici on dtermine l'expediteur et l'adresse de réponse*/
    $headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
    /*tout est ok*/
     
    if (Email($destinataire,$subject,$body,$headers))
    {
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL;
    $destinataire=NULL;
    echo '- Votre message vient être envoyé<br/>!';
     
    }
    else
    {
    /*petite secu*/
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $_SESSION['verif']=NULL; 
    $destinataire=NULL;
    echo '- Votre message n\'a pas été envoyé<br/>';
    }
     
     
    $Message=NULL;
    $Email=NULL;
    $Nom=NULL;
     
    $_POST=NULL;
    $destinataire=NULL;
     
    }
     
     else 
    {
    echo $error='- N\'oubliez pas le code de sécurité<br/>';
    }
     
    }
    ?>
    En écrivant le code tel quel, je n'ai plus d'erreur....
    Sauf que le message ne part pas avec l'adresse mail et que le message suivant apparait (n'oubliez pas le code de sécurité) alors qu'il est noté...


  16. #16
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    le problème c'est cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (!session_id()) session_start();
    	$_SESSION['verif'] = '';
    tu vides $_SESSION['verif'] de cette manière donc forcement ce sera pas égal à $_POST['code'].
    enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['verif'] = '';
    ce qui donne :
    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
    <?php	
    if(!session_id()) session_start();
     
    function VerifierAdresseMail($Email)
    {
    	$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    	if(preg_match($Syntaxe,$Email))
    	{
    	return true;
    	}
    	else
    	{
    	return false;
    	}
    }
    function PetitClean($var,$lg){
    	$var=strip_tags($var);
    	if(strlen($var)>$lg){
    	$var = substr($var, 0, $lg);
    	$last_space = strrpos($var, " ");
    	$var = substr($var, 0, $last_space);
    	}else{
    	$lg=0;
    	} 
    	return $var;
    }
     
    $error=NULL;
     
    if(isset($_POST['Nom']) && !empty($_POST['Nom'])){
    	$nom=$_POST['Nom'];$error=NULL;
    	//filtrage 
    	$nom=PetitClean($nom,30); /*30 caractres maxi*/
    }else if (isset($_POST['Nom']) && empty($_POST['Nom'])){
    	echo $error='- N\'oubliez pas votre prénom et votre nom<br/>';
    }
     
    if(isset($_POST['Email']) && !empty($_POST['Email']))
    {
    	$Email=$_POST['Email'];$error=NULL;$Email=htmlentities($Email);
    	//filtrage
    	$Email=PetitClean($Email,60);
    	if(VerifierAdresseMail($Email))
    	{
    	//echo 'mail ok';
    	}
    	else
    	{
    	echo $error='- Il y a une erreur dans votre adresse e-mail<br/>';
    	}
    }
    else if(isset($_POST['Email']) && empty($_POST['Email']))
    {
    	echo $error='- N\'oubliez pas votre adresse mail<br/>';
    }
     
    if(isset($_POST['Message']) && !empty($_POST['Message']))
    {
    	$Message=$_POST['Message'];$error=NULL;
    	//filtrage
    	$Message=PetitClean($Message,300);
    }
    else if(isset($_POST['Message']) && empty($_POST['Message']))
    {
     
    }
    if($_SERVER['REQUEST_METHOD']==='POST')
    { 
     
    	if(!empty($_POST['code']) && isset($_SESSION['verif']) && $_POST['code']===$_SESSION['verif']){ 
    		$destinataire="mail@fournisseur.fr";
    		$subject=$objet;
    		$body=$message;
     
    		/*format du mail*/
    		$headers = "MIME-Version: 1.0\r\n";
    		$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    		/*ici on dtermine l'expediteur et l'adresse de réponse*/
    		$headers .= "From: $Nom <$Email>\r\nReply-to : $Nom <$Email>\nX-Mailer:PHP";
    		/*tout est ok*/
     
    		if (Email($destinataire,$subject,$body,$headers))
    		{
    			echo '- Votre message vient être envoyé<br/>!';
    		}
    		else
    		{
    			echo '- Votre message n\'a pas été envoyé<br/>';
    		}
    			/*petite secu*/
    			$Message=NULL;
    			$Email=NULL;
    			$Nom=NULL;
    			$_POST=NULL;
    			$_SESSION['verif']=NULL; 
    			$destinataire=NULL; 
    	}
    	else 
    	{
    		echo $error='- N\'oubliez pas le code de sécurité<br/>';
    	}
     
    }
    ?>

  17. #17
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Merci à vous pour votre aide..
    Ca fait plaisir de savoir qu'il y a des pros....

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

Discussions similaires

  1. gestion dynamique du formulaire sans Javascript
    Par reneguenon dans le forum Struts 1
    Réponses: 14
    Dernier message: 03/11/2008, 15h10
  2. formulaire sans attribut 'action' et javascript
    Par cyanure93 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/04/2007, 11h18
  3. Réponses: 14
    Dernier message: 27/07/2006, 14h40
  4. Afficher masquer des blocs sans javascript
    Par Space Cowboy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 24/09/2005, 10h37
  5. ouvrir un pop-up sans javascript ?
    Par bakonu dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 09/02/2005, 16h46

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