Variable POST n'existe pas

Variable POST n'existe pas - PHP - Programmation

Marsh Posté le 03-07-2007 à 11:50:45    

Bonjour,
 
J'ai un problème avec un formulaire qui fonctionne sur Firefox et pas sur IE  :pt1cable:  
En fait les variables POST ne sont pas transmises, je met le code c'est surement plus parlant :)
 

Code :
  1. <form method="POST" action="../includes/update_news.php" name="news">
  2.                                     <input type="hidden" name="id_outils" value="<? echo $_GET['id_outils']; ?>" />
  3.                                             <div>
  4.                                                 <input type="hidden" name="act" value="ajout_news" />
  5.                                             </div>
  6.                                             <p><label for="name">Titre de la news:</label>
  7.                                             <input type="text" name="titre_news" id="name" size="50" /></p>
  8.                                             <p><label for="name">Date:</label>
  9.                                             <input name="date_news" value="<? echo date("d/m/Y" ); ?>" type="text" size="10" maxlength="10" id="date"></p>
  10.                                                         <script type="text/javascript">
  11.                                                             Calendar.setup({
  12.                                                                 ifFormat       :    "%d/%m/%Y",
  13.                                                                 showsTime      :    false,
  14.                                                                 inputField     :    "date",     // id of the input field
  15.                                                                 step           :    1
  16.                                                             });
  17.                                                         </script>
  18.                                             <p><label for="name">Contenu de la news:</label>
  19.                                             <textarea name="contenu" rows="20" cols="100"></textarea></p>                                                       
  20.                                             <p><input type="submit" value="ajouter"></p>
  21.                                     </form>


 

Code :
  1. switch($_POST['act'])
  2. {
  3. case "ajout_news":
  4.      //DECLARATIONS VARIABLES
  5.      $titre_news = $_POST['titre_news'];
  6.      $date_news = date_fr_to_us($_POST['date_news']);
  7.      $contenu = replace($_POST['contenu']);
  8.      mysql_select_db($database, $connect); //CONNEXION
  9.      $sql = "insert into news (titre_news, date_news, contenu) values ('".$titre_news."', '".$date_news."', '".$contenu."')";
  10.      mysql_query ($sql, $connect);
  11.      mysql_close();
  12. header("Location:../pages/communication_creation_news.php?message=creation_ok&id_outils=".$_POST['id_outils']."" );
  13.      break;
  14. }


 
Environnement local-easyphp, j'ai cherche sur le net pour voir si d'autres personnes avaient le meme pbs, je n'ai rien trouvé...
 
Merci pour votre future aide  :jap:

Reply

Marsh Posté le 03-07-2007 à 11:50:45   

Reply

Marsh Posté le 03-07-2007 à 12:07:53    

question bête : ça sert à quoi de mettre dans un div un input hidden???
 
Sinon, quand tu fais un print_r($_POST) dans update_news.php une fois que t'as cliqué sur "ajouter", il affiche quoi?

Reply

Marsh Posté le 03-07-2007 à 12:14:35    

AMA, ça sent le paté dans le html... FF s'en sort et IE perd les pédales!  
Y'a moyen de voir TOUT le code html de ta page?
 
Et ce que t'as dis RUFO est une très bonne idée, mais pense à bien le mettre hors de ton switch ... des fois que!

Reply

Marsh Posté le 03-07-2007 à 12:17:11    

j'aimerais bien voir aussi le code entier de update_news.php...

Reply

Marsh Posté le 03-07-2007 à 12:32:11    

- Avec un print_r($_POST) j'ai Array ( ) qui s'affiche.
- Tiens c'est vrai j'avais pas vu le input hidden entre les div, vais le virer merci  :lol:  
 

