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 :

Contrôle du formulaire


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut Contrôle du formulaire
    Bonjour et meilleurs voeux à TOUS.
    (C'est aussi et en outre une manière de me rendre sympathique car la réponse est peut-être dans la FAQ de ce forum que je n'ai pas lu complètement ?!)

    A la sortie d'un formulaire on va dans le script "action" de "form".
    Je suppose qu'on ne peut vérifier aucun champ dans le script du formulaire lui-même ? et boucler en quelque sorte? ...
    * Si ma supposition est mauvaise comment faire?
    * Si ma supposition est correcte, on effectue les contrôles dans le programme appelé et on refait appel au script qui contient le formulaire.
    Dans ce cas, comment afficher le message d'erreur qui disparait à l'affichage du formulaire puisque l'on change de script? et ça obligerait à prévoir l'affichage de l'erreur qui, évidemment, n'existe pas au premier passage.

    Au retour je pense qu'on peut évidemment positionner le curseur dans la bonne zone?.
    Merci.
    M.M.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Tu peux faire boucler le formulaire sur lui meme :


    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
     
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
     
    // vérification des champs
    if ($_POST['champ'] == "") {
       $erreur = ".........";
    }
     
    // traitement des erreurs
    if (isset($erreur)) {
     echo $erreur;
    }
    else {
      // traitement si formulaire ok avec une redirection par exemple
    }
    }
     
    echo '<form action="" method="POST">';
    // suite du formulaire
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut merci,
    Voilà une information très intéressante.
    Je dois cependant demander où doit être mis ce code?
    * dans le script du formulaire? au début? entre les balise "form"? après le </form>? Intuitivement ce serait la dernière option.
    * dans le script "action" de "form", au début?

    La suite (script lié en redirection), si tout est bon et dans le cas où ce code serait dans le formulaire peut-elle être un tout autre script que celui "action" de "form". Quel choix est alors pris pour la suite?

    Les valeurs déjà renseignées sont-elles conservées? Où se positionne le curseur?

    Voir SVP la question de ma discussion suivante.
    Cordialement.
    M.M.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que j'ai griffoné est un exemple possible de la page complete du formulaire, la derniere ligne etant le début du formulaire proprement dit.

    Les valeurs peuvent être reprises puisqu'elles sont contenus dans $_POST.

    La "suite" peut etre n'importe quoi, on peut meme ne pas rediriger et continuer dans le meme fichier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut Nouvelle précision
    Bonjour,
    Je viens à nouveau te demander une précision, non seulement pour résoudre ce problème lui-même mais également pour comprendre la logique des scripts et enchaînements PHP.
    Ton code va donc se trouver dans le script qui contient le formulaire ?
    Structure de ce script :
    * lignes de script
    (1)
    <form ... >
    (2)
    le formulaire proprement dit dont le submit
    (3)
    </form>
    (4)
    nouvelles lignes de script
    (5)
    fin de la procédure.

    Le code que tu m'as fourni, un bloc unique?, doit être mis dans quel (?) ci-dessus. A te lire ce serait en (2)?

    En effet je ne "vois" pas quand ce code est exécuté dans la logique PHP.
    * LOrs du premier passage dans le script il n'y a pas de raison d'exécuter le code où il y aurait un problème du fait que les champs ne sont pas encore remplis.
    * lors du clic sur le "value" de "submit" ?
    * sinon ?
    Je suis habitué à d'autres langages, sans doute plus anciens, qui ont un contrôle direct sur chaque champs dès lors que l'on quitte sa zone, d'où sans doute ma difficulté à comprendre la logique PHP.
    Je te remercie.
    M.M.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que je te t'ai mis est un exemple d'un deroulement complet.
    Il doit être ré-adapté à ton contexte mais l'idée en resumé c'est qu'on affiche le formulaire tant qu'il y a des erreurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut dommage !!
    pourquoi ne pas répondre simplement à ma question?
    Je ne vois pas en quoi le code que tu me fournis constitue "'un deroulement complet" pour le travail sur un formulaire !!.
    Tant pis, tu laisses tomber, je ne peux (ne sais !) pas me servir de ce que tu me donnes. Dommage.
    M.M.

  8. #8
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    salut M.M,
    ce que sabotage t'as mis est pourtant clair.
    mais c'est vrai, il ne t'as pas donne le code final (seul toi le connait xD)
    il t'a donne l'algo (les grandes lignes) pour que tu puisses coder sans te soucier de "quel direction prendre" (il te l'a donnee dans son 1er post)
    en effet,
    pour resumer, si des donnees en POST sont envoyees, tu verifies leur contenue
    (if ($_POST['champ'] == ""), biensur c'est a toi de cherche la toile pour faire tous ces tests
    Puis, tu affiche l'erreur (si il y en a une) ou tu traite les donnees(s'il n'y a pas d'erreur) pour enfin reafficher ton formulaire.

    voila, j'espere que cela t'aidera
    GL & HF
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  9. #9
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut dur dur de se comprendre !
    Bonjour,
    Il est bien entendu que vous n'allez pas me dire ce que je dois écrire pour les contrôles.
    MAIS, ma question pourtant très simple n'a toujours pas sa réponse en clair :

    "peut-on faire les contrôles sans sortir du script qui contient le formulaire ?"

    Car pour moi, "boucler" dans une procédure ça veut dire ne pas la quitter ce qui n'est évidemment pas le cas quand on revient dans un script après avoir fait des contrôles dans un autre script, dans le cas présent le script du paramètre "action" de form.

    Puisque une de vos phrases est "si des donnees en POST sont envoyees", ça veut dire que l'on a effectivement quitté le formulaire, via le submit, pour le traiter dans le script appelé par "action". C'est facile de le dire, il me semble, même si les évidences pour les uns ne le sont pas pour d'autres.

    la réponse à ma question serait donc NON!...
    Merci et meilleurs voeux pour 2009.
    M.M.

  10. #10
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    ah, en effet, la question avait ete comprise de travers.
    Je crois que le javascript est la solution a ton problem.
    lien
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  11. #11
    Membre actif
    Homme Profil pro
    retraité, ex chef de projets en informatique
    Inscrit en
    Juillet 2005
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité, ex chef de projets en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2005
    Messages : 602
    Points : 249
    Points
    249
    Par défaut eh oui !
    Voilà, c'est bien, on y est arrivé. Merci.
    Il va falloir que j'essaie.
    Il semble qu'un collègue ait le même souci dans une discussion proche postée hier je crois.
    On ne va pas faire d'une pierre deux coups mais d'un coup on va apporte une pierre aux deux ouvrages.
    Donc ça bouge.
    M.M.

  12. #12
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par marcel marie Voir le message
    Voilà, c'est bien, on y est arrivé. Merci.
    Il va falloir que j'essaie.
    Il semble qu'un collègue ait le même souci dans une discussion proche postée hier je crois.
    On ne va pas faire d'une pierre deux coups mais d'un coup on va apporte une pierre aux deux ouvrages.
    Donc ça bouge.
    M.M.
    Escuses moi, mais ta conclusion a tout ce "fil" m' interpelle,
    En effet ce qui a fait que la vrais réponse a ta question n' est venu qu'aprés plein d'échanges, vient du simple fait que ni Demmotte ni Sabotage n'avaient capté que tu croyais que le client et le serveur dialoguent dans un PHP

    Tu as maintenant bien compris

    Un PHP fabrique un HTML, celui que tu vois sur ton micro, puis il s'arréte !!

    Quant tu lui réponds, le serveur relance le PHP que tu appelle, et traite tes réponses !!

    Tu notera que le PHP que tu appelles n' est pas forcément celui qui contient la saisie, c 'est pour cette raison que dans ton cas, Sabotage t'a conseillé de mettre dans ton FORM un appel au PHP contenant le FORM.

    Voila escuses moi, mais il fallait sans doute recadrer ce point

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

Discussions similaires

  1. [PHP-JS] Classe de contrôle de formulaire
    Par MV1908 dans le forum Langage
    Réponses: 4
    Dernier message: 10/10/2006, 00h01
  2. Réponses: 1
    Dernier message: 21/07/2006, 05h56
  3. Les contrôles de formulaire, quel test optimal ?
    Par GTJuanpablo dans le forum Langage
    Réponses: 8
    Dernier message: 26/04/2006, 10h00
  4. accéder à un contrôle de formulaire avec un nom de tableau
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/06/2005, 23h57
  5. [JSP] [STRUTS] Contrôle de formulaire
    Par babylone7 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/07/2004, 17h51

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