Problème PHP : session_start() [Résolu/Fermé]

Signaler
-
 MAPUMBU -
Bonjour à tous !
J'ai un problème avec mon site, en effet je souhaites créer un espace membre en utilisant session_start() mais manque de bol quand j'ai mis cette instruction sur ma page (avant <html>) elle m'a affiché ça :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\documents and settings\romain\mes documents\test php\login2.php:3) in c:\documents and settings\romain\mes documents\test php\login2.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\documents and settings\romain\mes documents\test php\login2.php:3) in c:\documents and settings\romain\mes documents\test php\login2.php on line 3

Donc je sais pas trop à quoi ça correspond
Pour l'info j'ai testé ces pages avec easyphp et je compte les heberger sur free.
Donc mon code ça donne ça :
<?
session_start();
?>

<html>
<head>
<title>Untitled Document</title>

Merci d'avance :)
A voir également:

10 réponses

Si toujours pas résolu, Regarde du côté de l'encodage de ton fichier PHP et vérifie qu'il est bien SANS SIGNATURE BOM.
Il m'était arrivé la même chose il y a quelques années ...
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

merci pour cet réponse; c'est ce qu'il e fallait
En fait il y avait une ligne (générée automatiquement par DreamWeaver) je l'ai enlevé et tout fonctionne !
Merci beacoup pour ton aide
Messages postés
1
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 mai 2008
1
Bonjour,

J'ai un problème avec mon programme Php.

Après l'authentification j'ai un message sur ma page d'acceuil:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\acceuil.php:6) in C:\xampp\htdocs\dmd_sit_tournees.php on line 1

J'ai testé ma page sous un éditeur exa, je n'ai pas d'espace avant la fonction session_start().

J'ai mis la fonction au début du fichier (line 1), mais j'ai toujours ce problème.

Pourriez vous m'aider?

mon code du fichier dmd_sit_tournees.php:

<? session_start();
include "bdd.php";

if(isset($_POST['envoyer']))
{
header("Location: acceuil.php?var=2");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
.....
Peliroja, je pense que ton rpoblème est le même que vu plus haut....
A savoir session_start(); en premier ( pas seulement ligne 1, mais sans code avant )

session_start();
<?
include "bdd.php";

if(isset($_POST['envoyer']))
{
header("Location: acceuil.php?var=2");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
bonjour !
peut-etre vous avez oublié le PHP dans votre code.
ie: <?PHP
session-start();
include....;
?>
<?php session_start();?> // debut de session

//connection a la base intrasde
if(!mysql_connect('localhost','root'))
{ echo'Connection Impossible';
exit();
}else{
echo'';
}
mysql_select_db('intrasde');

if (isset($_POST['login'])){ // execution apres envoi du formulaire
$login = $_POST['login']; // mise en variable du nom d'utilisateur
$pass = md5($_POST['pass']); // mise en variable du mot de passe crypte

// requete sur la table administrateurs

$verif_query=sprintf("SELECT * FROM user WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);


if ($utilisateur) { // On test s'il y a un utilisateur correspondant
session_register("authentification"); // enregistrement de la session

// déclaration des variables de session
$_SESSION['privilege'] = $row_verif['privilege']; // le privilege de l'utilisateur (permet de definir des niveaux d'utilisateur)
$_SESSION['nom'] = $row_verif['nom']; // Son nom
$_SESSION['prenom'] = $row_verif['prenom']; // Son Prenom
$_SESSION['login'] = $row_verif['login']; // Son Login
$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe
header("Location:page_connection.php"); // redirection vers la bonne page si OK
}
else {
exit("Location:connect_root.php?erreur=login"); // redirection vers cette page si utilisateur non reconnu
}
}


// GESTION DE LA Deconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramatres d'URL qui permettront d'identifier un "contexte" de déconnexion
$prenom = $_SESSION['prenom']; // On garde le prenom en variable pour dire au revoir (soyons polis :-)
session_unset("authentification");
header("Location:connect_root.php?erreur=delog");
}
?>;

merci pour la remarque precedente je sur votre aide merci......
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
Il ne faut pas qu'il y ait d'espace avant le script.
La ligne : <?session_start();?> doit être la première ligne.
Merci de ta réponse mais j'ai deja essayé et cela ne résoud pas le problème.
(click droit sur easphp---------->configuration---------->php------------->Edition richercher------------>ecrir (session.auto_start ) --------> session.auto_start =0--------->randre=1) trés trés bien
Messages postés
1
Date d'inscription
dimanche 22 mars 2009
Statut
Membre
Dernière intervention
22 mars 2009

salut
merci pour votre aide et j'essais de resoudre mon probleme de session_start() et je remplace la valeur 0 par 1 de session.auto_start()
mais il declanche un autre probleme
voila le nouveau message d'erreur :"A session had already been started - ignoring session_start() in c:\program files\easyphp1-8\www\projet\test.php on line 1
"
Sa marche toujours pas :S
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
il faut que la ligne de code <? session_start();?> soit la 1ère ligne de la page.
C'est difficile