Problème header()

Ader
Invité n'ayant pas de compte PHPfrance

03 mars 2006, 20:06

Bonjour (ou plutôt bonsoir :p)
J'ai un soucis avec un header(), voici mon code :
<?
// On démarre la session
session_start();

// On écrase le tableau de session
$_SESSION = array();

// On détruit la session
session_destroy();

header ('Location: /index.php');
exit();
?>
Je me suis coltiné toute la doc, j'ai lu un nombre X de message sur ce forum : je n'ai pas de HTML ni de echo ni de rien : alors qu'est ce qui coince?
Voici le message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/8/a/azerty/qsdf/index.php:13) in /var/www/free.fr/8/a/azerty/qsdf/_files/_sql/deco.php on line 13
Si vous avez une idée, d'avance merci :D [/php]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 mars 2006, 20:11

Salut,

il semble que ce bout de code est inclus dans un autre, index.php.

Regarde vers la ligne 13 ce que tu as, meme pas un saut de ligne

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

03 mars 2006, 21:32

Voici ma ligne 13 :

Code : Tout sélectionner

<td><table border="0" cellpadding="0" cellspacing="0" width="882">
^^

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 mars 2006, 22:26

et c'est quoi comme code ça ? :o

pourquoi faire est-ce que tu inclus le code de déconnexion dans un tableau ?

suffit d'un lien qui envois sur une page qui contient le code de déconnexion c tout.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

03 mars 2006, 22:46

Alors voilà,
La page de déconnexion est celle ci dessus. Elle est entière la haute hein !!
il semble que ce bout de code est inclus dans un autre, index.php.

Regarde vers la ligne 13 ce que tu as, meme pas un saut de ligne
Le code ci dessus est celui de la ligne 13 de la page index.php :)
Je ne comprend d'ailleur pas pourquoi ce fichier intervient... :roll: [/code]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

03 mars 2006, 23:13

Alors voilà,
La page de déconnexion est celle ci dessus. Elle est entière la haute hein !!
in /var/www/free.fr/8/a/azerty/qsdf/_files/_sql/deco.php on line 13
L'erreur est relevée à la ligne 13 du fichier deco.php le header je suppose. Dans le code ici il n'y a pas 13 lignes il n'est donc pas au complet, verifis si tu débute le fichier par <? sans saut de lignes.
Je ne comprend d'ailleur pas pourquoi ce fichier intervient... :roll:
tu n'as pas un:
include("deco.php");
ou require dans "index.php" ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

03 mars 2006, 23:51

Ah si voici le code complet de la page "deco.php" :
<?
// On démarre la session
session_start();

// On écrase le tableau de session
$_SESSION = array();

// On détruit la session
session_destroy();
header ('Location: ../../index.php');
exit();
?>
C'est pour ca que je ne vois pas le problème :'(

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mars 2006, 00:18

On ne va pas avancer très vite si tu ne fouris pas plus de précisions :?
Je veux bien te croire que le fichier ne contient rien de plus mais:
tu n'as pas un:
include("deco.php");
ou require dans "index.php" ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

04 mars 2006, 10:58

Oui j'ai un fichier "get.php" qui contient toutes les références à mes fichiers :
<?
switch($_GET[p])
{

//-----------------------------//
//           GENERAL           //
//-----------------------------//
case'news':
include('_files/_fr/_news/index.php');
break;
Ce fichier get.php est :
<? include ('get.php'); ?>
Dans index.php

Voilà :D

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mars 2006, 11:09

si tu inclus un fichier A dans un fichier B le code A est considéré à la suite de B.
Donc si tu as du code HTML avant l'inclusion de ton fichier A contenant le header alors il y aura aussi du code avant le header => erreur.

comment arrives tu sur la page de déconnexion, un lien certainement ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

04 mars 2006, 11:15

si tu inclus un fichier A dans un fichier B le code A est considéré à la suite de B.
Donc si tu as du code HTML avant l'inclusion de ton fichier A contenant le header alors il y aura aussi du code avant le header => erreur.

comment arrives tu sur la page de déconnexion, un lien certainement ?
Ah je n'avais pas cette logique :oops:
Je pensais qu'il ne fallait rien avant le header() QUE dans le fichier du header....

Oui j'utilise un lien.
Comment puis je effectuer ma déconnexion alors? Sans utiliser d'include?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mars 2006, 11:20

un simple lien:
<a href="deco.php"> Déconnexion </a>
devrai suffir, pas d'inclusion et une redirection dans le fichier deco.php avec le header mène sur l'index.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Ader
Invité n'ayant pas de compte PHPfrance

04 mars 2006, 11:26

Très bien je vais essayer comme cela alors...

Merci du coupe de pouce :D

(Pouvez vous passez en résolu svp?? :D )

Merci !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

04 mars 2006, 11:44

De rien :wink:
(Pouvez vous passez en résolu svp?? :D )

Moi non, mais un modo oui.

En t'inscrivant tu poura effectuer cette opération toi même, pense y pour la prochaine fois :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute