2011-11-07 3 views
0

J'ai 2 pages est une autre index.php est classes.phppossible d'utiliser session_start() dans le fichier inclus?

ne devrait pas ce travail classes.php:

<?php 
    ob_start(); 
    session_start(); 

?> 

index.php:

<?php 
    include "classes.php"; 
    error_reporting(E_ALL); 
    echo "Loaded"; 
?> 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /public_html/index.php:1) in /public_html/includes/classes.php on line 2 

Répondre

2

Assurez-vous de ne pas envoyer quoi que ce soit avant que quoi que ce soit concernant la session est exécutée.

Cela signifie:

  • supprimer tout avant <?php,
  • supprimer ?> balises de fuite (ils ne sont pas nécessaires et souvent nuisibles),

Le problème que vous est causé par quelque chose qui est avant "<?php" dans le fichier index.php (il peut s'agir d'un espace, d'un onglet, d'une fin de ligne ou de toute autre chose que vous n'avez pas montrée), bu Si vous suivez les règles ci-dessus, vous devriez avoir ce problème beaucoup moins souvent lors du développement de votre application.

1

Il est pas inclure problème - vous avez un espace quelque part, éventuellement dans classes.php après le ?>.

1

output started at /public_html/index.php:1

Apparemment, vous avez l'espace blanc (ou éventuellement le contenu) avant la balise de début de PHP dans votre fichier index.php qui est envoyé en sortie.

3

Vérifiez qu'il n'y a pas d'espace blanc avant l'ouverture de la balise <?php dans vos classes et fichiers d'index.

0

Vérifiez votre fichier php.ini et vérifiez si le session.auto_start est défini sur 1 (ou true, ou yes).

Si vous souhaitez démarrer la session manuellement, il doit être réglé sur 0

Plus d'infos ici: http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start

si elle est déjà réglé sur 0, alors vous avez un espace ou une nouvelle ligne à le début de index.php, essayez de vous assurer que vous ne voyez pas de char bizarre

Questions connexes