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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] header sans effet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] header sans effet

n°1794786
Mister Yod​a
Posté le 02-10-2008 à 14:17:33  profilanswer
 

Bonjour,
 
J'ai un problème assez étrange avec un header("Location..." ) qui ne veut pas fonctionner. Mais je n'ai pas d'erreur affichée pour autant (et j'ai bien activé l'affichage des erreurs, c'est pas l'erreur classique du "header already sent" ;)).
 
En gros j'ai une page de base, dont voici le début :

Code :
  1. <?php
  2.  $authLevel = 10;
  3.  include("php/authentification.php" );
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/\
  6. xhtml1/DTD/xhtml1-strict.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  8. [...]


 
Et voici le "authentification.php" :

Code :
  1. <?php
  2.  if (!isset($_SESSION["power"])) {
  3.    $_SESSION["power"] = 1;
  4.  }
  5.  $power = $_SESSION["power"];
  6.  if ($power < $authLevel) {
  7.      header("Location: error.php?id=level" );
  8.      echo "Login please";
  9.    }
  10.  }
  11. ?>


 
Et donc la commande header() n'a aucun effet. J'ai déjà regardé plusieurs pistes sur les conflits possibles entre include(), header() et session_start() mais je n'ai pas l'impression que mon code soit mal foutu :/. Des idées ?

mood
Publicité
Posté le 02-10-2008 à 14:17:33  profilanswer
 

n°1794796
Mister Yod​a
Posté le 02-10-2008 à 14:57:46  profilanswer
 

Je me réponds à moi-même parce que j'ai trouvé une partie de la solution à mon problème : ma page de base est en fait un header.php dont je me sers pour modifier l'apparence de la page d'index par défaut d'Apache (avec la directive HeaderName). Et manifestement, dans ce cas précis, la redirection ne fonctionne pas. Le problème reste le même : comment faire pour que mon header() marche [:atlantis] ?

n°1794807
grosbin
OR die;
Posté le 02-10-2008 à 15:20:08  profilanswer
 

@header pour tous tes headers successifs ( potentiels dans ton code )
+ supprimer le moindre output avant ton header ( les espaces toussa )
=> Le mieux est de faire le tampon en début de fichier ( c'est crade mais tous tes headers passeront )


Message édité par grosbin le 02-10-2008 à 15:21:15

---------------
Photos Panoramiques Montagnes Haute Savoie
n°1794814
Mister Yod​a
Posté le 02-10-2008 à 15:41:13  profilanswer
 

Euh, c'est pas vraiment mon problème en fait :D.
J'ai continué à chercher, le problème vient bien du fait que je tente de faire un header() directement dans la page par défaut.
Donc voilà le tout début de mon fichier header.php (et y'a vraiment pas de caractères avant) :

Code :
  1. <?php
  2. ?>


Si j'accède à cette page en précisant son url, la redirection s'effectue. En revanche, si j'accède juste à la racine de mon serveur, cette page est bien appelée (via le mod_autoindex() et HeaderName), mais le header() reste sans effet, et pas de message d'erreur.
Et le plus fort, c'est que si je modifie pour avoir ceci :

Code :
  1. <?php
  2.  echo "coin coin !";
  3. ?>


j'ai ceci qui s'affiche :

Citation :

coin coin !
Warning: Cannot modify header information - headers already sent by (output started at /usr/share/apache2/common/blabla/header.php:2) in /usr/share/apache2/common/blabla/header.php on line 3


Donc là, l'erreur est logique mais ça veut dire qu'il prend en compte le header() alors qu'il ne semble pas le faire dans le premier cas [:almar] !
C'est vraiment bizarre comme problème, mais je suis quand même pas le premier à avoir ce problème j'espère ! :lol:

n°1794997
grosbin
OR die;
Posté le 02-10-2008 à 21:41:06  profilanswer
 

headers already sent by (output started at /usr/share/apache2/common/blabla/header.php:2)
je l'ai déjà dis une fois ..


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1795010
Mister Yod​a
Posté le 02-10-2008 à 22:05:23  profilanswer
 

grosbin a écrit :

headers already sent by (output started at /usr/share/apache2/common/blabla/header.php:2)
je l'ai déjà dis une fois ..


Donc t'as réussi à me répondre deux fois sans lire mes posts [:implosion du tibia]. Merci de faire partager ton savoir [:cend].

n°1795087
skeye
Posté le 03-10-2008 à 09:21:33  profilanswer
 

C'est louche ton truc...faire un header('Location: ...') dans un fichier appelé via la directive HeaderName de mod_autoindex ça me parait étrange...
HeaderName est là pour inclure une entête automatiquement dans ta page, et je pense pas que le mod_autoindex soit capable de suivre une redirection http pour inclure ce qu'il y a au bout...

 

Message cité 1 fois
Message édité par skeye le 03-10-2008 à 09:21:41

---------------
Can't buy what I want because it's free -
n°1795096
Mister Yod​a
Posté le 03-10-2008 à 09:55:32  profilanswer
 

skeye a écrit :

C'est louche ton truc...faire un header('Location: ...') dans un fichier appelé via la directive HeaderName de mod_autoindex ça me parait étrange...
HeaderName est là pour inclure une entête automatiquement dans ta page, et je pense pas que le mod_autoindex soit capable de suivre une redirection http pour inclure ce qu'il y a au bout...
 


Ouais, visiblement mon problème est insoluble :/. L'idée de base (comme on voit dans le premier post), c'était d'ajouter à la page d'index un petit système d'authentification. Tant pis, je vais faire autrement.

n°1795437
Profil sup​primé
Posté le 03-10-2008 à 19:18:14  answer
 

Et avec :
 

Code :
  1. <?php
  2. ?>


 
Ca donne quoi ?

Message cité 1 fois
Message édité par Profil supprimé le 03-10-2008 à 19:18:44
n°1795469
Mister Yod​a
Posté le 03-10-2008 à 20:43:59  profilanswer
 


Rien non plus, j'ai vraiment tout essayé pour les paramètres (même google.com donc :D). Si vraiment il y a une solution à mon problème, ça doit être au niveau de la conf' de quelque chose quoi. Mais finalement, j'ai contourné le problème d'une autre manière ;).

mood
Publicité
Posté le 03-10-2008 à 20:43:59  profilanswer
 

n°1795723
leflos5
On est ou on est pas :)
Posté le 05-10-2008 à 10:47:25  profilanswer
 

Tu as tracé les entêtes avec un analyseur d'entête (sous firefox il existe une extension). Ca te permettra de comprendre ;)

n°1795777
sub1
Posté le 05-10-2008 à 16:44:17  profilanswer
 

Hello,
 
Je pense qu'il manque un

Code :
  1. exit();

après les headers.

n°1795789
skeye
Posté le 05-10-2008 à 17:29:02  profilanswer
 

sub1 a écrit :

Hello,
 
Je pense qu'il manque un

Code :
  1. exit();

après les headers.


non.


---------------
Can't buy what I want because it's free -

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

  [PHP] header sans effet

 

Sujets relatifs
PHP et <input />Est-il possible de sélectionner un onglet Excel bien précis avec PHP ?
Reproduire l output mysql + PHPFormulaire de contact PHP
aide pour modéle de News avec PHP-NukePHP, MySQL, et HTML avec visual web developper ?
Tableau PHP en tableau javascript : ProblemePhp Usort Array
[PHP+SHELL][PHP][SMARTY] Construire un nom de variable à la volé avec eval et cat
Plus de sujets relatifs à : [PHP] header sans effet


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