redirection après envoi de données

redirection après envoi de données - PHP - Programmation

Marsh Posté le 20-06-2006 à 23:31:52    

Bonsoir,
 
Je n'ai plus qu'une chose à mettre au point, mais je ne m'en sors pas !
 
Il s'agit d'une redirection après l'inscription à une Newsletter
Mon formulaire d'inscription comprend :

Code :
  1. <FORM name="formnews" method="POST" <b>action="<?php echo $editFormAction ; ?>"</b>>


Cette variable est définie plus haut par le code suivant :

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));


 
Et lorsque l'internaute clique sur "Envoyer", il n'est pas redirigé vers index.php?rub=2, mais vers la meme page que sur laquelle se trouve le formulaire !!!
 
Je ne vois pas d'où vient le problème, d'autant plus que les données saisies sont bien envoyées dans ma table !!!
 
Merci à ceux qui pourront m'aider !

Reply

Marsh Posté le 20-06-2006 à 23:31:52   

Reply

Marsh Posté le 21-06-2006 à 07:34:12    

Code :
  1. $editFormAction = $_SERVER['PHP_SELF'];


oui quelle enigme je me demande d ou vient le probleme

 

sinon c est quoi ca MM_insert ?
dreamweaver qui fait du php ? :D

Reply

Marsh Posté le 21-06-2006 à 10:05:05    

oui, exactement ! Dreamweaver !
Quelle partie du code dois je modifier ou spprimer ??

Reply

Marsh Posté le 21-06-2006 à 10:09:46    

si ton formulaire doit toujours envoyer sur la meme page bah

 
Code :
  1. <FORM name="formnews" method="POST" <b>action="<?php echo $editFormAction ; ?>"</b>>
 

devient

 
Code :
  1. <form name="formnews" method="POST" action="http://bcml.no-ip.org/Newsletter/index.php?rub=2">


enfin j ai pas l impression de t aider si tu comprends rien a ton code  :sweat:
deja que je laisserais jamais DW faire mon html mais la php ca me fait carrement peur

Reply

Marsh Posté le 21-06-2006 à 10:11:35    

j'ai déjà essayé comme cela ! la direction est bonne, mais il n'y a pas d'envoie d'infos !

Reply

Marsh Posté le 21-06-2006 à 10:16:50    

bah désolé mais debugger du code généré automatiquement c est vraiment une plaie :sweat:
visiblement ton code est fait pour que les données soient envoyées sur la page courante
donc si tu veux que ton bouzin marche il faudra surement remettre une partie de ce code sur la page index
 
mais vraiment tu pourrais coder ca toi meme c est vraiment pas compliqué  
 
faire confiance a DW :cry:

Reply

Marsh Posté le 21-06-2006 à 10:31:36    

+1 ! Et en plus, si tes infos sont un peu sensibles, c'est plus que pas bien du tout. Mais bon, juste pour newsletter, c'est pas trop grave...
 


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 21-06-2006 à 10:41:44    

Donc, sur la page de mon formuylaire, l'action renvoie à la page suivante.
 
Et là, mon code n'a pas l'air correct :
 

