Header foireux (warning)

Header foireux (warning) - PHP - Programmation

Marsh Posté le 27-06-2006 à 17:48:02    

SAlut à tous, voila j'ai un tit soucis que je n'arrive pas à résoudre.
J'ai une page index.html toute bete, et dedant j'aimerais faire une redirection s'il détecte un paramètre spécifique en GET...
Je seul soucis bin c'est que ça ne fonctionne pas.
J'ai essayer d'enlever tous les espaces de mon code, de changer, de mettre tout dans une même fonction mais ça à l'air de déconner sec  :pt1cable:  
 
voili le code, si vous pouvez m'aider , je vous en remercierais :  
 

Code :
  1. <?php
  2. // definition de la page  
  3. // mise en place de <<<HTML surtout ne pas mettre d'espace ni rien d'autre avant le HTML; /!\
  4. echo <<<HTML
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  6. <html>
  7. <head>
  8. <title> ° Le Bon Vivent ° </title>
  9. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  10. <!-- Import de la feuille de style css -->
  11. </head>
  12. <body>
  13. HTML;
  14. // page d'index
  15. // -------------------------------------------------------------------------------- //
  16. // ------- Cette page d'index va faire le lien entre toutes les pages ------------- //
  17. // ------- On passe menu en paramètre GET ... Il y à 5 menu.. --------------------- //
  18. // ------- > Accueil > Présentation > Visite > Menu > Contact --------------------- //
  19. // --------------------------------------------------------------------------------- //
  20. // import de la classe Connexion (singleton de connexion à la base)
  21. require "connexion.inc.php";
  22. include("fonctions.inc.php" );
  23. // ---------------------------------- On analyse le menu -----------------------------------------
  24. // étude du parametre menu indiqué
  25. if(isset($_GET['specik'])) { $menu = "specification"; $specification=$_GET['specik'];}
  26. else if(isset($_GET['menu'])) {  $menu = $_GET['menu'];  }
  27. else {  $menu = "accueil";  }
  28. // ici mise en place du design -------------------------------------------------------------------
  29. echo "Design <br>";
  30. echo "Menu Provisoire -> ";
  31. // mise en place de <<<HTML surtout ne pas mettre d'espace ni rien d'autre avant le HTML; /!\
  32. echo <<<HTML
  33. <a href='index.php?menu=accueil'>Accueil </a> ||
  34. <a href='index.php?menu=presentation'>Présentation </a> ||
  35. <a href='index.php?menu=visite'>Visite </a> ||
  36. <a href='index.php?menu=menu'>Menu </a> ||
  37. <a href='index.php?menu=contact'>Contact </a> ||
  38. HTML;
  39. // on va faire appel aux différents includes -----------------------------------------------------
  40. if($menu == "accueil" ) { include("includes/accueil.php" ); }
  41. else if($menu == "presentation" ) { include("includes/presentation.php" ); }
  42. else if($menu == "visite" ) { include("includes/visite.php" ); }
  43. else if($menu == "menu" ) { include("includes/menu.php" ); }
  44. else if($menu == "contact" ) { include("includes/contact.php" ); }
  45. else if($menu == "specification" ) {
  46.  redirect('index.php?menu=menu','specik',$specification);  // fonction de redirection (foireuse)
  47. }
  48. else { include("includes/erreur_index.php" ); }
  49. // Finition du design ----------------------------------------------------------------------------
  50. echo "<br> Design <br>";
  51. echo <<<HTML
  52.  </body>
  53.  </html>
  54. HTML;
  55. ?>


 
et la fonction de redirection :  
 

Code :
  1. <?php
  2. // ------------------------------------------------------------- *
  3. // ------------------- Fichier de fonctions -------------------- *
  4. // ------------------------------------------------------------- *
  5. // --------------------------------------- fonction de redirection -------------------------
  6. function redirect($pagedest,$param,$valparam)
  7. {
  8. if($param != "" )
  9. {
  10.  header("Status: 301 Moved Permanently", false, 301);
  11.  header("Location: ".$pagedest."?".$param."=".$valparam);
  12. }
  13. else
  14. {
  15.  header("Status: 301 Moved Permanently", false, 301);
  16.  header("Location: ".$pagedest);
  17. }
  18. //exit();
  19. }
  20. ?>


 
