Php probleme avec mes sessions

Résolu/Fermé
jupiter - 13 août 2009 à 13:59
 jupiter - 13 août 2009 à 14:57
Bonjour,

j utilise des sessions pour l authentification sur mon site mon souci est que quand j ajoute mon code de protection sur la page que je veux protéger comme ci dessous (le session start est tout en haut aucun code avant)

session_start();
if (session_is_registered("authentification")){
}
else {
echo "<script language=\"JavaScript\">\n";
echo "window.location.href = 'index2.php'";
echo "</script>";
}

il me met ça sur la page qui s affiche :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at W:\var\www\ipv\inc\connexion.php:7) in W:\var\www\body.php on line 2

j me susi dit la session est deja active du coup j ai enlevé le session start et la bine sur ca ne marche plus ....

avez vous une idée pourquoi ?

Merci
A voir également:

8 réponses

Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
13 août 2009 à 14:03
Il faut que tu fasses attention à ce que ton session_start(); soit bien avant tout autre code!
Même avant la balise <html>

Il faut que ta première ligne de ton fichier php soit : <?php session_start(); ?>
Si ce n'est pas le cas, le problème peut venir de là.

0
Bonjour

Il n'est ni nécessaire ni suffisant que la première ligne soit <?php session_start(); ?>
Par contre, visiblement, le code que tu montres est celui du fichier body.php qui est inclus dans le fichier connexion.php (ou ils sont tous les deux inclus dans un autre fichier) et tu as déjà sorti quelque chose à la ligne 7 de connexion.php
Peux-tu montrer le début de connexion.php ?
0
merci pour vos réponses

pour Passarinho44 le session start était bien tout en haut

pour le père le body.php est bien inclus dans un autre fichier celui ci

<?php
include 'inc/config.php';
include 'inc/connexion.php';
include("header.php");
include("menu.php");
include("body.php");
include("footer.php"); ?>

et voici le connexion.php :


<?php
// paramètres de connexion
$hostname_dbprotect = "localhost";
$database_dbprotect = "test";
$username_dbprotect = "root";
$password_dbprotect = "";
$dbprotect = mysql_pconnect($hostname_dbprotect, $username_dbprotect, $password_dbprotect) or trigger_error(mysql_error(),E_USER_ERROR);
?>
0
la ligne 7 correspond à ton mysql_pconnect. Bizarre que tu ne voies pas de message d'erreur.
C'est peut-être aussi un caractère après le ?> en fin de connexion.php. Pour le vérifier, enlève le ?> à la fin de connexion.php (il n'est pas obligatoire, même si on voit tout le monde le mettre systématiquement)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tres bizarr je vire mon connexion.php effectivement ca amrche et voila maintenant mon message

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at W:\var\www\header.php:12) in W:\var\www\body.php on line 2

voici mon header

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
"http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd">
<html Xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="page">
<div id="top">
<div id="header">
<h1>test</h1></div>
</div>
0
Tres bizarr je vire mon connexion.php effectivement ca amrche.
Remets le
Enlève le session_start de ton body.php et remets-le au début du fichier qui contient tous les include (juste après le <?php
Car là où tu l'as mis, il y a plein de choses d'envoyées au client avant.
0
voila ce que j ai fait c ets mon fichier qui contient mon body.php et toujours le meme message avec le header.php ligne 12 :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at W:\var\www\header.php:12) in W:\var\www\body.php on line 2

le script :


<?php
session_start();
include 'inc/config.php';
include 'inc/connexion.php';
include("header.php");
include("menu.php");
include("body.php");
include("footer.php"); ?>
0
désolé pour les fautes je tape trop vite et me relis pas je vais faire attention
0