submit qui fasse une requête et une redirection auto

submit qui fasse une requête et une redirection auto - PHP - Programmation

Marsh Posté le 21-02-2005 à 19:44:47    

Bonsoir  :hello:  
 
J'en encore un petit problème et j'ai du mal à comprendre  :cry:  
 
1/ J'ai un bouton SUBMIT qui execute une requête update SQL, aucune information n'est donc retournée.
 
2/ Je voudrais que le SUBMIT effectue la requête puis fasse une redirection automatique vers une nouvelle page.
 
3/ J'ai testé ce système sur une page de test :
 

Code :
  1. <?php
  2. if(isset($_POST['test']))
  3. {
  4. $sql = ("UPDATE test SET nombre='250' WHERE id='1'" );
  5. $result=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  6. header("Location: http://127.0.0.1/test2.php" );
  7. exit();
  8. }
  9. ?>


 
Aucun problème, cela fonctionne : la requête est effectuée et je suis redirigé sur ma nouvelle page.
 
4/ Par contre, cela ne veut pas fonctionner sur ma vraie page, j'ai le fameux "Warning: Cannot modify header information - headers already sent by"  
 
D'après le manuel PHP :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé.
 
Est-ce les autres scripts avant ce script concerné sont responsables de l'erreur ?
 
 Si je mets ce script en haut de mon code, j'ai bien la redirection mais la requête ne se fait pas.
 
Quel est la solution ?  
 
Merci ++
 
 
 

Reply

Marsh Posté le 21-02-2005 à 19:44:47   

Reply

Marsh Posté le 21-02-2005 à 19:47:46    

Virer tous les espaces avant le <? .
Ne mettre aucun ?> et <? avant le header.
Ne pas faire de echo de print ou de print_r avant le header.
 
EDIT : Et si tu postais le script qui pose probléme plustôt que celui qui marche, ca serait plus simple de te dire pourquoi ca merde.


Message édité par omega2 le 21-02-2005 à 19:49:16
Reply

Marsh Posté le 21-02-2005 à 19:51:17    

active le buffering


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 21-02-2005 à 20:12:55    

omega2 a écrit :

Virer tous les espaces avant le <? .
Ne mettre aucun ?> et <? avant le header.
Ne pas faire de echo de print ou de print_r avant le header.
 
EDIT : Et si tu postais le script qui pose probléme plustôt que celui qui marche, ca serait plus simple de te dire pourquoi ca merde.


 
Salut,
 
Justement, le bout de script que je montre est identique à mon autre script.  :pt1cable:  
 
Quand tu dis de ne pas mettre de <?, d'echo avant le header, tu veux dire que je ne peux pas faire :
 

Code :
  1. CODE HTML
  2. <?php
  3. if(patati)
  4. {
  5. echo machin
  6. }
  7. ?>
  8. CODE HTML
  9. <?php
  10. if(patata)
  11. {
  12. header(truc)
  13. }
  14. ?>
  15. CODE HTML


 
+
 

Reply

Marsh Posté le 21-02-2005 à 20:22:36    

faut rien envoyer au browser avant le header()
donc tout code html est a proscrire...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 21-02-2005 à 20:22:51    

pommette a écrit :

Salut,
 
Justement, le bout de script que je montre est identique à mon autre script.  :pt1cable:  
 
Quand tu dis de ne pas mettre de <?, d'echo avant le header, tu veux dire que je ne peux pas faire :
 

Code :
  1. CODE HTML
  2. <?php
  3. if(patati)
  4. {
  5. echo machin
  6. }
  7. ?>
  8. CODE HTML
  9. <?php
  10. if(patata)
  11. {
  12. header(truc)
  13. }
  14. ?>
  15. CODE HTML


 
+


 
 
Non.
 
Tu ne dois STRICTEMENT rien envoyer avant de d'utiliser la fonction header.

Reply

Marsh Posté le 21-02-2005 à 20:27:41    

pommette a écrit :

Code :
  1. CODE HTML
  2. <?php
  3. if(patati)
  4. {
  5. echo machin
  6. }
  7. ?>
  8. CODE HTML
  9. <?php
  10. if(patata)
  11. {
  12. header(truc)
  13. }
  14. ?>
  15. CODE HTML


 
+

Et oui, c'est exactement ça qu'il ne faut pas faire. ;) Même un simple espace avant le premier <? te met en l'air ton header.

Reply

Marsh Posté le 21-02-2005 à 22:01:51    

omega2 a écrit :

Et oui, c'est exactement ça qu'il ne faut pas faire. ;) Même un simple espace avant le premier <? te met en l'air ton header.


 
 
:cry:  
 
Il me manquait plus que la validation de la requête et la redirection pour que mon programme soit terminé et voilà la vilaine fonction header  :kaola:  
 
 
Merci pour vos réponses à tous (ça m'évite de tourner en rond plus longtemps), je m'en vais de ce pas trouver une solution ou une alternative  :)
 
++
 
 

Reply

Sujets relatifs:

Leave a Replay

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