Code :
  1. <?php
  2. mysql_connect("localhost", "bcml", "bcml" ) or die("Impossible de se connecter :  " . mysql_error());
  3. mysql_select_db("bcml" );
  4. //requete qui ajoute un utilisateur à la table "utilisateurs"  
  5. $result=mysql_query("INSERT INTO newsletter (pseudo, email, date)
  6.               VALUES ("$_POST['Nom']","$_POST['Email']","$_POST['date']" )" );
  7. ?>
  8. <font face="verdana" size="2">Inscription bien enregistrée</font>
  9. <?php
  10. mysql_close();
  11. ?>


 
Help me please

Reply

Marsh Posté le 21-06-2006 à 10:44:39    

exit apres le header ?


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 21-06-2006 à 10:50:59    

Comme ça ? marche pas non plus :s
 

Code :
  1. <?php
  2. mysql_connect("localhost", "bcml", "bcml" ) or die("Impossible de se connecter :  " . mysql_error());
  3. mysql_select_db("bcml" );
  4. //requete qui ajoute un utilisateur à la table "utilisateurs"  
  5. $result = mysql_query("INSERT INTO newsletter (pseudo, email, date)
  6.               VALUES ("$_POST['Nom']","$_POST['Email']","$_POST['date']" )" );
  7.    
  8. ?>
  9. <p><font face="verdana" size="2">Inscription bien enregistrée</font></p>
  10. <?php
  11. header("Location: http://bcml.no-ip.org/index.php" );
  12. exit;
  13. mysql_close();
  14. ?>


Message édité par oli1987 le 21-06-2006 à 10:56:44
Reply

Marsh Posté le 21-06-2006 à 10:50:59   

Reply

Marsh Posté le 21-06-2006 à 11:20:30    

quelqu'un peut me dire pourquoi l'envoi de données foire ???

Reply

Marsh Posté le 21-06-2006 à 12:03:05    

1) ferme ta connexion SQL avant le header ca ne fait pas de mal
2) aucune sortie avant le header (genre les <p>...)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 21-06-2006 à 12:15:48    

tjrs la meme chose
 
essaye pr voir le résultat :
 
http://bcml.no-ip.org/Newsletter/
 
Le code de cette page là est simplement le formulaire :
 

Code :
  1. <?php
  2. mysql_connect("localhost", "***", "***" ) or die("Impossible de se connecter :  " . mysql_error());
  3. mysql_select_db("bcml" );
  4. $result = mysql_query("SELECT * FROM newsletter" );
  5. $numberins = mysql_num_rows($result);
  6. ?>
  7. <p align="center"><span style="font-size: 8pt"><font face="verdana">Nombre d'inscrits : <?php echo $numberins; ?>.</font></span></p>
  8. <table align='center' border='0' bordercolor='#ffffff' width='300'>
  9. <tr>
  10. <td>
  11. <FORM name="formnews" method="POST" action="http://bcml.no-ip.org/Newsletter/index.php?rub=2">
  12. <table align='center' border='0' width='320'>
  13.           <tr>
  14.             <td align="left" width="120" colspan="3" height="25"><font face="Arial" color="#000000"><b>
  15.             <span style="font-size: 8pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  16.             Votre nom</span></b></font></td>
  17.             <td width="200" colspan="3" height="43"><font size="2" face="Verdana" color="#C5C5C5"><u><b>
  18.         <input type="hidden" name="date" value="date()"><input type="text" name="Nom" size="23" style="font-size: 10 pt"></b></u>            </td>
  19.           </tr>
  20.    <tr>
  21.             <td align="left" width="120" colspan="3" height="25"><font face="Arial" color="#000000"><b>
  22.             <span style="font-size: 8pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  23.             Votre email</span></b></font></td>
  24.             <td width="200" colspan="3" height="43"><font size="2" face="Verdana" color="#C5C5C5"><u><b>
  25.         <input type="text" name="Email" size="23" style="font-size: 10 pt"></b></u></font></td>
  26.           </tr>
  27.   <tr>
  28.       <td height="25" colspan="6" width="300">
  29.       <p align="center"><input type="submit" value="Inscription"></td>
  30.          </tr>
  31. </table>
  32. <input type="hidden" name="MM_insert" value="formnews">
  33. </FORM>
  34. </td>
  35. </tr>
  36. </table>
  37. <?php
  38. mysql_close();
  39. ?>

Reply

Marsh Posté le 21-06-2006 à 12:21:45    

dans index.php il y a bien le header + exit ?  
et dans le header avec une url relative ca marche ?
il y a bien aucune sortie avant le header ?
recupere tu bien tes donnees dans index.php ?
va t'il jusqu'a la requete d'insertion ?
 
bref... debug [:petrus75]


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 21-06-2006 à 12:24:26    

mon index.php est composé de plusieurs includes  