Code :
  1. <?
  2. session_start() ;
  3. require_once('../plugins/functions.php');
  4. require_once('../plugins/securite.php');
  5. require('parties.php');
  6. if ((securite($_GET['id_outils'],$_SESSION['login'])) == "acces_nok" )
  7. {
  8. echo "<html><head><META http-equiv=\"refresh\" content=\"1; URL=../index.php?message=droits\"></head><body></body></html>";
  9. }
  10. ?>
  11. <html>
  12. <head>
  13.     <title>toto| Intranet</title>
  14.     <link rel="shortcut icon" href="/favicon.ico" />
  15.     <link rel="stylesheet" type="text/css" media="screen" href="../css/principal.css" />
  16.  <style type="text/css">@import url(./calendar/skins/aqua/theme.css);</style>
  17.  <script type="text/javascript" src="./calendar/calendar.js"></script>
  18.  <script type="text/javascript" src="./calendar/lang/calendar-fr.js"></script>
  19.  <script type="text/javascript" src="./calendar/calendar-setup.js"></script>
  20. </head>
  21. <? if (isset($_GET['type']) && ($_GET['type'] == "details_outil" )){echo "<body id=\"showroom\">";} else { echo "<body id=\"index\">";} ?>
  22.   <div id="wrapper">
  23.     <? entete(); //AFFICHE LES LIENS EN DEBUT DE PAGE ?>
  24.     <div id="sidenotes">
  25.         <div id="writecomment">
  26.         <? if ((isset($_GET['message'])) && ($_GET['message'] =="creation_ok" )){ echo "<h1>News ajoutée</h1></br>";} ?>
  27.         <h3>Création d'une nouvelle<span> News</span></h3>
  28.         <p>Tout les champs sont obligatoires</p>
  29.         <form method="POST" action="../includes/update_news.php" name="news">
  30.         <input type="hidden" name="id_outils" value="<? echo $_GET['id_outils']; ?>" />
  31.           <div>
  32.            <input type="hidden" name="act" value="ajout_news" />
  33.           </div>
  34.           <p><label for="name">Titre de la news:</label>
  35.           <input type="text" name="titre_news" id="name" size="50" /></p>
  36.           <p><label for="name">Date:</label>
  37.           <input name="date_news" value="<? echo date("d/m/Y" ); ?>" type="text" size="10" maxlength="10" id="date"></p>
  38.              <script type="text/javascript">
  39.                  Calendar.setup({
  40.                      ifFormat       :    "%d/%m/%Y",
  41.                      showsTime      :    false,
  42.                      inputField     :    "date",     // id of the input field
  43.                      step           :    1
  44.                  });
  45.              </script>
  46.           <p><label for="name">Contenu de la news:</label>
  47.           <textarea name="contenu" rows="20" cols="100"></textarea></p>
  48.           <p><input type="submit" value="ajouter"></p>
  49.         </form>
  50.       </div>
  51.     </div>
  52.     <div id="sidenotes">
  53.       <div class="writecomment">
  54.         <h3>Création d'une <span>news</span></h3>
  55.       </div>
  56.     </div>
  57.     <? //vie_pratique(); //AFFICHER LES LIENS VIE PRATIQUE?>
  58.        <div id="copyright">
  59.           <h4><strong>&copy; 2007</strong> TOTO</h4>
  60.    </div>
  61.   </div>
  62. </body>
  63. </html>


 
update_news.php
 

Code :
  1. <?PHP
  2. session_start() ;
  3. require_once('../plugins/securite.php');
  4. require_once('../plugins/connexion.php');
  5. print_r($_POST);
  6. // ###############################FUNCTIONS
  7. function replace($string){
  8.  $string = str_replace("~","",$string);
  9.  $string = str_replace("#","",$string);
  10.  $string = str_replace("{","",$string);
  11.  $string = str_replace("`","",$string);
  12.  $string = str_replace("^","",$string);
  13.  $string = str_replace("°","",$string);
  14.  $string = str_replace("}","",$string);
  15.  $string = str_replace("¨","",$string);
  16.  $string = str_replace("£","",$string);
  17.  $string = str_replace("¤","",$string);
  18.  $string = str_replace("µ","",$string);
  19.  $string = str_replace("§","",$string);
  20.  $string = str_replace("'","\'",$string);
  21.  return $string;
  22.  }
  23. function date_fr_to_us($datetime) {
  24.  $a = substr($datetime, 6, 4); // conversion
  25.  $m = substr($datetime, 3, 2); // de la date
  26.  $j = substr($datetime, 0, 2); // au format
  27.  $datetime = $a.'-'.$m.'-'.$j; // US
  28.  return $datetime;
  29. }
  30. // ############################### SECURITE
  31. //if ((securite($_POST['id_outils'],$_SESSION['login'])) == "acces_nok" )  
  32. //{
  33. //echo "<html><head><META http-equiv=\"refresh\" content=\"1; URL=../index.php?message=droits\"></head><body></body></html>";
  34. //}
  35. // ############################### PROGRAMME  
  36. switch($_POST['act'])
  37. {
  38. case "ajout_news":
  39.      //DECLARATIONS VARIABLES
  40.      $titre_news = $_POST['titre_news'];
  41.      $date_news = date_fr_to_us($_POST['date_news']);
  42.      $contenu = replace($_POST['contenu']);
  43.      mysql_select_db($database, $connect); //CONNEXION
  44.      $sql = "insert into news (titre_news, date_news, contenu) values ('".$titre_news."', '".$date_news."', '".$contenu."')"; // INSERT
  45.      mysql_query ($sql, $connect);
  46.      mysql_close();
  47.      header("Location:../pages/communication_creation_news.php?message=creation_ok&id_outils=".$_POST['id_outils']."" );
  48.      break;
  49. }
  50. ?>


 
