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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] header (problème résolut)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] header (problème résolut)

n°404428
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 15:06:30  profilanswer
 

je voulais faire une redirection automatique
 
j'ai donc apres recherche decider d'utiliser la fonction header
 
mais elle marche pas , c'est peut etre ma version de php qui est trop vielle, je suis sur php 4.2.0
 
mon code :
 

switch ($page)
      {
          case 1:
             echo "afficher les news :";
             include("Aff_News.php" );
             break ;
          case 2:
             echo "Ajouter un news : <br>";
             include("Ajout_News.php" );
             break ;
          case 3:
             echo "Modifier une news";
             break ;
          case 4:
             echo "Supprimer une news";
             break ;
          default:
             header("Location: Accueil.php" );
//ligne d'erreur
             exit();
      }

 
 
 
l'erreur:
 
Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\site\news.php:7) in c:\program files\easyphp\www\site\news.php on line 34


Message édité par nemohp le 23-05-2003 à 10:08:03
mood
Publicité
Posté le 22-05-2003 à 15:06:30  profilanswer
 

n°404435
Eric B
Posté le 22-05-2003 à 15:08:55  profilanswer
 

tu ne dois pas faire d'echo avant le header()!

n°404447
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 15:17:23  profilanswer
 

ouais mais j'ai pas trop le choix
 
et si je remplace ma ligne en header par ca :  
 
include(test.php)
 
apres je créer une page test.php :
 
<?
   header("location : lapagevoulu.php" )
?>

 
tu pesne que ca va marcher ??  

n°404485
kayasax
Posté le 22-05-2003 à 15:36:27  profilanswer
 

non ca marchera pas les headers seront deja passe par ta page principale

n°404498
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 15:41:25  profilanswer
 

put1 raz le bol du php
 
y a quoi comme focntion appart header et les truc en javascript ?

n°404512
kayasax
Posté le 22-05-2003 à 15:44:22  profilanswer
 

en general on utilise des formulaires ...  :o

n°404514
dropsy
et bonne chance surtout...
Posté le 22-05-2003 à 15:45:01  profilanswer
 

le problème ne vient pas des echo dans le switch, mais de la ligne 7 (ou alentour) ou tu as du faire un echo ou mettre directement du html

n°404520
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 15:46:54  profilanswer
 

NemoHP a écrit :

1)put1 raz le bol du php
 
1)y a quoi comme focntion appart header et les truc en javascript ?  


 :sarcastic:  
1) put1 raz le bol des gars qui savent pas programmer en php
2) tu veux quoi la??? Toutes les fonction du php + javscript???
 
 
Sinon pour que tu comprennes un peu, pour le serveur HTTP une page c'est un entête (derniere date de modif, taille de la page, date & heure, type du document....et pleins d'autres infos ds le genre) et le source de la page a afficher.....)
 
Or tu as :
ENTETE
\r\n
CONTENU DE LA PAGE
 
 
si tu fais un echo ou que tu ecris qq chose ds ta page, tu passe ds la partie CONTENU DE LA PAGE, tu ne pourra donc faire un "header" puisque la partie ENTETE est déjà générée....
 
Tu dois donc créer l'entete avant d'afficher le moindre caractère....

n°404599
samuelp
Posté le 22-05-2003 à 16:06:14  profilanswer
 

Attention de ne pas mettre d'espace hors des <? ?> en PHP

n°404604
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 16:07:08  profilanswer
 

samuelp a écrit :

Attention de ne pas mettre d'espace hors des <? ?> en PHP

:jap:
c'est vraiment l'erreur à la con ca :sweat:

mood
Publicité
Posté le 22-05-2003 à 16:07:08  profilanswer
 

n°404670
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 16:28:27  profilanswer
 

bon c pas vrai, g pas raz le bol du php  :ange:
 