Et l'erreur fatidique tant attendue  :heink:  
Warning: Cannot modify header information - headers already sent by (output started at disque:\wamp\www\lebonvivent\index.php:12) in disque:\wamp\www\lebonvivent\fonctions.inc.php on line 11
 
Warning: Cannot modify header information - headers already sent by (output started at disque:\wamp\www\lebonvivent\index.php:12) in disque:\wamp\www\lebonvivent\fonctions.inc.php on line 12
 
Vala en espérant que vous saurez me dire d'ou viens le beug .. Merki d'avance. :)  
 [:magnasuprema]


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
Reply

Marsh Posté le 27-06-2006 à 17:48:02   

Reply

Marsh Posté le 27-06-2006 à 17:51:37    

tu envoie déjà des infos avec de mettre ton header
c'est donc normal que sa te mette un warning


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 27-06-2006 à 17:55:43    

plait-il?  :heink:  
J'envoi des infos à quel niveau?


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
Reply

Marsh Posté le 27-06-2006 à 17:57:10    

Code :
  1. #
  2. echo <<<HTML
  3. #
  4.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. #
  6.     <html>
  7. #
  8.     <head>
  9. #
  10.     <title> ° Le Bon Vivent ° </title>
  11. #
  12.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  13. #
  14.     <!-- Import de la feuille de style css -->
  15. #
  16.     </head>
  17. #
  18.     <body>
  19. #
  20. HTML;

ici  [:barthaliastoxik]


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 27-06-2006 à 17:58:51    

micfont999 a écrit :

plait-il?  :heink:  
J'envoi des infos à quel niveau?


Tu envoie des infos au client (cf le GROS echo au debut...)
http://uk.php.net/manual/en/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.


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

Marsh Posté le 27-06-2006 à 18:05:30    

bah oui mais j'en est besoin moi de ces infos ..
Vu que j'ai tout un design à incorporer et tout en plus..
Comment je peux faire??  
Merci en tout cas pour tout..


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
Reply

Marsh Posté le 27-06-2006 à 18:07:24    

avec un header il aura pas le temps de voir le desing...
tu affiches aprés avoir fait ton traitement ... that's all


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 27-06-2006 à 19:37:51    

hey c est marrant cette notation je connais pas
echo <<< HTML
j aime bien

Reply

Marsh Posté le 28-06-2006 à 12:00:36    

mIRROR a écrit :

hey c est marrant cette notation je connais pas
echo <<< HTML
j aime bien


 
Ouaip ça permet de pouvoir claquer du code HTML trankillou sans avoir à faire de echo ni rien de toutes ces bebetes :)
 
Bon j'ai réussi à faire mon truc, merci à vous.
 
Par contre autre petit soucis, j'ai une chitiotte erreur sur une session mais j'arrive pas a voir pourquoi... je fais un tit test pour savoir si la session existe mais rien à faire
vala le code :)  
 

Code :
  1. if(isset($_SESSION['login'])) // regarde si la session level admin par exemple est déclarée
  2. {
  3. echo <<<HTML
  4. <h1 class="administration">Bienvenue dans votre espace administration</h1>
  5. Choisissez votre rubrique :  <br>
  6.  ¤ Ajouter un menu <br>
  7.  ----- Global (Entrée, salades, viandes, poissons) <br>
  8.  ----- Détaillé <br>
  9. HTML;
  10. }
  11. else
  12. {
  13. echo <<<HTML
  14. <h1 class="administration">Espace Administration</h1>
  15. Veuillez saisir vos identifiants : <br>
  16.  <form name='admin' action='include/login.php' method='POST'>
  17.  Votre login : <input type='text' name='login' value='' size='20'><br>
  18.  Votre mot de passe : <input type='password' name='passwd' value='' size='20'><br>
  19.  <input type='submit' value='Envoyer'>
  20.  </form>
  21. HTML;
  22. }


 
