[...] headers already sent [...]

Résolu/Fermé
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 - 21 mai 2011 à 20:14
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 - 28 mai 2011 à 23:19
Bonjour,
J'ai une interface d'administration qui fonctionne en plusieurs pages qui incluent toutes un header par sécurité.
Mais j'obtiens cette erreur :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /header.php on line 2


Voici la ligne concernée :
<?php 
session_start();
htmlspecialchars($input);
htmlentities($input);
addslashes($input);
include ('../includes/config.php');
include ('libs/config.php');
include ('libs/fonctions.php');
?>


Comment résoudre cela ?
Merci d'avance.




4 réponses

Profil bloqué
26 mai 2011 à 21:47
Ah j'ai trouvé lol


Ton erreur n'est pas dans la page header ou autre elle est dans ton index.

Tu dois mettre un session_start(); avant toute chose, avant ton include.
1
Profil bloqué
21 mai 2011 à 22:07
Il faut que tu mettes <?php session_start() ?>

Avant toute chose !!!


Même pas tu laisses un espace avant !
0
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 1
25 mai 2011 à 19:40
<?php session_start() ?> 
<?php
error_reporting(0);
htmlspecialchars($input);
htmlentities($input);
addslashes($input);
include ('../includes/config.php');
include ('libs/config.php');
include ('libs/fonctions.php');
?>


J'ai toujours la même erreur :s
0
Profil bloqué
25 mai 2011 à 19:49
essaie ça, selon les serveurs ça peut marcher

<?phpsession_start()?>
0
Si ça ne marche pas essaye
<?php
session_start(); ?>
En mettant le ; à la fin et pas d'espaces entre le <?php et ton session_start
0
Profil bloqué
26 mai 2011 à 10:29
Ha oui, autant pour moi, mets ça
<?php session_start(); ?>
0
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 1
Modifié par Warryur le 26/05/2011 à 19:17
Toujours la même erreur...
Header.php :
<?php session_start(); ?>  
<?php 
error_reporting(0); 
htmlspecialchars($input); 
htmlentities($input); 
addslashes($input); 
include ('../includes/config.php'); 
include ('libs/config.php'); 
include ('libs/fonctions.php'); 
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<title>Administration</title>  
<meta http-equiv="Content-Language" content="fr" /> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<link type="text/css" rel="stylesheet" media="screen" href="style.css" /> 
</head> 

<body> 
<div id="site"> 
<div id="header"></div> 
    <div id="sous-header">


Index.php :
<?php  
include 'header.php'; 
include 'menu.php'; 
include 'left.php'; 
include 'right.php'; 



if($_SESSION['login'] && $_SESSION['login'] == TRUE) 
{ 
$gm_result = viewinfosperso(); 
if($gm_result['gmlevel'] >= '2') 
{ 


?> 


     

    
    
          
    
            <h3>Administration</h3> 
Contenu index
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
Modifié par arthezius le 26/05/2011 à 20:11
<?php 
session_start(); 
?>

Tu peux mettre autant d'espace que tu veux entre <?php et session_start();, ils ne seront pas envoyer au navigateur. Le PHP est traité côté serveur. Il faut juste qu'il n'y ai aucun echo/print avant session_start();
De plus, avant <?php il ne doit rien y avoir pas même un espace. Tout caractère s'y trouvant ne sera pas traité côté serveur mais bien par le navigateur.
« La recherche commence là où s'arrête la connaissance. »
0
Warryur Messages postés 97 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 28 mai 2011 1
28 mai 2011 à 23:19
Ça fonctionne !! Merci :DD
0