"session_start" et "header()"

Résolu/Fermé
hektoumayo - 18 mai 2005 à 22:03
 Ny89 - 6 sept. 2015 à 00:54
Salut,
Voila j'ai fait un script dans lequel session_start et header( )n'est pas au début du script. J'ai des messages d'erreur du style :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 23

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1\www\config.inc.php3:2) in c:\program files\easyphp1\www\inscription.php3 on line 25

Qu'est ce que je peux alors faire pour contourner ce problème. J'ai essayé de lire une solution à ce problème sur un site mais je n'ai rien compris. Si quelqu'un avait une reponse claire ça serait vraiment sympa.
Pour info ,je possède la derniere version de EasyPHP.
Merci d'avance.
A voir également:

40 réponses

alors pourquoi tu m'aide pas :-( sauf si tu trouve pas mon erreur
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 déc. 2008 à 12:14
0
ouaw il me donne mal a la téte le .htacess je croi jvai abandonner mon projet
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 déc. 2008 à 12:30
Prend pas le .htaccess, prend la méthode javascript, c'est la plus simple.
0
j'ai un autre problème dans mon j'arrive pas a récupérer le mot de passe pour me connecter au site avec l'hébergeur Free pourtant sa fonctionne correctement en localhost


<html>
<head>
<meta http-equiv="Refresh"
content="0;URL=http://dj.slyders.free.fr/">
</head>

<?php include("session.php");?>

<?php

include('connex.php');

$identifiant = $_POST["identifiant"];
$passwd =$_POST["password"];

$sql = "SELECT login FROM adherant WHERE login ='$identifiant' AND password ='$passwd'";
$result = mysql_query($sql);

while ($ligne = mysql_fetch_array($result))
{
$identifiant = $ligne['login'];
$passwd = $ligne['password'];
}

$nbLigne=mysql_num_rows($result);

if ($nbLigne==0)
{

}
else
{
$_SESSION['identifiant']= $identifiant;
$_SESSION['password']= $passwd;
}

?>
</html>
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 déc. 2008 à 16:49
Vérifie que la connexion se passe bien. Et fait un echo sur ta requête puis execute la dans phpMyadmin pour être sur qu'elle est bonne.
0

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

Posez votre question
la connexion au serveur est bonne des de coté (free et easyphp) les requets aussi mais si localhost quand je m'identifie avec un login et mot de passe sa m'achiffe se message :

Notice: Undefined index: password in D:\DOCUMENT\Site\MON SITE\authentification.php on line 23

mais cela fonctionne quand même il retourne sur la page index avec la session de l'identifiant. Sur free sa redirige vers l'index mais il ne se passe rien, aucune session d'ouvert
0
???
0
????
0
personne pour m'aider
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
21 déc. 2008 à 12:56
Postes un nouveau sujet, et arrêtes de "upper" s'il te plaît.
--
Sylvain
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 déc. 2008 à 13:10
Wep, j'avoue que le problème initial étant résolu, et comme j'ai pas des masses de temps ce week end, je préfèrerais que cette nouvelle question soit déléguée à quelqu'un d'autre :-)
0
Bonjour

alors en fait moi aussi j'ai eu ce probleme : voici mon code (c'est pas une histoire de BOM ^^), vous allez tout de suite comprendre.
un fichier haut.inc.php

<?php session_start(); ?>

<!DOC...

un fichier incluant haut.inc.php

<?php include("haut.php"); ?>

et ben la j'avais les avertissemnt deviner pourquoi ?
les 3 espace avant le include ... (bon en fait cétait des tabulation ^^)
donc si votre déclaration session_start ce trouve dans un fichier include regarder plutot dans le / les fichier qui font appelle a lui.

Voila jespere vous avoir répondu
0
pardon je me suis mal exprimer et en plus j'ai fait une faute :

la syntaxe est plutot :

<?php include("haut.inc.php"); ?>

et les 3 espace sont devant le <?php include( ...

^^ Cordialement
0
Quand j'ai rencontré cette erreur, ma page était programmé ainsi :
............................
require('fonction.php');
session_start();
.................................

-> J'ai trouvé l'erreur en 7 - 8 minute :)

Voici ma page sans l'erreur :
.............................
session_start();
require('fonction.php');
.................................
0
Bonjour,

