Problème php

Résolu
Bonjour,

J'ai un petit problème dans mon code php enfaite je voudrais qu'une personne quand elle choisie enregistré elles puissent accède à la page enregister.php et quand elle choisi modifier elle accède a la page modif.php le probléme c'est que ça ne prend pas en compte le if

je vous balance mon code
<html>
<body>
<h1>Bienvenue a la page d'acceuil</h1><br>
Que voulez vous faire ?<br>

<form name="choix" method="radio" action="vchoix.php">
Enregistrer vos informations &nbsp <input type="radio" name="choix" value="enregistre">
<br>

Modifier vos informations &nbsp &nbsp <input type="radio" name="choix" value="modifier"><br><br>

<input name="choix" type="submit" value="Envoyer">
</form>

</html>

et mon code php
<?

$choix==$_POST['choix'];

if ( $choix=="enregistre")
{
include ('formulaire.php')
}
else {

include ('modif.php')
}
?>
merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.14

26 réponses

Résumé de la discussion

Problème rencontré : un formulaire PHP utilise des boutons radio pour diriger vers formulaire.php ou modif.php en fonction du choix enregistré, mais le code échoue à exécuter la condition, ce qui empêche la redirection correcte. Parmi les solutions proposées, il est recommandé d'utiliser method='POST' sur le formulaire, d'affecter correctement la valeur avec $choix = $_POST['choix']; et de tester isset($_POST['choix']) avant la comparaison pour orienter vers formulaire.php ou modif.php. Des variantes évoquent l'inclusion directe du fichier choisi ou l'utilisation d'un champ caché, mais la pratique recommandée reste de valider l'entrée et d'appliquer une structure conditionnelle claire pour l'acheminement.

