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. #1
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut Vérification formulaire PHP
    Bonjour,

    Je désirerais faire une vérification d'un formulaire en PHP. Je m'explique : j'ai deux fichiers, formulaire.php et traitement.php
    Comme vous le devinez, formulaire.php envoie les informations des champs remplis à traitement.php.
    Seulement voila : dans formulaire.php, je souhaiterais établir un script qui vérifie si un champs obligatoire a été rempli, et si ce n'est pas le cas, afficher un message d'erreur juste à coté du champ... Enfin, si l'utilisateur a bien rempli tous les champs obligatoires, les données sont transmises à traitement.php

    Voici le code de 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
    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
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="traitement.php">
    <p>
    Nom * :
    <input type="text" name="nom" id="textfield" />
    <?php
    if(isset($_REQUEST["envoyer"]))
    {
    if(!isset($_REQUEST["nom"]) || $_REQUEST["nom"]=="")
    {
    die ("Ce champ doit être renseigné.");
    }
    }
    ?>
    </p>
    <p>
    Prénom * :
    <input type="text" name="prenom" id="textfield" />
    <?php
    if(isset($_REQUEST["envoyer"]))
    {
    if(!isset($_REQUEST["prenom"]) || $_REQUEST["prenom"]=="")
    {
    die ("Ce champ doit être renseigné.");
    }
    }
    ?>
    </p>
    <p>
    <input type="submit" name="envoyer" id="button" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    Merci d'avance pour votre aide !!

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Perso pour ce genre de système j'utilise une variable de session, $_SESSION['form'] : tu la crées dans traitement.php, et si elle n'est pas vide à la fin du traitement, c'est qu'il y a un champ manquant, et hop retour au formulaire.

  3. #3
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    Tu pourrais m'en dire un peu plus ??

  4. #4
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Citation Envoyé par sethyy Voir le message
    ...
    Seulement voila : dans formulaire.php, je souhaiterais établir un script qui vérifie si un champs obligatoire a été rempli...
    Si, comme tu l'écris, tu veux que la vérification soit faite dans le formulaire avant l'envoi, c'est du côté client, donc c'est du boulot pour javascript et non pour PHP.

    Ou alors j'ai mal compris.

  5. #5
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    bah moi je veux bien que ce soit en javascript, mais je veux pas de boite de dialogue... En plus de ca, pour moi le PHP est plus simple car je n'ai aucune connaissance en JS, contrairement au PHP. En plus de ca, si l'utilisateur désactive le JS, on l'a ds le baba!

  6. #6
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Pour faire ta vérification en PHP modifie l'action de ton "form", en mettant le nom de ta page "formulaire.php".
    Maintenant lorsque l'utlisateur appuit sur le bouton on effectue le test sur les différents champs.
    Si les champs sont bien remplis, on redirige avec un "hedear(location: ....)" :
    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
    <?php 
    if(isset($_POST["envoyer"])) {
     
    	if(!isset($_POST["nom"]) || $_POST["nom"]=="") {
    		$nom = "Ce champ doit être renseigné.";
    	} else {
    		$nom = "";
    	}
     
    	if(!isset($_POST["prenom"]) || $_POST["prenom"]=="") {
    		$prenom = "Ce champ doit être renseigné.";
    	} else {
    		$prenom = "";
    	}
     
    	if (($nom == "") && ($prenom == "")) {
    		header('location:traitement.php'); 
    	}
    }
     
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="formulaire.php">
    <p>
    Nom * :
    <input name="nom" type="text" id="textfield" value="<?php echo $_POST['nom'] ; ?>" />
    <?php echo $nom ; ?>
    </p>
    <p>
    Prénom * :
    <input name="prenom" type="text" id="textfield" value="<?php echo $_POST['prenom'] ; ?>" />
    <?php echo $prenom ; ?>
    </p>
    <p>
    <input type="submit" name="envoyer" id="button" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>

  7. #7
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Citation Envoyé par sethyy Voir le message
    bah moi je veux bien que ce soit en javascript, mais je veux pas de boite de dialogue...
    C'est pas tellement une question de bien vouloir que ce soit du javascript. Il faut bien faire la distinction entre ce que tu veux effectuer côte client (avant de soumettre le formulaire) et ce que tu veux faire côté serveur (après avoir soumis le formulaire).

    De ce choix découlera le langage utilisé.

    Personnellement, quand il s'agit d'un formulaire simple, je fais la validation côté serveur car ce n'est pas très compliqué de renvoyer le contenu des champs, ce qui fait que l'utilisateur ne doit pas recommencer toute la saisie.

    Mais quand il s'agit d'un formulaire plus complexe, utilisant AJAX pour des listes liées par exemple, je préfère la validation côté client, donc en javascript. De toute façon, si l'utilisateur a désactivé javascript, l'AJAX du formulaire est dans les choux, donc la validation en javascript n'est plus un problème.

  8. #8
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    Merci à vous tous pour vos explications, et merci jumano, tu ma bien mis sur la voie! Voici le code final qui marche à 100%, pour ceux que ca intéresseraient :

    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
    <?php 
    if(isset($_POST["envoyer"])) {
     
    	if(!isset($_POST["nom"]) || $_POST["nom"]=="") {
    		$nom = "Ce champ doit être renseigné.";
    	} else {
    		$nom = "";
    	}
     
    	if(!isset($_POST["prenom"]) || $_POST["prenom"]=="") {
    		$prenom = "Ce champ doit être renseigné.";
    	} else {
    		$prenom = "";
    	}
     
    	if (($nom == "") && ($prenom == "")) {
    		header('location:traitement.php'); 
    	}
    }
    ?>
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="#">
    <p>
    Nom * :
    <input name="nom" type="text" id="textfield" value="<?php
    if (isset ($_POST['nom'])) {
    echo $_POST['nom'];
    }
    ?>" />
    <?php 
    if(isset($_POST["envoyer"])) {
    echo $nom;
    }
    ?>
    </p>
    <p>
    Prénom * :
    <input name="prenom" type="text" id="textfield" value="<?php
    if (isset ($_POST['prenom'])) {
    echo $_POST['prenom'];
    }
    ?>" />
    <?php 
    if(isset($_POST["envoyer"])) {
    echo $prenom;
    }
    ?>
    </p>
    <p>
    <input type="submit" name="envoyer" id="button" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    RoCk n' RoLL

  9. #9
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    Rectification! Il y a un problème...

    Les messages d'erreurs s'affichent, ca ok. Mais aucune information n'est envoyée à traitement.php !

    Aidez-moiiiiiiii j'en peux plus

  10. #10
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Oupssss ....
    Effectivement j'avais oublié de mettre les variables dans l'url pour les transmettre à la deuxième page .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location:traitement.php?nom='.$nom.'&amp;prenom='.$prenom.'');
    Comme tu passes les variables dans l'url, il te faut les récupèrer avec la méthode $_GET et non avec $_POST.
    Seul inconvénient elles sont visibles, sinon il faut créer des variables de session.
    FAQ PHP :Comment conserver des variables de page en page ?

  11. #11
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    ca ne marche pas.... j'ai remplacé tous mes $_POST par $_GET, et j'ai remplacé ce que tu m'as dit, et il ne se passe rien...

  12. #12
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    Je ne devais vraiment pas être reveillé ce matin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location:traitement.php?nom='.$_POST["nom"].'&prenom='.$_POST["prenom"].'');

  13. #13
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    J'ai essayé, et rien a faire... Il n'y a pas un autre moyen que un header ??

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Tu peux conserver la même philosophie (à savoir, contrôles des saisies et si une erreur est détéctée, utilisation de header()), mais déporter la vérification de la saisie vers la page traitements.php.


    Tu aurais donc :
    • formulaire.php qui ne contient que le formulaire
    • traitements.php qui contient la vérification des saisies et l'éventuelle redirection vers formulaire.php si tu détectes des erreurs de saisie.


    Avantages :
    • formulaire.php ne contient que le formulaire
    • Tu auras tes variables $_POST disponibles sur la page traitements.php prêtes à l'emploi si jamais tu n'as pas redirigé l'utilisateur

  15. #15
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    +1 pour la solution de Christophe_ .
    Néanmoins je suis étonné que tu n'arrives pas à récuperer les variables avec $_GET ...

  16. #16
    Membre du Club Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 51
    Points
    51
    Par défaut
    Merci les gars ca a marché !!!!!!!!!!!!!!!!
    Merci merci merciiiii!!!

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

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 greg73 dans le forum Langage
    Réponses: 31
    Dernier message: 10/03/2009, 12h53
  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