Salut a tous j'ai un petit soucis avec mon script. En local il n'y a pas d'erreur mais lorsque je l'ai mis en ligne se matin voici l'erreur qui m'a été signalé pourtant je comprend pas vu que selon moi tous est ok.

Voila je rencontre un petit problème avec mon code.
****Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/eadci/promoculture229.ead-ci.org/contenu/connexion_db.php:1) in /home/eadci/promoculture229.ead-ci.org/contenu/connexion_db.php on line 11

et voici le code pour la page connexion_db.php en question :


    //donnée sql et autre
    $hote_hebergeur = "host";
    $utilisateur = "utili_nom";
    $mot_de_pass = "mdp";
    $base_de_donne = "base_dd";

    $bdd = new PDO("mysql:host=$hote_hebergeur; dbname=$base_de_donne","$utilisateur",$mot_de_pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

     if(session_status() == PHP_SESSION_NONE){
            session_start();
        }

4 réponses


Tu n'aurais pas mis un espace avant ton <?php ?

Pour éviter et comprendre ce type d'erreur : https://www.grafikart.fr/tutoriels/php/session-start-825

Le session_start doit apparaitre en premier dans ton code !

<?php
        session_start();

        //donnée sql et autre
        $hote_hebergeur = "host";
        $utilisateur = "utili_nom";
        $mot_de_pass = "mdp";
        $base_de_donne = "base_dd";

        $bdd = new PDO("mysql:host=$hote_hebergeur; dbname=$base_de_donne","$utilisateur",$mot_de_pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
?>

JeremieMeunier : non, il doit être lancé avant que la moindre ligne soit envoyé au navigateur (header/content), mais il peut apparaitre n'importe où dans le code PHP.
Vu que l'erreur est à la ligne 1 de ce même fichier (cf : connexion_db.php:1, où le 1 représente la ligne où un envoi est fait au navigateur), il y a donc soit un espace, soit une ligne en trop, ou un caractère, peu importe, il y a quelque chose à ce niveau là :)