probleme????

Eléphant du PHP | 86 Messages

20 avr. 2006, 09:50

voila je n'arrive pas a redirigé mon utilisateur vers une nouvelle page.
j'ai des variables GET, un formulaire, des hidden, je test si tout est OK et jje redirige vers une nouvelle page avec des GET. MAIS ca marche pas. je reviens sur la meme page mais sans mon formulaire de départ, une page vide quoi. :?

voila mon code :
<?php
                                  if((isset($_GET['ass']))&&(isset($_GET['acad'])))
                                  {
                                  ?>
                                   <br/>
                                   <table>
                                   <form action="restauration.php" method="POST" name="monForm">
                                   <tr>
                                       <td colspan="3"><center><b>Formule</b></center></td>
                                   </tr>
                                   <tr>
                                       <td colspan="3">
                                           <center>
                                           <?php
                                             include'bdd.php';
                                             $requete="SELECT * FROM formule_repas";
                                             $res=mysql_query($requete);
                                             $vrai=mysql_fetch_assoc($res);
                                             echo $vrai['formule'];
                                           ?>
                                           </center><br/>
                                       </td>
                                   </tr>
                                   <tr>
                                     <td><input name="choix" type="checkbox">Pas de commande</td>
                                     <td></td>
                                     <td><input type="submit" value="valider" name="pasok"><br/></td>
                                   </tr>
                                   <tr>
                                     <td><br/><br/>Nombre de Formule TC <input name="nbform" type="text" value="" size="4" onChange="document.monForm.resultat.value = this.value * document.monForm.prixUnitaire.value"></td>
                                     <td><br/><br/><input type="hidden" name="prixUnitaire" value="40">x 40€ =</td>
                                     <td><br/><br/><input name="resultat" type="text"size="4">€</td>
                                     </td>
                                   <tr>
                                     <td colspan="3">
                                         <input type="hidden" name="ass"  value="<?php echo $_GET['ass']; ?>">
                                         <input type="hidden" name="acad" value="<?php echo $_GET['acad']; ?>">
                                     </td>
                                     <td colspan="3"><br/><center><input type="submit" value="Valider" name="ok"></center><br/></td>
                                   </tr>
                                   </form>
                                   </table>
                                   </form>
                                   </center>
                                  <?php
                                  }
                                  if((isset($_POST['ok']))&&($_POST['ok']=="Valider"))
                                  {
                                     include'bdd.php';
                                     $ass=$_POST['ass'];
                                     $acad=$_POST['acad'];
                                     $nbform=$_POST['nbform'];
                                     $total=$_POST['resultat'];

                                     $requete="INSERT INTO repas VALUES('','$ass','$acad',$nbform,$total)";
                                     @mysql_query($requete) or die(mysql_error());

                                     //header("Location:inscription_ok.php?ass=".$ass."&acad=".$acad."");
                                     echo '<script>document.location="inscription_ok.php?ass='.$ass.'&acad='.$acad.'</script>';
                                  }
                                  if((isset($_POST['pasok']))&&($_POST['choix']!=null))
                                  {
                                     echo '<script>document.location="inscription_ok.php?ass=$ass&acad=$acad</script>';
                                  }
Aidez moi svp :lol:
Comme dit le proverbe chinois:"Si tu parles a tes chaussons.....C'est que tu es le Roi des C..." :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 avr. 2006, 10:05

Je ne cherche pas plus loin pour l'instant, mais peut être est-ce ceci qui pose problème :
echo '<script>document.location="inscription_ok.php?ass=$ass&acad=$acad</script>';
en php les variables entre apostrophes ne sont pas remplacées par leur valeur (il faut pour cela utiliser des guillemets ou concatener les chaines) de puis ton javascript n'est pas correctement terminé, il manque les guillemets :

echo '<script>document.location="inscription_ok.php?ass='.$ass.'&acad='.$acad.'"</script>';

Eléphant du PHP | 86 Messages

20 avr. 2006, 10:09

merci je venai de trouver au moment ou tu a ecrit tom message. Merci pour ta réponse :D
Comme dit le proverbe chinois:"Si tu parles a tes chaussons.....C'est que tu es le Roi des C..." :D

ViPHP
ViPHP | 2144 Messages

20 avr. 2006, 10:12

Tu as visiblement remplacer un header php (qui est commenté dans ton code) par une redirection Javascript., probablement parce que tu obtenais un message d'erreur du genre "Header already sent by... Cette erreur est due au fait qu'il ne peut y avoir aucun code html avant l'utilisation du header de redirection.
Je te conseillerais de placer ton code php de redirection en début de script (avant le moindre code html) et d'utiliser un header comme tu l'avais initialement prévu.
JavaScript pouvant être désactivé par l'utilisateur, ce qui n'est pas sans poser quelques problèmes.

ps: Une petite lecture des règles du forum serait utile : choix d'un titre explicite pour une demande d'aide.