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 :

[Mail] php et champ de saisie


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut [Mail] php et champ de saisie
    bonjour,

    voila j'ai un formulaire avec juste les champs "email" et "password" donc leur déclaration et en HTML. PUIs l'utilisateur appuie sur un bouton "envoyer" etje récupère les valeur entrée par php pour vérifier les donnée...etc

    Le probleme c'est que les valeur écrites dans les champs disparaisse aprés appui sur le bouton et je voudrait pouvoir les conserver, du moins pour l'émail ou les reécrire dans la cas ou l'utilisateur écrirait un email avec un mauvais format, ou un mot de passe trop court...

    Comment faire?? voici le code

    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
     
    //rentrer du mail et du mot de passe
    $form="<form method=\"POST\">
    <p>Adresse E-mail : <input type=\"text\" name=\"mail\" size=\"50\" value=\"\"></p>
    <p>Mot de passe : <input type=\"password\" name=\"password\" size=\"30\" value=\"\"></p>
    <p>Retaper votre mot de passe : <input type=\"password\" name=\"re_password\" size=\"30\" value=\"\"></p>
    <p><input type=\"submit\" value=\"Envoyer\" name=\"envoyer\"></p>
    </form>";
    echo $form;
     
    $correct=FALSE;
     
    //vérification du format du mail et du password
    if(isset($HTTP_POST_VARS['envoyer']))
    {
    $correct=TRUE;  //détecte les erreurs
     
     
    //partie mail
    print('<br>');
    $mail=trim(STRTOLOWER($HTTP_POST_VARS['mail'])); //majuscule -> minuscule et espace devant derrière
    if(empty($mail)){ print('<b>Entrez une adresse E-mail</b><br>');  $correct=FALSE;   }
    elseif(STRLEN($mail)>50) { print('<b>Votre E-mail ne doit pas dépasser 50 caractères</b><br>');  $correct=FALSE; }
    elseif(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$mail))
    { print('<b>Rentrez une adresse E-mail valide</b><br>');   $correct=FALSE; }
     
     
     
    //partie mot de passe
    $password=trim($HTTP_POST_VARS['password']);
    $re_password=trim($HTTP_POST_VARS['re_password']);
    if(empty($password)) { print('<b>Entrez un mot de passe</b><br>');  $correct=FALSE; }
    elseif( (STRLEN($password)<6) || (EREG(" ",$password)) || (STRLEN($password)>20) )
    { print('<b>Mot de passe non valide : entre 6 et 20 caractères et sans espace</b><br>');  $correct=FALSE; }
    elseif($password!=$re_password)
    { print('<b>Vous avez tapé deux mots de passe différents</b>');  $correct=FALSE; }
     
    //vérifie mail avec serveur DNS : non utilisable sous Windows
    /*list($user,$dns)=explode("@",$HTTP_POST_VARS['mail']);
    If(!checkdnsrr($dns)) print('Votre serveur de messagerie ne répond pas : E-mail non valide');
    */
     
    $form['mail']=$mail;
     
    }
     
    //continuation si $correct==TRUE

    J'avais pensé à "$form['\"mail\"']=$mail;" pour reécrire les valeur mais ça marche pas !

    Merci d'avance

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Au chargement de ta page au moment de construire le formulaire il faut que tu testes si la variable $_POST['envoyer'] existe (comme tu le fais déjà pour la vérif), si c'est le cas alors tu initialises tes champs avec les valeurs présentes dans $_POST.

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut suite
    En fait je débute en PHP, lol

    Ce que je fais, c'est que je veux reécrire la valeur contenu dans$mail dans le champs nommé "mail" du formulaire et cela aprés appui sur "envoyer" et cela même si l'email et le password sont correct.

    C'est pourquoi, je veux mettre cette redéfinition du champs dans la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($HTTP_POST_VARS['envoyer'])) 
    { ....
    reécriture du champs "mail" avec ce que l'utilisateur a déjà écrit
     }
    Donc on teste bien l'existance de $_POST

    $HTTP_POST_VARS et $_POST sont t'il différent ?

    Désolé pr ces question mé étand débutant

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par kuja2053
    $HTTP_POST_VARS et $_POST sont t'il différent ?
    Euh oui je crois (enfin perso j'utilise toujours $_POST c'est plus lisible).

    Et non la démarche est bien celle que j'ai indiqué (surtout si tu réinitialises toujours les champs), ce n'est pas dans le traitement du clic (les vérifs) qu'il faut remettre les valeurs mais au moment de la construction de la page, là où tu affiches tes INPUT (dans ton cas c'est dans la construction de ta variable $form), c'est là qu'il faut regarder si il ya quelque chose dans $_POST et si c'est le cas affecter les valeurs aux champs.

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut ...
    pourrez tu m'écrire le bout de code à mettre et à quelle endroit (avant , aprés , dedans la déclaration de $form car ça marche pas!

    A chaque fois il me dit que $mail n'est pas défini

    Désolé d'être un boulet

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 233
    Points : 122
    Points
    122
    Par défaut
    C'est bon ça marche

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

Discussions similaires

  1. recuperation d'un champ de saisi en webdev php
    Par berlino dans le forum WinDev
    Réponses: 0
    Dernier message: 17/02/2011, 15h03
  2. Réponses: 5
    Dernier message: 13/02/2008, 10h20
  3. [Mail] problème sur champs de saisie
    Par FraK dans le forum Langage
    Réponses: 5
    Dernier message: 12/03/2007, 12h04
  4. [php/mysql]Controle de requete dans un champ de saisie
    Par rdams dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/03/2006, 10h57
  5. [PHP-JS] Champs de saisie
    Par lechevin dans le forum Langage
    Réponses: 15
    Dernier message: 05/01/2006, 12h09

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