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 :

Redirection vers un même formulaire.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut Redirection vers un même formulaire.
    Bonjour a tous !

    Voilà je suis en train de créer un formulaire. Je l'ai mis ds une page php car je souhaite faire la redirection vers ce meme formulaire si certain champs ne sont pas valide.

    Ma page = Formulaire.php
    <form action="Formulaire.php" ...>

    mon soucis est le suivant : lors de l'affichage de la page j'obtient des erreur car les variables ne sont pas reconnues.

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
     
    <form action="formulaire.php" name="form" method="POST">
    <fieldset>
    <legend></legend>
     
    <table border=0 width=100%>
     
    <!-- //partie pour l'identite du contact -->
    <tr>
        <td colspan=2 class="titre">Identification de la personne</td>
    <tr>
    <tr>
        <td><P class="libelle">Civilité *</p></td>
        <td><select id="civ" class="marge">
            <option selected value=0> - choix - </option>
            <option value=1> Md. </option>
            <option value=2> Mme. </option>
            <option value=3> M. </option>
            </select>
            </td>
    <tr>
    <tr>
        <? if (($Espion == "retour") && (strlen($nom) == 0)) echo "Vous devez renseigner le nom";?>
        <td><p class="libelle">Nom *</p></td>
        <td><input type="text" value="<? echo $nom;?>" name="nom" class="marge"></td>
    <tr>
    <tr>
        <td><p class="libelle">Prénom *</p></td>
        <td><input type="text" value="<? echo $prenom;?>" name="prenom" class="marge"></td>
    <tr>
    <tr>
        <td colspan=2><Hr></td>
    <tr>
    <!-- partie pour la fonction du contact -->
    <tr>
        <td colspan=2 class="titre">Fonction de la personne</td>
    <tr>
    <tr>
        <td><P class="libelle">Fonction *</p></td>
        <td><select id="idf" class="marge">
            <option selected value=0> - choix - </option>
            <option value=1> Maire </option>
            <option value=2> Maire-Adjoint </option>
            <option value=3> Conseiller Régional </option>
            <option value=4> Conseiller Général </option>
            </select></td>
    <tr>
    <tr>
        <? if (($Espion == "retour") && (strlen($fonction_a) == 0)) echo "Vous devez renseigner la fonction";?>
        <td><input type="checkbox" id="idactive" name="active" onclick="disableInput('ida','idf',this.checked)" class="libelle">Autre</td>
        <td><input type="text" id="ida" value="<? echo $fonction_a;?>" name="fonction_a" disabled="true" style ="BACKGROUND-COLOR=#CCC" class="marge"></td>
    <tr>
    <tr>
        <td colspan=2><Hr></td>
    <tr>
    <!-- partie pour les coordonnees du contact -->
    <tr>
        <td colspan=2 class="titre">Coordonnées de la personne</td>
    <tr>
    <tr>
        <td><p class="libelle">Adresse *</p></td>
        <td><input type="text" value="" name="adresse" class="marge" size=50></td>
    <tr>
    <tr>
        <? if (($Espion == "retour") && (strlen($ville) == 0)) echo "Vous devez renseigner la ville";?>
        <td><p class="libelle">Ville *</p></td>
        <td><input type="text" value="<? echo $ville;?>" name="ville" class="marge" size=30></td>
    <tr>
    <tr>
        <? if (($Espion == "retour") && (strlen($cp) == 0)) echo "Vous devez renseigner le code postal";?>
        <td><p class="libelle">Code postal *</p></td>
        <td><input type="text" value="<? echo $cp;?>" name="cp" class="marge" size=5></td>
    <tr>
    <tr>
        <td><p class="libelle">Portable </p></td>
        <td><input type="text" value="" name="portable" class="marge" size=14></td>
    <tr>
    <tr>
        <td><p class="libelle">Fixe </p></td>
        <td><input type="text" value="" name="fixe" class="marge" size=14></td>
    <tr>
    <tr>
        <td><p class="libelle">Mail </p></td>
        <td><input type="text" value="" name="mail" class="marge" size=14></td>
    <tr>
    <tr>
        <td colspan=2><Hr></td>
    <tr>
    <tr>
        <td colspan=2 align="center">
        <input type="SUBMIT" value="Enregistrer" name="envoyer">
        <input type="hidden" name="Espion" value="retour"></td>
    <tr>
     
    </table>
     
    </fieldset>
    </form>
    J'utilise la variable "espion" affin de savoir si c'est la premiere fois ou pas que je suis sur cette page.

    voici le résultat lors de l'affichage:

    en haut du formulaire:

    Notice: Undefined variable: Espion in c:\program files\easyphp1-8\www\zone_de_test_form\formulaire_test2.php on line 76

    dans les zones de texte :

    <br /><b>Notice</b>: Undefined variable: nom in <b>c:\program files\easyphp1-8\www\zone_de_test_form\formulaire_test2.php</b> on line <b>78</b><br />

    Je sais bien qu'une solution existe en redirigeant vers une autre page mais je trouve interressant de n'utiliser qu'une seule page. ( du moins pour les vérification ).

    Merci d'avance pour votre aide .

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Il faut que tu récupères les informations du formulaire en utilisant le tableau $_POST (ex $_POST["Espion"])

  3. #3
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    la méthode sans utiliser le tableau superglobal $_POST marchait avec php3 il me semble, mais depuis php4 et 5 il faut utiliser ces tableaux pour récupérer les valeurs 'postées'

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    Je viens de changer mes variables comme tu me l'as dis.

    $_POST["Espion"], $_POST["nom"] ...

    mais les erreurs persistent.

    De plus, qqch que je n'avais pas signalé tout à l'heure.
    Dans la ligne de code suivant le php n'est pas reconnu car il n'apparait pas au couleur habituelle , est ce normal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <td><input type="text" value="<? echo $_POST['prenom'];?>" name="prenom" class="marge"></td>

  5. #5
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    est-ce que tu peux mettre un peu plus de code ?

    tu as probablement un problème avec les ' ou "

  6. #6
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    voila une ligne qui devrait marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php echo '<td>
            <input type=text value="'.$_POST['prenom'].'" name=prenom class=marge>
         </td>'; ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    désolé mais il y a toujours un soucis.

    voilà un bout code :

    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
     
     
    // syntaxe d'origine pour la varible nom :
     
    <tr>
        <? if (($_POST['Espion'] == "retour") && (strlen($_POST['nom']) == 0)) echo "Vous devez renseigner le nom";?>
        <td><p class="libelle">Nom *</p></td>
        <td><input type="text" value="<? echo $_POST['nom'];?>" name="nom" class="marge"></td>
    <tr>
     
    // avec la méthode précédante pour la varible prénom ou on ne fait pas de test
     
    <tr>
        <td><p class="libelle">Prénom *</p></td>
        <?php echo' <td><input type=text value="'.$_POST['prenom'].'" name=prenom class=marge></td>';?>
    <tr>

    voici les deux erreurs qu'IE envoi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Nom *
     
    Notice: Undefined index: Espion in c:\program files\easyphp1-8\www\zone_de_test_form\formulaire_test2.php on line 76
     
    Prénom *
     
    Notice: Undefined index: prenom in c:\program files\easyphp1-8\www\zone_de_test_form\formulaire_test2.php on line 82

    donc le problème reste entier .

  8. #8
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par Commodore_Psykopate
    la méthode sans utiliser le tableau superglobal $_POST marchait avec php3 il me semble, mais depuis php4 et 5 il faut utiliser ces tableaux pour récupérer les valeurs 'postées'
    4.2.0 pour être précis

    Citation Envoyé par lecail65
    mais les erreurs persistent.
    ben donne-les nous, c'est forcément pas les mêmes (donne aussi le bout de code que tu as modifié tant qu'à faire).

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

Discussions similaires

  1. Redirection vers la même page
    Par Konami15 dans le forum ASP
    Réponses: 6
    Dernier message: 27/09/2008, 13h33
  2. Redirection vers la même page jsp
    Par patrios dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/04/2008, 20h08
  3. Redirection vers la même page après submit de formulaire
    Par noOneIsInnocent dans le forum Struts 1
    Réponses: 5
    Dernier message: 27/10/2006, 16h36
  4. Réponses: 4
    Dernier message: 26/07/2006, 14h37
  5. Réponses: 1
    Dernier message: 20/07/2006, 18h46

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