Parse error: parse error, unexpected T_SL pour l'erreur :s  
J'ai essayer avec un session_is_registered mais pareil rien à faire ça ne veux pas...
Si quelqu'un à une idée :)  
Merki d'avance  :jap:  
 [:magnasuprema]


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
Reply

Marsh Posté le 28-06-2006 à 12:18:26    

où se trouve le session_start() ?

Reply

Marsh Posté le 28-06-2006 à 12:18:26   

Reply

Marsh Posté le 28-06-2006 à 12:27:00    

Citation :

Ouaip ça permet de pouvoir claquer du code HTML trankillou sans avoir à faire de echo ni rien de toutes ces bebetes :)


 
Il me semble que tu fais quand même un echo, mais par contre sa veux dire quoi claquer ??
Parser du html j'aurai compris, mais claquer....


Message édité par scull le 28-06-2006 à 12:27:34

---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 28-06-2006 à 12:41:51    

le `echo <<<STFU blablabla
STFU;`
permet d'écrire blablabla sans l'utilisation de quote


Message édité par Master p le 28-06-2006 à 12:42:20
Reply

Marsh Posté le 28-06-2006 à 13:50:43    

Master p a écrit :

où se trouve le session_start() ?


 
Au dessus j'ai pas tout mis mais il est présent quand même... Sinon wamp 5 permet bien de gérer les sessions je pense. ??  
 
Sinon claquer c'est mettre, foutre, tout ce qu'on veux lol je causer pas bien la france ^^ désolé
 
 [:magnasuprema]


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
Reply

Marsh Posté le 15-08-2006 à 13:10:02    

Je ne comprends pas comment tu as pu faire ton traitement APRES ton header.
Car j'ai un pb similaire :
page formulaire.php qui pointe vers confirme_formulaire.php, qui elle meme revient sur le formulaire si l'email n'a pas le bon format.
Le probleme est que le format correct du mail est définit via une fonction, du coup ma redirection ne peut pas marcher :/
 
Rhha, casse-tete bourdel

Reply

Marsh Posté le 15-08-2006 à 13:28:06    

Funkpeck a écrit :


Le probleme est que le format correct du mail est définit via une fonction, du coup ma redirection ne peut pas marcher :/


 
je vois pas le rapport
 
Tu peux appeler une fonction avant ton header.
Tu ne peux pas avoir d'affichage/sortie avant le header par contre.


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

Marsh Posté le 15-08-2006 à 13:38:30    

Ah bon ?  
J'avais cru lire que les fonctions n'étaient pas autorisées avant. Ca m'arrange de m'etre trompé,
 
Ceci dit je viens à l'instant de me rendre compte du gros probleme :
en fait toutes les pages de mon site sont appelées depuis index.php à l'aide d'un include différent selon ou l'on clique sur le menu :
du coup mon formulaire indique action="index.php?page=formulaire_confirme".
C'est donc là le problème :
index et tous les includes pages html sont appelées avant...
 
La seule solution que je vois est de faire une seule page, qui contiendra le formulaire, les messages d'erreur, les inscriptions dans la bdd et le mesage de succes.
 
Bon, je m'y attele de suite..
 
thx

Message cité 1 fois
Message édité par Funkpeck le 15-08-2006 à 13:39:04
Reply

Marsh Posté le 15-08-2006 à 13:46:58    

Funkpeck a écrit :

C'est donc là le problème :
index et tous les includes pages html sont appelées avant...


 
tu dois faire les differents tests avant les include de tes pages
si ton test dit "n affiche pas la page" php aura fait l operation quand meme alors que c est inutile

Reply

Sujets relatifs:

Leave a Replay

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