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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    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 averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    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 averti Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

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

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    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 Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    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 Expert
    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
    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 averti Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    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 averti Avatar de SeThYy
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    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

+ 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