Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
934 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  redirection après envoi de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

redirection après envoi de données

n°1356909
oli1987
Posté le 30-04-2006 à 22:30:06  profilanswer
 

Bonsoir,
Mon problème se situe à la redirection d'une page vers une autre.
Dans un formulaire, l'internaute saisit deux champs oùles données sont envoyées vers une table. Jusque là, tout va bien. Mais lors de ma redirection, la page redirigée est la meme que celle oùétait présent le formulaire alors qu'il devrait déboucher sur une autre pour informer l'utilisateur que tout s'ets bien passé.
 
Le code suivant est celui de ma page index.php reprenant d'autres pages via les différentes includes:
 

Code :
  1. <table align="center" border="1" cellpadding="0" cellspacing="0" bordercolor="#ffffff" width="920">
  2. <tr>
  3. <td>
  4.   <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="920" background="../Images/backgroundtable.gif">
  5.     <tr>
  6.       <td height="96" colspan="3" width="920">&nbsp;</td>
  7.     </tr>
  8.     <tr>
  9.       <td valign="middle" height="94" colspan="3" width="918"><?php include("../menu.php" ) ; ?></td>
  10.     </tr>
  11.     <tr>
  12.       <td valign="top" width="182" height="460" rowspan="2"><?php include("../connect.php" ) ; ?></td>
  13.       <td valign="top" width="556" height="460" rowspan="2"><?php include $page; ?></td>
  14.       <td valign="top" width="178" height="460" rowspan="2"><?php include("../rightcolumn.php" ) ; ?></td>
  15.     </tr>
  16.   </table>


 
<?php include $page; ?>: correspond à la page où se trouve mon formulaire.
 
Voici le code de la page en question

Code :
  1. <?php
  2. mysql_connect("localhost", "******", "******" ) or die("Impossible de se connecter :  " . mysql_error());
  3. mysql_select_db("******" );
  4. ?>
  5. <?php
  6. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  7. {
  8.   $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  9.   switch ($theType) {
  10.     case "text":
  11.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  12.       break;
  13.     case "long":
  14.     case "int":
  15.       $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  16.       break;
  17.     case "double":
  18.       $theValue = ($theValue != "" ) ? "'" . doubleval($theValue) . "'" : "NULL";
  19.       break;
  20.     case "date":
  21.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  22.       break;
  23.     case "defined":
  24.       $theValue = ($theValue != "" ) ? $theDefinedValue : $theNotDefinedValue;
  25.       break;
  26.   }
  27.   return $theValue;
  28. }
  29. $editFormAction = $_SERVER['PHP_SELF'];
  30. if (isset($_SERVER['QUERY_STRING'])) {
  31.   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  32. }
  33. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formnews" )) {
  34.   $insertSQL = sprintf("INSERT INTO newsletter (date, pseudo, email) VALUES (now(), %s, %s)",
  35.                        GetSQLValueString($_POST['requiredNom'], "text" ),
  36.                        GetSQLValueString($_POST['requiredEmail'], "text" ),
  37.                        GetSQLValueString($_POST['date'], "text" ));
  38.   mysql_select_db($database_newsletter, $newsletter);
  39.   $Result1 = mysql_query($insertSQL) or die(mysql_error());
  40.   $insertGoTo = "index.php?rub=2";
  41. if (isset($_SERVER['QUERY_STRING'])) {
  42.     $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  43.     $insertGoTo .= $_SERVER['QUERY_STRING'];
  44.   }
  45.   header(sprintf("Location: %s", $insertGoTo));
  46. }
  47. ?>
  48. <?php
  49. mysql_select_db($database_newsletter, $newsletter);
  50. $query_newsletter = "SELECT * FROM newsletter";
  51. $newsletter = mysql_query($query_newsletter) or die(mysql_error());
  52. $row_newsletter = mysql_fetch_assoc($newsletter);
  53. $totalRows_newsletter = mysql_num_rows($newsletter);
  54. ?>
  55. <table align='center' border='1' bordercolor='#ffffff' width='450'>
  56. <tr>
  57. <td>
  58. <FORM name="formnews" method="POST" action="<?php echo $editFormAction; ?>" onSubmit="return checkrequired(this)">
  59. <table align='center' bgcolor='#000000' border='0' width='450' height='300'>
  60.           <tr>
  61.             <td align="left" width="236" colspan="3" height="43"><font face="Arial" color="#ffffff"><b>
  62.             <span style="font-size: 8pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  63.             Votre nom</span></b></font></td>
  64.             <td width="214" colspan="3" height="43"><font size="2" face="Verdana" color="#C5C5C5"><u><b>
  65.         <input type="hidden" name="date" value="date()"><input type="text" name="requiredNom" size="23" style="font-size: 10 pt"></b></u></font></td>
  66.           </tr>
  67.    <tr>
  68.             <td align="left" width="236" colspan="3" height="43"><font face="Arial" color="#ffffff"><b>
  69.             <span style="font-size: 8pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  70.             Votre email</span></b></font></td>
  71.             <td width="214" colspan="3" height="43"><font size="2" face="Verdana" color="#C5C5C5"><u><b>
  72.         <input type="text" name="requiredEmail" size="23" style="font-size: 10 pt"></b></u></font></td>
  73. </b></u></font></td>
  74.           </tr>
  75.   <tr>
  76.       <td height="50" colspan="6" width="450">
  77.       <p align="center"><input type="submit" value="Envoyer le résultat"></td>
  78.           </tr>
  79. </table>
  80. <input type="hidden" name="MM_insert" value="formnews">
  81. </FORM>
  82. </td>
  83. </tr>
  84. </table>
  85. <?php
  86. mysql_free_result($newsletter);
  87. ?>


 