merci pour les reponses :)

Message cité 1 fois
Message édité par funux le 03-07-2007 à 12:47:20
Reply

Marsh Posté le 03-07-2007 à 13:48:28    

trop cool j'interprete le php à la volée [:dawa]
Y'a pas moyen d'avoir le html généré plutot ...
T'as pas de balise body s'normal?

Reply

Marsh Posté le 03-07-2007 à 13:53:57    

Ah pardon  :whistle:  
 
Voila la premiere page generee :D
 

Code :
  1. <html>
  2. <head>
  3.     <title>Toto</title>
  4.     <link rel="shortcut icon" href="/favicon.ico" />
  5.     <link rel="stylesheet" type="text/css" media="screen" href="../css/principal.css" />
  6.  <style type="text/css">@import url(./calendar/skins/aqua/theme.css);</style>
  7.  <script type="text/javascript" src="./calendar/calendar.js"></script>
  8.  <script type="text/javascript" src="./calendar/lang/calendar-fr.js"></script>
  9.  <script type="text/javascript" src="./calendar/calendar-setup.js"></script>
  10. </head>
  11. <body id="index">   <div id="wrapper">
  12.      <div id="header"><div id="navigation"><ul><li><a href="../index.php">Accueil</a></li><li><a href="">Tickets</a></li><li><a href="administration.php">Administration Intranet</a></li><li><a href="">Annuaire</a></li><li id="dernier"><a href="user.php">Ma page</a></li></ul></div><h1><a href="../index.php" title="Retour à l'accueil">Sterience</a></h1></div>     <div id="sidenotes">
  13.         <div id="writecomment">
  14.                  <h3>Création d'une nouvelle<span> News</span></h3>
  15.         <p>Tout les champs sont obligatoires</p>
  16.         <form method="POST" action="../includes/update_news.php" name="news">
  17.         <input type="hidden" name="id_outils" value="22" />
  18.         <input type="hidden" name="act" value="ajout_news" />
  19.           <p><label for="name">Titre de la news:</label>
  20.           <input type="text" name="titre_news" id="name" size="50" /></p>
  21.           <p><label for="name">Date:</label>
  22.           <input name="date_news" value="03/07/2007" type="text" size="10" maxlength="10" id="date"></p>
  23.              <script type="text/javascript">
  24.                  Calendar.setup({
  25.                      ifFormat       :    "%d/%m/%Y",
  26.                      showsTime      :    false,
  27.                      inputField     :    "date",     // id of the input field
  28.                      step           :    1
  29.                  });
  30.              </script>
  31.           <p><label for="name">Contenu de la news:</label>
  32.           <textarea name="contenu" rows="20" cols="100"></textarea></p>
  33.           <p><input type="submit" value="ajouter"></p>
  34.         </form>
  35.       </div>
  36.     </div>
  37.     <div id="sidenotes">
  38.       <div class="writecomment">
  39.         <h3>Création d'une <span>news</span></h3>
  40.       </div>
  41.     </div>
  42.             <div id="copyright">
  43.           <h4><strong>&copy; 2007</strong>Toto</h4>
  44.     </div>
  45.   </div>
  46. </body>
  47. </html>

Reply

Marsh Posté le 03-07-2007 à 15:10:21    

