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

Fermé
Mouss - 27 mars 2016 à 18:26
OussH. Messages postés 29 Date d'inscription mardi 22 mars 2016 Statut Membre Dernière intervention 11 juin 2016 - 30 mars 2016 à 16:44
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

jean448 Messages postés 1340 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 26 janvier 2017 237
Modifié par jean448 le 27/03/2016 à 19:28
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
--
1