Et donc, malgré tout cela, la redirection ne s'opère pas vers index.php?rub=2 comme indiqué, mais vers la page initiale.
 
 
Si quelqu'un pouvait m'aider...
 
Merci d'avance
 
 
PS: Lorsque j'exécute le formulaire avec l'include, dans ma page index.php donc, ca foire. Mais si je prends la page à part (sans l'include) ca marche ....


Message édité par oli1987 le 30-04-2006 à 22:31:16
mood
Publicité
Posté le 30-04-2006 à 22:30:06  profilanswer
 

n°1356924
oli1987
Posté le 30-04-2006 à 23:19:58  profilanswer
 

en fait, mon formulaire utilise l'action $editFormAction  
 
Lorsque je remplace cette variable par une url simple, tout va bien (pour la redirection, mais les données ne sont pas insérées dans ma table)
 
Le bug se situe donc au niveau de ctette variable:
 

Code :
  1. $editFormAction = $_SERVER['PHP_SELF'];
  2. if (isset($_SERVER['QUERY_STRING'])) {
  3.   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  4. }
  5. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formnews" )) {
  6.   $insertSQL = sprintf("INSERT INTO newsletter (date, pseudo, email) VALUES (now(), %s, %s)",
  7.                        GetSQLValueString($_POST['requiredNom'], "text" ),
  8.                        GetSQLValueString($_POST['requiredEmail'], "text" ),
  9.                        GetSQLValueString($_POST['date'], "text" ));
  10.   mysql_select_db($database_newsletter, $newsletter);
  11.   $Result1 = mysql_query($insertSQL) or die(mysql_error());
  12.   $insertGoTo = "http://bcml.no-ip.org/Newsletter/index.php?rub=2";
  13. if (isset($_SERVER['QUERY_STRING'])) {
  14.     $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  15.     $insertGoTo .= $_SERVER['QUERY_STRING'];
  16.   }
  17.   header(sprintf("Location: %s", $insertGoTo));
  18. }


 
Qu'est ce qui est donc incorrect ?


Message édité par oli1987 le 30-04-2006 à 23:24:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  redirection après envoi de données

 

Sujets relatifs
Cacher des donnéesRécupération des données de formulaires via PHP
optimisatiser la structure d'une base de données...pb de base de données à free
[VBA-E] afficher des données dans des cellulesconception Base de donnees
Plusieurs données dans un cookie, possible?problème de récupération de données
commande sleep et redirection de carractère vers un fichierLiens entre Base de données
Plus de sujets relatifs à : redirection après envoi de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR