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

PHP & Base de données Discussion :

Formulaire avec vérification des champs [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Formulaire avec vérification des champs
    Salut à tous,

    Comme je débute en PHP je pars du principe que la meilleure façon d'apprendre est d'essayer de trouver ses propres solutions plutôt que de récupérer des bouts de scripts crées par d'autres sur la toile...

    En l'occurence le problème qui m'occupe est le suivant : je cherche à créer un formulaire pour permettre à mes utilisateurs de mettre à jour leurs informations personnelles.

    Mon fomulaire se renvoie les données à lui-même par la méthode POST, ce qui me permet ensuite de tester les valeurs entrées pour chaque champ et d'afficher le message d'erreur correspondant dans des conditionnelles du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(!empty($_POST['password1'])){
         if (strlen($_POST['password1']) != 0 
            && $_POST['password1'] != user_info('password')) {
              echo "<p>Le mot de passe actuel entré n'est pas correct!</p>";
         }
    }
    Jusque là rien de bien méchant (d'ailleurs ça marche parfaitement bien)

    Ce qui me pose problème, c'est de créer un bout de script PHP pour détecter qu'aucune des erreurs que j'ai prévues ne s'est produite et donc faire une redirection vers la page ou se déroule le traitement des données (écriture dans MySQL), et envoyer les données vers cette page (comme le formulaire "poste" vers lui-même, il n'envoie évidemment pas les données vers la page de traitements en question si je ne me trompe pas...)

    Je n'ai trouvé aucune explication satisfaisante sur la toile, ni d'ailleurs sur ce site (il faut dire que je viens de découvrir cette véritable mine d'information qu'est developpez.net et je m'y sens encore un peu perdu.. ) Alors si mon problème vous inspire une solution, je serai ravi d'essayer de l'implémenter...

    J'espère avoir posté ce sujet dans la bonne subdivision du forum, si ce n'était pas le cas toutes mes excuses!

  2. #2
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Je te conseillerais pour tout ce qui est test de champ etc ... d'utiliser javascript plutôt que php

  3. #3
    Candidat au Club
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Oui, mais...
    Je te conseillerais pour tout ce qui est test de champ etc ... d'utiliser javascript plutôt que php
    Au cours de mes pérégrinations sur internet j'ai cru comprendre que Javascript présentait les problèmes suivants :

    1. Accessibilité : il est tout à fait possible que les utilisateurs aient désactivé Javascript dans leur navigateur, ce qui empècherait le bon fonctionnement de ma page
    2. Sécurité : un langage côté utilisateur est susceptible de créer des failles de sécurité que ne présentent pas les scripts exécutés côté serveur


    Il est vrai que le site que je développe est un site associatif de petite envergure et que je n'ai donc pas forcément à être accessible au grand public, et pour la même raison mon site a peu de chances d'être pris pour cible par une personne mal intentionnée...

    Toutefois j'ai pris le parti de travailler en PHP autant que possible et je pense que mon formulaire doit être réalisable ainsi. Donc je vais continuer à chercher dans cette direction!

    Quoi qu'il en soit merci mille fois pour le consei!!!

  4. #4
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Je rajouterais juste comme php s'execute du coté tu augmente la charge de celui-ci en le faisant travailler sur des choses inutiles. Les personnes ayant désactivé le javascript sur leur machine ne doivent pas aller souvent sur internet vu que quasi tous les sites du net présente au moin un peu de javascript.
    Le javascript permet d'eviter de recharger la page encore et encore lors d'erreur dans un formulaire.
    Exemple :
    Un utilisateur oublie de remplir une zone d'un formulaire, tu es obligé de recharger la page pour tester le champs puis de recuperer tous les champs que l'utilisateur avait bien rentrer ensuite de réafficher la page avec les infos déjà rempli plus le message d'erreur correspondant.
    En javascript juste un message se serait affiché ou une alert et rien n'aurait été modifié.

  5. #5
    Candidat au Club
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    C'est vrai qu'au niveau légèreté du code j'aurais tout intérêt à utiliser JS... Je vais y réfléchir!

    Merci des précisions!

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 154
    Points : 164
    Points
    164
    Par défaut
    Salut,

    de un, utiliser javascript, c'est pas mal mais c pas suffisant et dire que le gars qui désactive javascript est un bébert, j'approuve pas. le javascript est source de bonnes et très mauvaises choses (comme popup) logique donc que certains le désactive.

    ceci dit, tu te casses la t^te pour pas grand chose, il me semble.

    la solution la plus simple reste de séquencer ton travail sous forme de fonction :

    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
     
    <?
     
    function EnregistreDansMySQL() {
     
    //ici la connexion à la bd, l'enregistrement des données
     
    }
     
    //verification du post du formulaire
    if ((isset($_POST["form"])) && (!empty($_POST["form"])) && ($_POST["form"])) {
     
    //verification des champs du formulaire
    $fields = array("nom","prenom");
     
    $check = true;
    foreach($fields as $key => $val) {
    if ((!isset($_POST[$fields])) || (empty($_POST[$fields])))
    $check = false;
    }
     
    //enregistrement si check est OK
    if ($check) 
    EnregistreDansMySQL();
     
    }
     
    //formulaire
    ?>
    <html>
    ....
     
    <body>
    <form method="post" action="form.php">
     
    nom : <input type="text" name="nom" value="" />
    prenom : <input type="text" name="prenom" value="" />
    <input type="hidden" name="form" value="true" />
    <input type="submit" value="envoyer" />
    </form>
    </body>
    </html>
    Après, il faut un peu tout voir : les types de données (format), les messages d'erreurs spécifiques, etc.

  7. #7
    Candidat au Club
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut C'est pas faux!
    Parfois je me demande pourquoi plus la solution d'un problème est évidente, moins on la remarque.

    Effectivement la fragmentation de mon traitement des données POST est une solution simple est efficace. Je vais sans plus attendre implémenter un code de ce genre dans ma page!

    Merci à tous pour vos réponses, et particulièrement à Orgied pour la solution à mon problème!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/04/2011, 13h09
  2. Réponses: 2
    Dernier message: 05/07/2010, 11h23
  3. vérification des champs d'un formulaire avant envoi
    Par fey dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 18/05/2007, 17h34
  4. pbm vérification des champs d'un formulaire
    Par mariafan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2006, 13h35
  5. Vérification des champs d'un sous-formulaire
    Par antoine46 dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 11h55

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