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 :

[Tableaux] pb avec isset et formulaire non complété


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut [Tableaux] pb avec isset et formulaire non complété
    Bonjour à tous, je suis entrain de réaliser un formulaire d'inscription personnalisé et
    comme tout bon formulaire je souhaite que l'utilisateur soit obligé de remplir certain champs pour continuer l'inscription.

    Seulement je n'arrive pas à faire marcher la fonction isset, elle est bien censé vérifier si un champs a été complété ?
    En effet je veux que le script de traitement du formulaire vérifie avec un if.. else si les champs obligatoires ont été rempli et si ce n'est pas le cas, faire revenir l'utilisateur au formulaire d'inscription.
    Par exemple je veux vérifier si l'utilisateur a entré un pseudo....
    le code du champ pseudo dans mon formulaire est le suivant :

    <form action="confirm.php" method="post" name="inscription">
    <p class="titre">Pseudo : <input name="pseudo" type="text" maxlength="20"></p>
    ....
    </form>

    et le code de traitement des infos :

    <?php
    if(isset($_POST["pseudo"]))
    {
    instruction
    }
    else
    {
    header("Location:inscription.php");
    }
    ?>

    Est ce que cela peut être dû à une mauvaise instruction en else qui fait que le script pense que le champs "pseudo" est toujours remplis?
    Enfin je ne comprends vraiment pas l'erreur donc je vous remercie de m'éclairer sur le sujet. ^^

    ++


    PM

    CF: je ne sais pas si c'est necesaire mais j'utilise WAMP en local et firefox.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2006
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    La fonction isset se lisant en anglais "is set", en gros cela se traduit par "si la variable existe", or dans ton cas, la variable existe bien mais elle est vide.
    Donc dans ton cas, il existe une fonction php :
    empty()
    Retourne FALSE si var a une valeur non-vide et différente de zéro.

    Ce qui suit est considéré comme étant vide :

    * "" (une chaîne vide)
    * 0 (0 en tant qu'entier)
    * "0" (0 en tant que chaîne de caractères)
    * NULL
    * FALSE
    * array() (un tableau vide)
    * var $var; (une variable déclarée, mais sans valeur dans une classe)
    d'où le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST["pseudo"]))

  3. #3
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut
    Merciii donc isset teste le fait que l'on déclare ou non une variable que sa valeur soit nulle ou une chaîne de caractère. Merci encore je vais tout de suite tester cela.

    ++

    PuppeT

  4. #4
    Membre régulier Avatar de PuppeT mAsTer
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Points : 75
    Points
    75
    Par défaut
    Maintenant que cela fonctionne, si l'utilisateur n'a pas remplis tous les champs obligatoire, je fais retourner l'utilisateur au formulaire mais j'aimerai aussi que mon else déclenche l'apparition d'un include dans la page du formulaire disant que tous les champs non pas été remplie.
    ---------------------------------------------
    Méthodes utilisées

    J'ai essayé en utilisant header ("Location:inscription.php"); ou inscription.php est la page de mon formulaire et en mettant mon include à la suite mais l'include s'affiche seul avec une phrase d'erreur.

    J'ai fait la même manip avec la fonction window.history.back; de javascript mais ça ne fonctionne pas non plus.
    ----------------------------------------------
    Projet

    Je pense que si je met mon script de traitement du formulaire sur le formulaire lui même et si toutes les conditions de champs obligatoires sont remplies je peux réaliser une redirection vers la page de confirmation d'inscription.

    Mon problème : comment fait on une redirection vers une page avec php?

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2006
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    C'est pas un include qu'il te faut mais un echo

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juin 2006
    Messages : 56
    Points : 49
    Points
    49
    Par défaut
    tien je te met un petit bou de code d'exemple
    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
     
    <?
    //traitements
    $page = "Formulaire";
    if(isset($_POST['monChamp1'])){		//on verifie que le form a été envoyé
    	if(!empty($_POST['monChamp1']) && !empty($_POST['monChamp2'])){
    		//Instruction
    		$page = "LaSuite";
    	}else{
    		//
    		$monChamp1 = strip_tags(@$_POST['monChamp1']);
    		$monChamp2 = strip_tags(@$_POST['monChamp2']);
    		$error = "Vous n'avez pas remplit tout les champs";
    	}
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <? 
    switch($page){
    	case "Formulaire":
    ?>
    <? if(isset($error)) echo '<div>'.$error.'</div>'; ?>
    <form id="form1" name="form1" method="post" action="">
      <input name="monChamp1" type="text" id="monChamp1" value="<? echo @$monChamp1 ?>" />
      <input name="monChamp2" type="text" id="monChamp2" value="<? echo @$monChamp2 ?>" />
      <input type="submit" name="Submit" value="Envoyer" />
    </form>
    <?
    		break;
    	case "LaSuite":
    ?>
    	LA SUITE<!-- La suite de ton code html -->
    <?
    		break;
    }
    ?>
    </body>
    </html>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/02/2008, 13h55
  2. [Tableaux] créer un lien avec donnée de formulaire
    Par samy be good dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2007, 15h23
  3. Réponses: 2
    Dernier message: 29/11/2006, 15h49
  4. Réponses: 3
    Dernier message: 14/08/2006, 22h27
  5. [MySQL] Formulaire avec isset ou empty
    Par guillaume2vo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/08/2006, 23h27

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