2013-06-02 1 views
-1

Je me demande vraiment pourquoi cet avertissement s'est produit. Je pense que mon code est correct, mais il dit que déjà envoyé des en-têtes (output started at ...../request.php: 1) ...../request.php sur la ligne 2Attention: session_start() [fonction.session-start]: Impossible d'envoyer le limiteur de cache de session?

Voici mon code

<?php 
session_start(); 
if(!isset($_SESSION['login'])){ 
session_destroy(); 
header("Location:login.php"); 
exit(); 
} 
include_once("action.php"); 
?> 

S'il vous plaît, aidez-moi, Merci à l'avance

+0

quelle erreur exacte avez-vous? Il semble que vous envoyez quelque chose au navigateur avant l'en-tête() – bksi

+3

Vérifiez tout ** espace blanc ** avant votre balise

+1

Vous devez également supprimer la signature de nomenclature si votre fichier l'a. Les serveurs plus anciens ne reconnaîtront pas la signature de la nomenclature et l'enverront en sortie. –

Répondre

-1

Essayez de mettre ob_start() après session_start()

+0

après? d'avant ... – Musa

+1

Ce n'est pas une vraie solution au problème. C'est juste peut-être un hack. –

+0

cela ne fonctionne pas non plus – Sovat

0

Essayez de placer ce en haut de votre page:

<?php ob_start(); ?> 

puis en bas de la place de la page de cette ligne de code:

<?php ob_flush(); ?> 
+0

Au moins, changez votre

+0

Il ne fonctionne toujours pas :( – Sovat

0

essayez d'utiliser

<?php ob_get_clean(); ?> 

avant le session_start. De cette façon, vous pouvez être assuré qu'aucun espace n'a été imprimé avant d'appeler la fonction sensible au tampon de sortie, par exemple session_start() et/ou header().

+0

Je l'ai utilisé, mais cela ne fonctionne pas – Sovat

+0

pouvez-vous me montrer le fichier entier pour ce script? – Aldee

Questions connexes