j'apprend et mais c'est pas facile tout seul
 
 
le truc que je voulait faire en faite , c'est si un gas rentre manuellement une adresse genre :
 news.php?page=sdhfgjfg (c'est a dire une autre valeur que 1 , 2 , 3 ou 4),ca redirige vers page news.php (la page sans paramettre en faite)
 
je sais pas si je suis bien claire car c pas facile a expliquer comme ça.

n°404674
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 16:31:39  profilanswer
 

NemoHP a écrit :

bon c pas vrai, g pas raz le bol du php  :ange:
 
j'apprend et mais c'est pas facile tout seul
 
 
le truc que je voulait faire en faite , c'est si un gas rentre manuellement une adresse genre :
 news.php?page=sdhfgjfg (c'est a dire une autre valeur que 1 , 2 , 3 ou 4),ca redirige vers page news.php (la page sans paramettre en faite)
 
je sais pas si je suis bien claire car c pas facile a expliquer comme ça.


c'est bien ce que je disais marre de ceux qui savent pas programmer et qui accusent le langage!!!
 

Code :
  1. switch($page){
  2.   case "sdhfgjfg" : header("location:news.php" ); break;
  3.   case "aaa" : header("location:accueil.php" ); break;
  4.   etc...
  5. }


 
Est-ce que ca l'air franchement dur????


Message édité par harrysauce le 22-05-2003 à 16:32:13
n°404682
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 16:33:37  profilanswer
 

je vais essayer de me rabbattre vers un code javascript plutot, j'ai récupe ça :
 

 3  // la fonction de redirection
 4  function redir($url){
 5  echo '<script language="javascript">';
 6  echo 'window.location="',$url,'";';
 7  echo '</script>';
 8  }  
 9  

n°404685
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 16:34:35  profilanswer
 

NemoHP a écrit :

je vais essayer de me rabbattre vers un code javascript plutot, j'ai récupe ça :
 

 3  // la fonction de redirection
 4  function redir($url){
 5  echo '<script language="javascript">';
 6  echo 'window.location="',$url,'";';
 7  echo '</script>';
 8  }  
 9  

 

le code que je t'ai mis au dessus marche tres bien....et il fait ce que tu veux...
 
EDIT : ah non ca fait pas ce que tu veux, je reprends...


Message édité par harrysauce le 22-05-2003 à 16:35:42
n°404691
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 16:36:22  profilanswer
 

c'est bon ca marche
 
par contre le fonction header restera pour moi un mystere, j'ai pourtant vu un paquet de tutorial dessus et de topics, mais bon tant que ca marche comme je fais !!!

n°404700
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 16:38:25  profilanswer
 

Code :
  1. if ($page != 1 && $page != 2 && $page != 3 && $page != 4){
  2.    header("location:news.php" );
  3. }
  4. switch ($page){
  5. case 1 : ...
  6. case 2 : ...
  7. case 3 : ...
  8. case 4 : ...
  9. }


Essaie ca, on sait jamais

n°404701
harrysauce
Miaaaooou!
Posté le 22-05-2003 à 16:39:13  profilanswer
 

NemoHP a écrit :

c'est bon ca marche
 
par contre le fonction header restera pour moi un mystere, j'ai pourtant vu un paquet de tutorial dessus et de topics, mais bon tant que ca marche comme je fais !!!

ben faut juste qu'aucun caractere ne soit ecrit dans la page HTML avant de mettre un header...

n°404704
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 16:40:29  profilanswer
 

quand je dit que un gas rentre ?page="sdhfgjfg", je voulait dire si un gas rentre n'importe quel parramtre hors de ce qui sont valide
 
"sdhfgjfg" c'est n'importe quoi que g taper, ça aurai pu etre "5", vu "5" est hors de met valeur du CASE
 
voila merci les gas

n°404714
nemohp
Adepte du provisoire permanent
Posté le 22-05-2003 à 16:45:50  profilanswer
 

harrysauce>   je l'avoue, je suis une merde   :jap:  
              (mais qui n'a jamais été une merde dans sa vie :D )
              vive le php  :love:
 
 
je réessayerais le header une autre jour  :na:  

n°405494
nemohp
Adepte du provisoire permanent
Posté le 23-05-2003 à 09:51:35  profilanswer
 

bon voila on est un autre jour donc je retente la fonction header.
 
j'ai fait tout bien comme on ma dt, mais ca veut tjrs pas marché.
 
Le faite que je travail sur php 4.2 pose t'il probleme
 
 
voici le code qui marche tjrs pas :
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Titre</title>
</head>
<body>
<?
header("Location: accueil.php" );
?>
</body>
</html>

 
on peut pas faire plus simple.

n°405507
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 09:58:34  profilanswer
 

Code :
  1. <?
  2. header("Location: accueil.php" );
  3. ?><html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  6. <title>Titre</title>
  7. </head>
  8. <body>
  9. blabla
  10. </body>
  11. </html>


il faut mettrre l'appel à header AVANT de retourner du code html! La fonction header fait une redirection, amha tu cherches à faire un include là, non?


Message édité par dropsy le 23-05-2003 à 09:59:03
n°405513
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 10:01:48  profilanswer
 

pour info, la page de la doc sur header: http://fr.php.net/manual/fr/function.header.php
tu y trouveras surement toutes les infos pour résoudre ton problème ;)

n°405524
nemohp
Adepte du provisoire permanent
Posté le 23-05-2003 à 10:06:32  profilanswer
 

aaaaaaaaaaaaaahhhhhhhhhhhhhhhhhh merci dropsy
 
enfin la réponse que je cherchais depuis 2 jours
 
 
merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci  
 
vive dropsy    :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  
 
 
a yes merci , put1 chui trop content je pouvait plus j'avllais pété un plomb avec cette fonction
 
par contre j'ai vu des exmple ou le header était apres le <html> et ca fonctionnait chez eux, donc c bizarre
 
mais la c bon ca amrche enfin  
 
encore merci, j'en peux plsu chui trop heureux, yes , yes yes
 
youhouuuuuuuuuuu
 
merci
 
bon aller moi je vais prendre ma pause la merci encore une fois    :jap:  :jap:  :jap:  :jap:  :jap:  

n°405531
samuelp
Posté le 23-05-2003 à 10:08:44  profilanswer
 

NemoHP a écrit :

aaaaaaaaaaaaaahhhhhhhhhhhhhhhhhh merci dropsy
 
enfin la réponse que je cherchais depuis 2 jours
 
 
merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci  
 
vive dropsy    :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  
 
 
a yes merci , put1 chui trop content je pouvait plus j'avllais pété un plomb avec cette fonction
 
par contre j'ai vu des exmple ou le header était apres le <html> et ca fonctionnait chez eux, donc c bizarre
 
mais la c bon ca amrche enfin  
 
encore merci, j'en peux plsu chui trop heureux, yes , yes yes
 
youhouuuuuuuuuuu
 
merci
 
bon aller moi je vais prendre ma pause la merci encore une fois    :jap:  :jap:  :jap:  :jap:  :jap:  


 
Pour eviter ce genre desagrement tu peux utiliser les classes PHP qui te permettront d'afficher le contenu apres sollicitation (exemple : classe page avec operation display() )

n°405542
nemohp
Adepte du provisoire permanent
Posté le 23-05-2003 à 10:17:37  profilanswer
 

tu pourrait etre plus explicite, car je te suis pas
 
de quel désagréments tu parle ? (car j'en est u plein  :p  )

n°405550
gm_superst​ar
Appelez-moi Super
Posté le 23-05-2003 à 10:20:46  profilanswer
 

heureusement que dropsy t'avais déjà indiqué la solutoin hier, que Harrysauce t'avais expliqué la différence entre headers et contenu... Tu es sûr que tu as lu les réponses proposées ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°405555
samuelp
Posté le 23-05-2003 à 10:22:52  profilanswer
 

NemoHP a écrit :

tu pourrait etre plus explicite, car je te suis pas
 
de quel désagréments tu parle ? (car j'en est u plein  :p  )


 
LEs header deja envoyes.
 Dans ta methode display tu genere ton code HTML (entre les Tags Body)
 Avant tu fais un appel aux methodes header et tail de ta classe pour encadrer le corp HTML
 
 Ainsi, cela t'evites les problemes de savoir si les headers sont deja envoyés (probleme recurrent pour la redirection et l'utilisation des cookies/sessions )

n°405562
dropsy
et bonne chance surtout...
Posté le 23-05-2003 à 10:25:54  profilanswer
 

:jap: merci pour tes remerciements
 
samuelp doit te parler de la fonction ob_start: http://fr.php.net/manual/fr/function.ob-start.php et de ses consoeurs qui te permettent de bufferiser la sortie et donc d'utiliser header même après les balises html.
 
gm_superstar> il me semblait bien aussi, mais ça devait pas être très clair. et puis l'essentiel c'est que son problème réglé

n°405563
nemohp
Adepte du provisoire permanent
Posté le 23-05-2003 à 10:26:17  profilanswer
 

tu a raison mais j'avais pas compris comme ca
 
quand il parlait de contenu je comprenais <body>
 
je m'excuse de pas avoir compris ca, probleme de jeunesse vocubularistique en langage internet surement  :D  
 
désolé  :jap:

mood
Publicité
Posté le   profilanswer
 


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

  [PHP] header (problème résolut)

 

Sujets relatifs
Problème d'architecture...probleme pour construction d'1 site en PHP
Probleme pour modifier une colonne dans une table Postgres[PHP]Compter le nbre de fois qu'1 chaine de char est presente ds 1 txt
header + chemin relatif ou absolu[PHP] Enregistrer in *.gif en *.png et garder l'image valable
[débutant PHP] probleme lors du passage de parametre[PHP] Cherche la meilleure classe de generation de formulaire
Plus de sujets relatifs à : [PHP] header (problème résolut)


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