Je suis en train de creer un espace client pour un site internet hors quand je valide mon login et mot de passe voila ce qui s'affiche:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.136/dcvidloo/www/site3/index.php:7) in /homez.136/dcvidloo/www/site3/login.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /homez.136/dcvidloo/www/site3/index.php:7) in /homez.136/dcvidloo/www/site3/login.php on line 21

pour information login.php est intégré à index par un include

<div id="login">
<?php include("login.php"); ?>
</div>

Quelqu'un aurait-il la possibilité de me dire où ça coince??
0
Salut,


Un grand merci a tous, apres avoir cherche pendant 2 heures le pourquoi de ce message d'erreur
et c'etait a cause d'un fichier encode en UTF-8, passe a ANSI et ca a remache directe!
Merci!
0
razuki Messages postés 242 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 5 décembre 2012 1
28 sept. 2010 à 16:41
Bonjour,
J'étudie le fonctionnement de la solution opensource OSSIM qui est un logiciel de collecte, de traitement de log et de supervision de réseau à partir d'une interface Web.
La partie Web me pose problème. En fait, quand je tape http://localhost/ossim/index.php dans le navigateur, il m'affiche l'erreur et les trois warnings :

An error occured: XML data could not be loaded. Make sure you specified the correct path.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /opt/ossim/include/classes/Security.inc:79) in /opt/ossim/include/classes/Session.inc on line 88

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /opt/ossim/include/classes/Security.inc:79) in /opt/ossim/include/classes/Session.inc on line 88

Warning: Cannot modify header information - headers already sent by (output started at /opt/ossim/include/classes/Security.inc:79) in /opt/ossim/include/classes/Session.inc on line 381



j'ai du mal à comprendre ( je suis débutant en ce qui concerne le dev web ...) mais j'ai déja lu tous ces posts au dessus.

-- Ces liens montrent que s'il y a un meme un seul espace entre session_start( ) et le début du code, ca ne fonctionne pas ...
-- Quand j'enlève tout ce qu'il y a avant l'appel de fonction session_start( ), ou quand je commente cet appel de fonction, j'ai plus ces warnings mais je me demande bien si cela ne va pas modifier le comportement du programme... du coup j'ai annulé les modifs et j'ai laissé le fichier tel qu'il etait au tout début.
-- pourquoi les developpeurs d'OSSIM auraient appeler cette fonction session_start après avoir mis des commentaires et d'autres code si on ne peut pas faire cela? ( car dans les liens ci-dessus, on dit qu'il ne faut rien mettre entre le début du code php et l'appel de la fonction session_start( ) ... )

Est ce que quelqu'un aurait une idée de ce que je dois faire/tester car je suis un peu confus.

Merci d'avance
0
deuxieme solution, si tu n'as pas le choix que de mettre le session start en premier caractere de ta page, tu mets un @ :

Comme ça :

@session_start();

Le @ fait que meme si un message d erreur apparait, elle ne s affiche pas
0
fleetwoodmac
22 avril 2011 à 20:22
Bonjour à tous,

j'ai moi aussi des problèmes avec utf-8 session_start()

J'ai trouvé sur le forum une super soluce :

http://www.commentcamarche.net/forum/affich-6039112-ereure-php-i

et ca marche impec

En espérant apporter une aide à certains :)

Fleet
0
donniecent Messages postés 19 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 1 juin 2012 27
Modifié par donniecent le 31/05/2012 à 09:51
Si vous avez un problème de ce genre vous devez placer votre session_start(); avant le Doctotype, et si l'érreur persiste, vous devez :

1 vérifier s'il n'y a pas un espace (MËME LE PLUS PETIT) ou un saut de ligne avant le session_start();.

2 vérifier que votre fichier est codé en UTF8 SANS BOM.

Admin de http://b2geek.com | A votre service.

b2geek . com | Site communautaire d'entraide domaine informatique, jeux vidéos, et bien plus
0
Walt34150 Messages postés 1 Date d'inscription samedi 5 juillet 2014 Statut Membre Dernière intervention 5 juillet 2014
5 juil. 2014 à 12:42
Mon probleme:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/adobozfr/public_html/index.php:1) in /home/adobozfr/public_html/data_classes/server-data.php_data_classes-core.php.php on line 4

Mon code:

<?php
require_once('./data_classes/server-data.php_data_classes-core.php.php');
session_start();

if(isset($_GET['registerCancel']) && FilterText($_GET['registerCancel'] == "true")){
session_unset();
}

