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 :

Vérification formulaire PHP


Sujet :

Langage PHP

  1. #21
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Si tu fais tout dans contact.php qui je suppose est du coté client, du côté serveur tu ne fais plus de controle alors.
    Voici ce que j'aimerai faire. En reprenant tes exemples,
    - dans contact.php j'utilise du javascript et
    - dans traitement.php j'utilise du php pour le controle et afficher les messages d'erreur à coté des champs.(au cas ou javascript serait désactivé)
    Par rapport à la solution proposé, je crois que je serais obligé de réécrire dans traitement.php (comme proposé) tout le code du formulaire.
    Si ce que je dis est correcte ou faisable, existerait-il est moyen de retourner dans le formulaire et signaler les erreurs sans avoir à reprendre son code?
    J'espère que cette fois si j'ai été assez claire.
    Merci

  2. #22
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Par rapport à la solution proposé, je crois que je serais obligé de réécrire dans traitement.php
    Pas forcement, une fois le traitement terminé tu peux rediriger vers une page qui affichera le message :

    traitement.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // traitement
    $status = 'OK';
    header('location: /?status='.$status);
    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(isset($_GET['status'])){
        switch($_GET['status']){
            case 'OK' : 
                echo 'Vous avez correctement envoyé le message';
            break;
            case 'KO' :
                echo 'Problème lors de l\'envoi du message';
            break;
        }
    }
    J'éspère ne pas avoir répondu à côté de la plaque (pour changer)

  3. #23
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Salut je crois que j'ai pas été assez clair. Je vais reprendre ce que j'ai compris de la solution proposé ici. Et vous vous presenter ce que j'aurai fais, vous me diriez si c'est possible.
    Je prend l'exemple d'un formulaire d'inscription avec un fichier formulaire.php (cote client) qui ne contient que le code du formulaire et un fichier inscrire.php (cote serveur) vers lequel les informations saisies seront envoyées pour insertion dans une base de données par exemple.
    Selon ce que j'ai pu comprendre en lisant ce post, dans:
    formulaire.php
    - On controle directement les champs
    - s'il y a erreur on affiche le message à coté des champs
    - si c'est ok on envoi les données à inscrire.php pour enrégistrement.
    inscrire.php
    - on enregistre les données

    Voici ce que je disais qu'on devait faire
    formulaire.php
    - on ne saisi que les informations qu'on envoie à inscrire.php
    inscrire.php
    - on recupere les données qu'on controle après
    - si c'est ok en les enregistre
    - sinon on affiche les messages sur formulaire.php et toujours à coté des champs erronés.

    C'est pourquoi je disais que pour pouvoir le faire on serait obligé de reprendre le code de formulaire.php dans inscrire.php en ecrivant quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if ($erreur)
                  {
                     // code du formulaire avec affichage de messages
                  }
    Si on n'a pas besoin de refaire le formulaire dans inscrire.php, est ce qu'il serait possible renvoyer les informations au formulaire?sioui comment?
    Je veux en fait que le controle soit fait du coté serveur comme on dit que du cote client on utilise du javascript.
    J'espère que cette fois ci vous avez compris mon inquiètude. Merci

  4. #24
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Si on n'a pas besoin de refaire le formulaire dans inscrire.php, est ce qu'il serait possible renvoyer les informations au formulaire?sioui comment?
    Tu peux envoyer, par la méthode GET, des valeurs au script formulaire.php depuis le script inscrire.php. Ces valeurs représenteraient les champs erronés par exemple. Par contre tu ne pourras pas renvoyer les valeurs des champs :s

    inscrire.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('location:formulaire.php?status=KO&fields=nom-prenom');
    formulaire.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $bad_fields = array();
    if(isset($_GET['status'])){
        switch($_GET['status']){
            case 'OK' : 
                echo 'Vous avez correctement envoyé le message';
            break;
            case 'KO' :
                echo 'Problème lors de l\'envoi du message';
                $bad_fields = explode('-', $_GET['fields']);
            break;
        }
    }
    Donc $bad_fields contiendrait le nom des champs erronés.

    Le problème avec cette méthode c'est que ca va obliger l'internaute a tout resaisir.



    Pour finir, l'idéal est pour moi de tout faire dans la même page...

  5. #25
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Ok merci,la j'ai la réponse. Et sinon si on veut remettre les informations saisies dans les champs respectifs à l'exception de celles erronées ,comment fait-on?

  6. #26
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Et sinon si on veut remettre les informations saisies dans les champs respectifs à l'exception de celles erronées ,comment fait-on
    Tu mets le traitement dans la meme page que le formulaire :

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $field_name = (isset($_POST['field_name'])) ? $_POST['field_name']: '';
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <input type="text" name="field_name" value="<?php echo $field_name; ?>"/>
        <input type="submit" name="valider" value="Valider"/>
    </form>

  7. #27
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Pour chaque champs je dois remplacer par les noms respectifs.
    Avoir quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom= (isset($_POST['nom'])) ? $_POST['nom']: '';
    $prenom = (isset($_POST['prenom'])) ? $_POST['prenom']: '';

  8. #28
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    D'abord il faut mettre le traitement dans la meme page que le formulaire, ensuite oui il faudra remplacer field_name par le noms des champs (respectivement).

    Commence par produire un formulaire et le code qui va avec puis, en cas de souci, il serait préférable que tu créé un sujet.

    Bonne fin de journée;

  9. #29
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Merci pour ton aide. j'ai déjà le formulaire, je travail dessus.

  10. #30
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    En voulant reprendre l'exemple de Jumano, j'ai des champs de formulaire remplis de code HTML comme vous pouvez le voir.
    Et je ne vois pas d'ou peu venir le problème.

    Merci de votre aide


  11. #31
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Ok je viens de voir qu'il s'agit d'une notice,
    Mais comment fair pour ne plus les affichés sans utilisé @

    Merci

  12. #32
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Dans le code fournit par Jumano, il a oublié que si $_POST['field'] n'est pas valorisé, il ne peut être utilisé pour définir la value d'un input.

    En gros tu dois vérifier que tu es bien sur ta page suite à une soumission de formulaire pour afficher la valeur des champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="field" value="<?php if(isset($_POST['field'])) echo $_POST['field']; ?>"/>
    Dans le cas où tu veux leur mettre des valeurs par défaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $field = isset($_POST['field']) ? $_POST['field'] : 'valeur par défaut' ; 
    echo '<input type="text" name="field" value="'.$field.'"/>';

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. vérification d'un formulaire PHP
    Par chris22 dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2011, 03h53
  2. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  3. Vérification formulaire PHP
    Par SeThYy dans le forum Langage
    Réponses: 15
    Dernier message: 14/11/2008, 23h49
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

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