Bobot (l’IA à votre service)
  1. dans ton form remplace

    method="radio"

    par

    method="POST"
    1
    1. Bien vu
      0
  2. pourquoi tu veux pas de champ texte ? il n'a qu'à être invisible non?

    voilà en tout cas qqch qui marche (testé !)

    la page accueil.php :

    <?
    echo "

    <h1>Bienvenue a la page d'acceuil</h1><br>
    Que voulez vous faire ?<br>

    Enregistrer vos informations
    <input type=radio name=choix onclick=document.getElementById('valeur').value='enregistre'>
    <br>

    Modifier vos informations
    <input type=radio name=choix onclick=document.getElementById('valeur').value='modifier'><br><br>

    <form method=post action=vchoix.php>

    <input type=hidden id=valeur name=valeur>
    <input type=submit value='envoyer'>
    </form>
    ";

    ?>

    la page vchoix.php :

    <?
    $choix="";
    if(isset($_POST['valeur'])){$choix=$_POST['valeur'];};

    echo "j'inclus ici la page $choix";

    ?>
    1
    1. tu peux écrire simplement

      <?
      include("$choix.php");
      ?>
      1
      1. C'est un include.

        include("enregistre.php");
        include("modif.php");

        Epsilone
        1
        1. $choix==$_POST['choix'];

          Là il ne va que comparer. Pour affecter il ne faut qu'un =
          0
          1. Bonjour,
            Hum, déjà tu à plein de truc qui s'appelle 'choix' (le form, le radio, un bouton)
            C'est pas top top.
            Ensuite quand tu dit que ca ne prend pas en compte le if, peut tu détailler ce qui ta fait arriver a cette conclusion ?
            0
            1. Avec deux boutons radios qui ont le m^me ça ne peut pas marcher.
              0
              1. Les bouton radio doivent avoir le même "name"

                Les erreur sont celle que j'ai souligné plus haut

                et celle qu'a souligné MrSlave sur l'affectation de ta variable

                Et sa devrai être bon
                0
                1. Si tous les problèmes étaient comme ça. :D
                  0
              2. je ne peu pas enlever mon radio et le remplacer par un post les personnes on le choix entre enregistre et modifier
                0
                1. <html>
                  <body>
                  <h1>Bienvenue a la page d'acceuil</h1><br>
                  Que voulez vous faire ?<br>

                  <form name="formChoix" method="POST" action="vchoix.php">
                  Enregistrer vos informations <input type="radio" name="choix" value="enregistre">
                  <br>

                  Modifier vos informations <input type="radio" name="choix" value="modifier"><br><br>

                  <input name="btnChoix" type="submit" value="Envoyer">
                  </form>

                  </html>

                  Et le PHP
                  <?

                  $choix=$_POST['choix'];

                  if ( $choix=="enregistre")
                  {
                  include ('formulaire.php');
                  }
                  else
                  {
                  include ('modif.php');
                  }
                  ?>

                  voila le code corrigé normalement.
                  "method" c'est le mode de passage des variables
                  0
                  1. non Mimiste sa ne marche pas sa m'envoie la même page a chaque fois on dirai qu'il n'entre pas dans le if
                    0
                    1. mets ça sur ta page d'accueil :

                      <html>
                      <body>
                      <h1>Bienvenue a la page d'acceuil</h1><br>
                      Que voulez vous faire ?<br>

                      <form name="choix" method="radio" action="vchoix.php">
                      Enregistrer vos informations <input type="radio" name="choix"

                      onclick=document.getElementById('choix').value="enregistre">
                      <br>

                      Modifier vos informations
                      <input type="radio" name="choix" onclick=document.getElementById('choix').value='modifier'><br><br>

                      <input name="choix" type="submit" 'envoyer'>

                      <input type=text id=choix>
                      </form>

                      </html>

                      sur ta page vchoix.php tu récupères les données :

                      $choix=$_POST['choix']

                      puis ton code avec tes if choix==
                      0
                    2. (Ton code n'est pas correct tom, c'est "name" qui compte dans un formulaire et pas "id")

                      Sa t'envoi quelle page ?
                      0
                  2. la page MODIF.PHP
                    0
                    1. t'a bien ecrit l'affectation avec 1 seul egal comme on t'a dis ?

                      $choix=$_POST['choix'];
                      0
                  3. j'ai pas compris tom novembre pourquoi ta fait un input . moi je donne un choix au personne et quand il clique sur dans enregistre sa leurs affiche la page enregistré et quand la meme chose pour modifier et je veut pas de champ text
                    0
                    1. oui j'ai bien corriger le == en =
                      0
                      1. plus personne pour m'aider
                        0
                        1. Bonjour,

                          Pour ton HTML :
                          1. Réécris la syntaxe de ta forme
                          2. Change le name de ton submit

                          <html>
                          <body>
                          <h1>Bienvenue a la page d'acceuil</h1><br>
                          Que voulez vous faire ?<br>
                          <form action='vchoix.php' method='post'>
                          Enregistrer vos informations <input type="radio" name="choix" value="enregistre">
                          <br>
                          Modifier vos informations <input type="radio" name="choix" value="modifier"><br><br>
                          <input name="envoyer" type="submit" value="Envoyer">
                          </form>
                          </html>

                          Pour ton PHP :
                          1. Au lieu de faire une égalité, fait une affectation, pourque la variable ait une valeur

                          $choix= $_POST['choix'];

                          Bon courage

                          Epsilone
                          0
                          1. di moi tom comment je fait pour que ma page s ouvre directement au lieu de mettre un message
                            et merci a epsiloneIB et a Mimisteg pour ton aide comme au autre
                            0
                            1. je veux dire sans supprimer le reste bien sûr, donc

                              <?
                              $choix="";
                              if(isset($_POST['valeur'])){$choix=$_POST['valeur'];};
                              include("$choix.php");
                              ?>
                              0
                          2. Epsilone soit la page enregistre.php ou modif.php
                            0
                            1. si tu fais comme j'ai mis, l'une ou l'autre de ces pages s'affichera dans vchoix.php
                              0
                          • 1
                          • 2