Code :
  1. <?php require "rubrique.php"; ?>
  2. <html>
  3. <head>
  4. <title><?php echo "$title"; ?></title>
  5. <META NAME="Author" CONTENT="<?php echo $author; ?>" />
  6. <SCRIPT language=javascript>
  7. function OuvrirPopup(page,nom,option) {
  8.   window.open(page,nom,option);
  9. }
  10. </SCRIPT>
  11. </head>
  12. <body background="../Images/backgroundcarre.jpg">
  13. <table valign="top" align="center" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="920">
  14.     <tr>
  15. <td>
  16.   <table valign="top" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="920" height="620" background="../Images/background1.jpg">
  17.     <tr>
  18.       <td height="35" colspan="4" width="920"><?php include("../connection.php" ); ?></td>
  19.     </tr>
  20.     <tr>
  21.       <td height="33" colspan="4" width="920">&nbsp;</td>
  22.     </tr>
  23.     <tr>
  24.       <td valign="top" height="40" colspan="4" width="920"><?php include("../fastnews.php" ); ?></td>
  25.     </tr>
  26.     <tr>
  27.       <td height="5" colspan="4" width="920"><font size="1">&nbsp;&nbsp; </font></td>
  28.     </tr>
  29.     <tr>
  30.       <td background="http://bcml.no-ip.org/Images/bgroundmenu2gauche.jpg" valign="top" height="365" width="210"><?php include("../menu.php" ); ?></td>
  31.       <td background="http://bcml.no-ip.org/Images/bgroundmenu1center.jpg"rowspan="2" valign="top" height="485" width="518"><?php include $page; ?></td>
  32.       <td background="http://bcml.no-ip.org/Images/bgroundmenu3droit.jpg"rowspan="2" valign="top" height="485" width="192"><?php include("../rightcolumn.php" ); ?></td>
  33.     </tr>
  34.     <tr>
  35.       <td background="http://bcml.no-ip.org/Images/bgroundmenu2gauche.jpg" valign="bottom" colspan="1" width="210"><?php include("../menu2.php" ); ?></td>
  36.     </tr>
  37.   </table>
  38.   <table border="0" cellpadding="0" cellspacing="0" width="920">
  39.     <tr>
  40.       <td background="../Images/backgroundbottom.jpg" height="35" width="100%"><p align="center"><font face="verdana" size="2" color="#ffffff"><b>Contact webmaster</b> : <a href="mailto:webmaster@bcml.be?subject=BCML.BE">webmaster@bcml.be</a></font></p></td>
  41.     </tr>
  42.   </table>
  43. </td>
  44. </tr> 
  45. </table> 
  46. </body>
  47. </html>


 
le header doit se situer dans index.php?rub=2, et là il y est.
ca ne marche pas avec une url relative

Reply

Marsh Posté le 21-06-2006 à 12:45:33    

le header est bien dans rubrique.php ?
Tu as repondu a toutes les questions que je t'ai pose ?


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 21-06-2006 à 12:47:14    

pq le header doit il se trouver dans rubrique.php ???
il y a bien aucune sortie avant le header ?  comment je vérifie ???
recupere tu bien tes donnees dans index.php ? je récupère les données saisies dans index.php?rub=1 dans index.php?rub=2
va t'il jusqu'a la requete d'insertion ? comment je vérifie ???
 

Reply

Marsh Posté le 21-06-2006 à 12:52:19    

oli1987 a écrit :

pq le header doit il se trouver dans rubrique.php ???
il y a bien aucune sortie avant le header ?  comment je vérifie ???
recupere tu bien tes donnees dans index.php ? je récupère les données saisies dans index.php?rub=1 dans index.php?rub=2
va t'il jusqu'a la requete d'insertion ? comment je vérifie ???


1) parce que si il est ailleurs vu la structure de ton bousin, bah il y aura un affichage html avamt
http://uk2.php.net/manual/fr/function.header.php

Citation :


 N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header()  ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.


2) bah faut pas qu'il y est de echo d'html avant etc (cf 1))
3) bah ouais mais tu recois bien les valeurs ? (je pose deux fois la meme question...)
4) un petit echo avant ? verification dans la base si les donnees sont bien dans le INSERT ?   :D utilise ton imagination pour suivre le decourlement de tes scripts.
 


---------------
my flick r - Just Tab it !
Reply

Sujets relatifs:

Leave a Replay

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