Problème session_start()



  • Bonjour,

    Tout d'abord je ne sais pas si je suis dans la bonne section car j'hésitais avec la section technique. Donc s'il faut déplacer mille excuses et n'hésitez pas à le faire.

    Alors voilà, j'expose le problème.

    J'ai le message d'erreur qui s'affiche depuis aujourd'hui

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/monSite/index.php:4) in /home/monSite/menu.php on line 3
    

    Bon j'ai cherché sur Internet et mon copain Google mais j'avoue que je reste un peu pantois face à l'erreur.

    Sur un forum, j'ai trouvé la proposition suivante:

    Mettre```
    <?php ob_start(); ?>

    
    Bon ça fonctionne mais dès la page suivante ca replante. Pas trop envie de passer sur toutes mes pages pour mettre ce code et surtout pas comprendre le pq ca arrive alors que ca le faisait pas avant.
    
    Merci d'avance pour votre aide.
    
    Info utile peut être ^^
    
    Serveur NS2

  • Administrateur

    Le problème doit venir du serveur, j'y regarde.



  • Merci d'avance et désolé alors pour la mauvaise section


  • Administrateur

    J'ai vérifié, le problème ne semble pas venir du serveur.

    Il provient probablement du tag de pub que tu as rajouté en header.



  • Merci de ta réponse caaptusss.

    Néanmoins, j'ai toujours la même erreur.

    Ce que j'ai essayé:

    1°) Le tag qui pourrait poser problème a été enlevé. Ca ne change rien au problème.

    En fait ce tag permet de renseigner un module de statistique. Il est présent depuis plus d'un mois. J'aurais donc dû (en toute logique mais avec l'informatique c'est pas gagné) avoir l'erreur depuis bien longtemps.

    2°)J'ai mis session_start() en dehors de tout code html sous le conseil d'un programmeur. Rien changé non plus si ce n'est la position plus haure du message :p

    Si vous avez des pistes je suis bien entendu preneur :)

    Merci d'avance pour votre aide


  • Administrateur

    N'oublie pas de poster une petite portion du code ou il ya le session start() ainsi que l'adresse de ton site :)



  • Voici la page index.php

    <?php //  ob_start(); ?>
    <div>
    
    <?php include("haut_page.php");?>
    </div>
    
    <div>
    
    <?php include("menu.php"); ?>
    
    </div>
    
    <div id="corps">
    
      <h1>Bienvenue sur le site</h1>
    
        <p class="news">texte d'introduction
    
    </div>
    
    <div>
    
    <?php include("bas_page.php"); ?>
    
    </div>
    
    

    Et voici le code de la page haut_page.php avec session_start()

    <?php session_start(); ?>
    <html>
    <head>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    
    <title>Bienvenue chez Lave</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="css/zero.css" >
    <link rel="shortcut icon" type="image/ico" href="favicon/favicon.ico">
    
    <script language="javascript" src="http://www.lave01.info/ami/outils/phpmv2/phpmyvisites.js" type="text/javascript"></script>
    
    </head>
    
    <body>
    
    <div id="en_tete">
    
    </div>
    
    

    Et voici le code d'erreur :

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/lave01/www/ami/index.php:4) in /home/lave01/www/ami/haut_page.php on line 1
    

    Merci d'avance pour l'aide



  • TILT ERREUR DE DEBUTANT DETECTE: NE JAMAIS RENVOYER DU (x)HTML AVANT UN SESSION_START !

    IL Y A UN DIV AVANT L'INCLUSION DE PAGE haut_page.php…

    Franchement mettre sa sur le dos du serveur, ce serais bien de chercher un peu, c'est un erreur classique...



  • Je te l'accorde, erreur de débutant mais c'est en forgeant que l'on devient forgeron ;). Merci pour ta réponse et ta piste de travail.

    Néanmoins, cela fonctionnait avant. Pourquoi avant et plus maintenant. J'aime bien comprendre ce que je fais et pq ca ne marche plus a un moment donné.

    Si tu parles de la balise div qui fait l'include de haut_page.php, je viens de le retirer et ca me fait tjs la meme erreur. Dois je retirer tous les div de la page? Je ne pense pas sinon gros probleme pour moi en perspective ^^

    Merci d'avance pour votre aide



  • Un simple espace (ou même retour à la ligne) suffit à faire planter le truc.
    L'erreur à forcément été provoquée par quelqu'un qui à modifié tes fichiers, le serveur n'y est en rien dedans. Donc la seule explication du fait que ça marchait avant et plus maintenant, c'est que quelque chose ait été modifié :)



  • Bon vais essayer d'expliquer le bazar et ok bien compris que c'était pas le serveur ^^

    Alors avant que ca ne bug j'avais mon session_start qui se trouvait dans mon menu.php. Menu.php etait donc en deuxième position dans le fichier index.php. Ok ce n'est pas codé correctement mais ca fonctionnait jusqu'à lundi soir. Pourquoi, je ne sais pas et maintenant on peut dire qu'on s'en fout car le plus important est finalement de résoudre le problème et de bien codé ^^ Donc l'erreur sera de toute façon positive :)

    Alors voilà ce que j'ai entrepris sous vos conseils et ceux d'un ami:

    mettre session_start en dehors de toute balise html. Pour ce faire je le mets dans haut_page.php et je retire les balises div entourant mon include haut_page.php de ma page index.php

    L'erreur est tjs présente :'(

    Merci de m'avoir lu et de votre aide :)

    [EDIT]Voilà ça fonctionne en partie ^^ Merci à Arcanis pour la piste de retour à la ligne et d'espace. C'est ça qui clochait. Encore des erreurs identiques ms c'est lorsque je fais un header dans mon script. Il aime pas trop. Les pistes sont les bienvenues et sinon je continue de chercher :)

    Encore merci de votre

    [/EDIT]


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.