Session_start(): Cannot send session cache limiter - headers al

Bonjour,

J'ai une erreur en PHP que je n'arrive pas a résoudre (je me suis renseigné sur internet mais pas réussi à résoudre mon problème). Voici mon erreur :

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Applications/MAMP/htdocs/PPE SDIS29/connect/connexion.php:3) in /Applications/MAMP/htdocs/PPE SDIS29/GestionConnexionFormulaire.php on line 25

Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/PPE SDIS29/connect/connexion.php:3) in /Applications/MAMP/htdocs/PPE SDIS29/GestionConnexionFormulaire.php on line 27

Mon fichier index.php :

<?php

// Connexion à la base de données
include 'connect/connexion.php';

if($_POST['envoi_connexion'])
{
if(empty($_POST['login']) OR empty($_POST['password']))
{
include('index.php');
echo "<center><h2><font color='red'>Merci de remplir tous les champs</h2></font></center>";

}
else
{
//Sécurisation des données entrées par le membre
$login = $_POST['login'];
$password = $_POST['password'];
//On vérifie que les données correspondent dans la base de données
$sql = "SELECT * FROM LOGIN WHERE LOG_LOGIN='$login' AND LOG_MDP='$password'";
$result = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($result) > 0)
{
$data = mysql_fetch_array($result);
session_start();
$_SESSION['profilLogin'] = $data['LOG_LOGIN'];
header('Location: ../statut.php');
}
else
{

include('index.php');

echo "<center><h2><font color='red'>Erreur dans les logins</h2></font></center>";
}
}
}
?>

Mon fichier GestionConnexionFormulaire.php :

<?php

// Connexion à la base de données
include 'connect/connexion.php';

if($_POST['envoi_connexion'])
{
if(empty($_POST['login']) OR empty($_POST['password']))
{
include('index.php');
echo "<center><h2><font color='red'>Merci de remplir tous les champs</h2></font></center>";

}
else
{
//Sécurisation des données entrées par le membre
$login = $_POST['login'];
$password = $_POST['password'];
//On vérifie que les données correspondent dans la base de données
$sql = "SELECT * FROM LOGIN WHERE LOG_LOGIN='$login' AND LOG_MDP='$password'";
$result = mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($result) > 0)
{
$data = mysql_fetch_array($result);
session_start();
$_SESSION['profilLogin'] = $data['LOG_LOGIN'];
header('Location: ../statut.php');
}
else
{

include('index.php');

echo "<center><h2><font color='red'>Erreur dans les logins</h2></font></center>";
}
}
}
?>

Et mon header:

<?php
session_start();
include 'functions.inc.php';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>SDIS29</title>
<meta http-equiv="Content-Type" content="text/html;" charset="iso-8859-1" />
<link href="../style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="logo"><img src="../images/logo.jpg" alt="Logo" /></div>
<div id="banner"><img src="../images/main-image.jpg" alt="Main Image" /></div>

Merci d'avance pour votre aide !!! :)

2 réponses

  1. Salut,
    L'erreur provient généralement de l'utilisation "session_start()" plus qu'une fois.
    Vérifie que "session_start()" ne provient pas d'un autre include
    1. Salut

      Déjà le
      "//Sécurisation des données entrées par le membre " m'a bien fait rire ^^

      car MySQL (L'extension PHP pas la BDD MySQL) est obselete depuis un petit moment déjà préférez MySQLi ou PDO (Mysqli est très similaires a MySQL donc plus facile a prendre en main)

      Sinon t'es session doivent être démarré au tout tout début

      Ca c'est le premier truc que tu doit mettre :

      <?php
      session_start();

      .... SUITE DU CODE


      Essaye pour voir ce que ça donne déjà
      (Si j'ai bien compris ton code)
      Ensuite tu inclus ton index.php dans index.php c'essttt spécial..
      donc tu démarre t'es sessions autant de fois que ton index est chargé dans ton index alors qu'elles doivent être démarrées une seules fois
      ton header est chargé dans ton index ? Car tu as aussi démarré des sessions

      Pour résumé c'est le bazard dans ton code ^^

      Sinon pour revenir sur le "sécurité" ne stocker jamais vos code en clair dans ta Base de données

      Un peu de lecture le minimum a savoir :

      https://codes-sources.commentcamarche.net/faq/202-comment-securiser-son-site-et-eviter-les-failles-php
      --