if(!session_is_registered(username)){

if(isset($_POST['username']) && isset($_POST['password'])){
$username = FilterText($_POST['username']);
$password = HoloHash($_POST['password'], $username);
$password2 = HoloHashMD5($_POST['password'], $username);

if(empty($username) || empty($_POST['password'])){
$login_error = "Usuário ou senha incorretos!";
} else {
$sql = mysql_query("SELECT id FROM users WHERE username = '".$username."' AND password = '".$password."' OR username = '".$username."' AND password = '".$password2."' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($sql) < 1){
$login_error = "El usuario o la contraseña son incorrectas!";
} else {
$userdata = mysql_fetch_assoc($sql);
$userid = $userdata['id'];
$ban = mysql_query("SELECT * FROM bans WHERE value = '".$username."' AND bantype = 'user' or value = '".$remote_ip."' AND bantype = 'ip' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($ban) < 1){

mysql_query("UPDATE users SET password = '".$password2."', ip_last = '".$remote_ip."' WHERE username = '".$username."'");

$_SESSION['username'] = $username;
$_SESSION['password'] = $password2;
if ($_POST['_login_remember_me'] == "true"){
setcookie("remember", "remember", time()+60*60*24*100, "/");
setcookie("rusername", $_SESSION['username'], time()+60*60*24*100, "/");
setcookie("rpassword", $_SESSION['password'], time()+60*60*24*100, "/");
}
header("location: $path/me"); exit;
} else {
$bandata = mysql_fetch_assoc($ban);
$timestamp = time();
if($bandata['expire'] > $timestamp){
$login_error = "Você foi banido por: \"" . $bandata['reason'] . "\" e acaba em: " . date('d.m.Y - H:i:s', $bandata['expire']) . ".";
} else {
mysql_query("DELETE FROM bans WHERE value = '".$username."' AND bantype = 'user' OR value = '".$remote_ip."' AND bantype = 'ip' LIMIT 1") or die(mysql_error());
mysql_query("UPDATE users SET password = '".$password2."', ip_last = '".$remote_ip."' WHERE username = '".$username."'");

$_SESSION['username'] = $username;
$_SESSION['password'] = $password2;
if ($_POST['_login_remember_me'] == "true"){
setcookie("remember", "remember", time()+60*60*24*100, "/");
setcookie("rusername", $_SESSION['username'], time()+60*60*24*100, "/");
setcookie("rpassword", $_SESSION['password'], time()+60*60*24*100, "/");
}
header("location: $path/me"); exit;
}
}
}
}
}



$body_id = "index";


?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $shortname; ?> - Entrar</title>
<link href="css/je4n.css" type="text/css" rel="stylesheet" media="all" />

<!-- DESIGNED & CODED BY JE4N / LOUIS -->
<!-- PROPERTY OF WWW.PIXELACAO.ZZ.MU -->

</head>
<body>
<center>
<?php if(isset($login_error)){ ?>
<div class="mensagem-erro">El usuario o la contraseña es incorrecto!</div>
<?php } ?>

<div class="top">
<div class="container">
<div class="logo">
<form action="" method="POST">
<form action="/account/submit" method="post">
<div class="input user">
<input type="text" name="username" id="credentials-email" placeholder="Usuario">
</div>
<div class="input pass">
<input type="password" name="password" id="credentials-password" placeholder="Contraseña">
</div>
<input type="submit" value="Entrar" id="credentials-submit" name="login">
</form>
</div>
</div>
</div><br clear="all"/>
<div class="main container">
<div class="padding main">
<div class="content left">
<div id="load_data">
<div class="je4n-registro">
<span><a href="/quickregister/start" style="text-decoration:none;">Regístrate ahora!</a></span>
</div>


</head>
<body >

<div class="content_box"><div class="content_box bottom">
<h3><?php echo $shortname; ?>, Crea tu avatar, construye salas, haz amigos y diviértete!</h3>
<p><?php echo $shortname; ?>, Un lugar divertido con gente divertida.</p>

</div>
</div>
</div>
</div>
<div class="index-online">
<span><?php echo $online_count; ?></span><p>
Usuarios online
</p>
</div>
<br clear="all"/>
</div> </div>
<div class="bottom container">
<?php require_once('./templates/index_footer.php'); ?>
</div>
</div>
</div>
<?php


} else {
header("location:me.php");
}

?>
</body>
</html>

Que faire ?
0