Cannot send session...
competizione360
-
competizione360 -
competizione360 -
Bonjour à tous,
Je suis en train d 'héberger un site chez free, malheureusement j'ai cette double erreur:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:16) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 5
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:16) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 5
Voici le début de mon fichier connexion.php:
[code]
<?php
include('../include/entete2.php');
echo'<link href="../style/style.css" rel="stylesheet" type="text/css"/>';
session_start();
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
echo "</div>";
/code
et le début de mon fichier entete2.php:
[code]
<?php
echo'<head>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>'
?>
/code
Je suis en train d 'héberger un site chez free, malheureusement j'ai cette double erreur:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:16) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 5
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:16) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 5
Voici le début de mon fichier connexion.php:
[code]
<?php
include('../include/entete2.php');
echo'<link href="../style/style.css" rel="stylesheet" type="text/css"/>';
session_start();
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
echo "</div>";
/code
et le début de mon fichier entete2.php:
[code]
<?php
echo'<head>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>'
?>
/code
A voir également:
- Cannot send session...
- Local send - Télécharger - Divers Utilitaires
- Send personally - Télécharger - Gestion de données
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Cannot play jvc - Forum Autoradio
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
7 réponses
Apparemment il ne s'agit pas de problèmes d'espace, et j'ai ajouté un dossier "sessions" à la racine de mon site.
Pourriez -vous m'éclairer? merci d'avance :-)
Pourriez -vous m'éclairer? merci d'avance :-)
Ton session_start doit se trouver avant tout les autres trucs.
Place le dans ton fichier entete2.php en première position, c'est à dire avant
echo '<head>';
Place le dans ton fichier entete2.php en première position, c'est à dire avant
echo '<head>';
Merci pour ton aide,
Mais désormais, lorsque je me log, j'ai cette erreur:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:17) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 69
voici mon code de connexion.php à partir d e la ligne 68
if (($data['id'] != 0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
//echo $_SESSION['login'];
header('Location: menu.php');
exit();
et mon code entete2.php
<?php
session_start();
echo'<head>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>'
?>
Malheureusement, ici j'ai beau déplacer le session start de mon connexion.php ligne 70 avant, çà ne fonctionne pas, peux-tu m'apporter ton aide à nouveau? merci d'avance.
Mais désormais, lorsque je me log, j'ai cette erreur:
Warning: Cannot modify header information - headers already sent by (output started at /mnt/138/sdb/8/a/toto/include/entete2.php:17) in /mnt/138/sdb/8/a/toto/admin/connexion.php on line 69
voici mon code de connexion.php à partir d e la ligne 68
if (($data['id'] != 0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
//echo $_SESSION['login'];
header('Location: menu.php');
exit();
et mon code entete2.php
<?php
session_start();
echo'<head>
<link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>'
?>
Malheureusement, ici j'ai beau déplacer le session start de mon connexion.php ligne 70 avant, çà ne fonctionne pas, peux-tu m'apporter ton aide à nouveau? merci d'avance.
En haut de ton fichier entete2.php, tu dois inclure connexion.php :
<?php
include('../admin/connexion.php');
echo'<link href="style/style.css" rel="stylesheet" type="text/css"/>';
... et viens ensuite le reste de ton fichier entete2.php
Et le début de ton fichier connexion.php doit être :
<?php
session_start();
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
... et viens la suite de ton fichier connexion.php
Par contre dans tes pages, tu devras inclure entete2.php en première position.
<?php
include('../admin/connexion.php');
echo'<link href="style/style.css" rel="stylesheet" type="text/css"/>';
... et viens ensuite le reste de ton fichier entete2.php
Et le début de ton fichier connexion.php doit être :
<?php
session_start();
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
... et viens la suite de ton fichier connexion.php
Par contre dans tes pages, tu devras inclure entete2.php en première position.
Salut,
mets session_start() avant les include et vire le dans entete2.php parce que si y a 2 session_start() PHP essaye de créer 2 sessions donc erreur.
on fait pas un truc du genre :
je teste le login et si c'est bon j'ouvre la session
mais :
on ouvre la session
on teste le login
si le login est bon on donne accés à la page...
-------------------------------------------
sur mes sites j'ai un fichier session.inc.php qui fait :
on ouvre la session
on teste le login
si le login est mauvais j'affiche une page (code html contenu dans session.inc.php) qui dit que c'est pas bon et un petit exit(); à la fin pour empécher que ça affiche la page qui appelle l'inclusion
mets session_start() avant les include et vire le dans entete2.php parce que si y a 2 session_start() PHP essaye de créer 2 sessions donc erreur.
on fait pas un truc du genre :
je teste le login et si c'est bon j'ouvre la session
mais :
on ouvre la session
on teste le login
si le login est bon on donne accés à la page...
-------------------------------------------
sur mes sites j'ai un fichier session.inc.php qui fait :
on ouvre la session
on teste le login
si le login est mauvais j'affiche une page (code html contenu dans session.inc.php) qui dit que c'est pas bon et un petit exit(); à la fin pour empécher que ça affiche la page qui appelle l'inclusion
Merci à vous 2, mon fichier entete2.php (qui est en realité une simple banniière + bande menu en dessous)semble etre ok ainsi:
<?php
include('../admin/connexion.php');
echo'<link href="style/style.css" rel="stylesheet" type="text/css"/>';
?>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>
Malheureusement, en me connectant à la page connexion.php, j'ai une erreur 500 problème interne du serveur, voici mon code complet:
<?php
session_start();
include('../include/entete2.php');
echo'<link href="../style/style.css" rel="stylesheet" type="text/css"/>';
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
echo "</div>";
//sinon on affiche la page de connexion et d'inscription
}else{
echo '<div id="contenu"><br>
<br>
<h2>Connexion à l\'espace membre</h2>
<!------------------ CONNEXION --------------------->
<form action="connexion.php" method="post">
<table width="35%" border="0" align="center" cellspacing="0">
<tr>
<td><div align="right"><b>Login </b></div></td>
<td> <div align="left">
<input type="text" name="login"></div>
</td>
</tr>
<tr>
<td><div align="right"><strong>Mot de passe </strong></div></td>
<td> <div align="left">
<input type="password" name="pass"></div>
</td>
</tr>
</table>
<center><br>
<input type="submit" name="connexion" value="Connexion"><br><br>
</center>
</form>';
if (isset($erreur)) echo '<br />',$erreur;
echo' <!------------------------------ FIN CONNEXION ----------------------------------->
</div>';
}
?>
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
include('../include/cnx_bdd.php');
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT * FROM admin WHERE login="'.mysql_escape_string($_POST['login']).'" AND mdp="'.mysql_escape_string($_POST['pass']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
//echo "mdp : ".$data['mdp'];
//echo "data : ".$data['id'];
//si c'est la première fois que l'utilisateur se connecte
if (($data['id'] != 0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
//echo $_SESSION['login'];
header('Location: menu.php');
exit();
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
}elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, erreur de base de données
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
include('../include/footer2.php');
?>
Pouvez-vous m'eclairer? sinon j'envisage de refaire le tout différemment...
<?php
include('../admin/connexion.php');
echo'<link href="style/style.css" rel="stylesheet" type="text/css"/>';
?>
<body>
<div id="conteneur">
<h1 id="header"></h1>
<ul id="menu">
<li><a href="../index.php">Accueil</a></li>
<li><a href="../ameublement.php">Ameublement</a></li>
<li><a href="../deco.php">Décoration</a></li>
<li><a href="../divers.php">Divers</a></li>
<li><a href="../contact.php">Contacts</a></li>
</ul>
Malheureusement, en me connectant à la page connexion.php, j'ai une erreur 500 problème interne du serveur, voici mon code complet:
<?php
session_start();
include('../include/entete2.php');
echo'<link href="../style/style.css" rel="stylesheet" type="text/css"/>';
if (isset($_SESSION['login'])) {
$login=$_SESSION['login'];
header('Location: menu.php');
exit();
echo "</div>";
//sinon on affiche la page de connexion et d'inscription
}else{
echo '<div id="contenu"><br>
<br>
<h2>Connexion à l\'espace membre</h2>
<!------------------ CONNEXION --------------------->
<form action="connexion.php" method="post">
<table width="35%" border="0" align="center" cellspacing="0">
<tr>
<td><div align="right"><b>Login </b></div></td>
<td> <div align="left">
<input type="text" name="login"></div>
</td>
</tr>
<tr>
<td><div align="right"><strong>Mot de passe </strong></div></td>
<td> <div align="left">
<input type="password" name="pass"></div>
</td>
</tr>
</table>
<center><br>
<input type="submit" name="connexion" value="Connexion"><br><br>
</center>
</form>';
if (isset($erreur)) echo '<br />',$erreur;
echo' <!------------------------------ FIN CONNEXION ----------------------------------->
</div>';
}
?>
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
include('../include/cnx_bdd.php');
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT * FROM admin WHERE login="'.mysql_escape_string($_POST['login']).'" AND mdp="'.mysql_escape_string($_POST['pass']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
//echo "mdp : ".$data['mdp'];
//echo "data : ".$data['id'];
//si c'est la première fois que l'utilisateur se connecte
if (($data['id'] != 0)) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['id'] = $data['id'];
//echo $_SESSION['login'];
header('Location: menu.php');
exit();
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
}elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, erreur de base de données
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
include('../include/footer2.php');
?>
Pouvez-vous m'eclairer? sinon j'envisage de refaire le tout différemment...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je n'ai toujours pas réussi, aidez-moi svp!
est-ce que changer d'hebergeur (je suis actuellement chez free) pourrait résoudre le problème?
car mes sessions marchaient très bien en local sous easy php..
merci d'avance
est-ce que changer d'hebergeur (je suis actuellement chez free) pourrait résoudre le problème?
car mes sessions marchaient très bien en local sous easy php..
merci d'avance