ton bouton de submit n'a pas de propriété name
en meme temps si en cliquant dessus tu te retrouves bien sur update_news.php c'est pas ça  :(

Reply

Marsh Posté le 03-07-2007 à 15:11:49    

Code :
  1. <?PHPsession_start() ;require_once('../plugins/securite.php');require_once('../plugins/connexion.php'); print_r($_POST);


tu es sur que rien ne peut modifier les entetes dans tes appels de fonctions ?
 
essaie ça :

Code :
  1. <?PHP
  2. print_r($_POST);
  3. exit('fin debug');
  4. session_start() ;require_once('../plugins/securite.php');require_once('../plugins/connexion.php');


la tu seras sûr de ce que tu reçois ou non en post

Reply

Marsh Posté le 03-07-2007 à 15:20:06    

ca m'affiche : Array ( ) fin debug  
 
Meme chose en enlevant connexion et securite


Message édité par funux le 03-07-2007 à 15:20:45
Reply

Marsh Posté le 03-07-2007 à 15:20:06   

Reply

Marsh Posté le 03-07-2007 à 15:23:12    

funux a écrit :

- Avec un print_r($_POST) j'ai Array ( ) qui s'affiche.


 
essaye var_dump($_SERVER['REQUEST_METHOD']);
 

funux a écrit :

- Tiens c'est vrai j'avais pas vu le input hidden entre les div, vais le virer merci  :lol:


 
Dommage parceque ton code ne sera plus valide. Les input n'ont pas le droit de se balader tout seul, hidden ou pas.


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 03-07-2007 à 15:32:21    

cgo2 a écrit :

essaye var_dump($_SERVER['REQUEST_METHOD']);


 
Ca m'affiche :  
string(4) "POST"  
Notice: Undefined index: act in c:\program files\easyphp1-8\www\test\includes\update_news.php on line 37
 

cgo2 a écrit :


Dommage parceque ton code ne sera plus valide. Les input n'ont pas le droit de se balader tout seul, hidden ou pas.


 
euuh j'ai pas compris, mon form n'est plus bon sous cette forme ?

Code :
  1. <form method="POST" action="../includes/update_news.php" name="news">
  2.         <input type="hidden" name="id_outils" value="<? echo $_GET['id_outils']; ?>" />
  3.         <input type="hidden" name="act" value="ajout_news" />
  4.           <p><label for="name">Titre de la news:</label>
  5.           <input type="text" name="titre_news" id="name" size="50" /></p>
  6.           <p><label for="name">Date:</label>
  7.           <input name="date_news" value="<? echo date("d/m/Y" ); ?>" type="text" size="10" maxlength="10" id="date"></p>
  8.              <script type="text/javascript">
  9.                  Calendar.setup({
  10.                      ifFormat       :    "%d/%m/%Y",
  11.                      showsTime      :    false,
  12.                      inputField     :    "date",     // id of the input field
  13.                      step           :    1
  14.                  });
  15.              </script>
  16.           <p><label for="name">Contenu de la news:</label>
  17.           <textarea name="contenu" rows="20" cols="100"></textarea></p>
  18.           <p><input type="submit" value="ajouter"></p>
  19.         </form>

Reply

Marsh Posté le 03-07-2007 à 15:45:24    

funux a écrit :

Ca m'affiche :  
string(4) "POST"  
Notice: Undefined index: act in c:\program files\easyphp1-8\www\test\includes\update_news.php on line 37


 
C'est IE 6 ?
 

funux a écrit :

euuh j'ai pas compris, mon form n'est plus bon sous cette forme ?


 
Non, en tous cas pas si tu veux respecter les standards (ce qui à l'air d'être le cas vu le reste du code). Une balise input doit être contenue dans un div ou un p.


---------------
When it's from Finland it's good.  - Mon blog
Reply

Marsh Posté le 03-07-2007 à 15:54:21    

IE7 mais je viens de test sur IE6 c'est pareil  
 
Merci pour l'info je ne savais pas

Reply

Marsh Posté le 03-07-2007 à 16:19:56    

Est-ce que ton code fonctionne sous IE s'il est hebergé sur une autre machine (par exemple, si tu l'upload chez ton hebergeur) ?


---------------
When it's from Finland it's good.  - Mon blog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed