A voir également:
- Cannot send session...
- Local send - Télécharger - Divers Utilitaires
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Cannot find required map name - Forum BIOS
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
- Session invalide ou obsolète ✓ - Forum finances
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 :-)
adgem0
Messages postés
119
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
7 mai 2010
160
19 juin 2008 à 20:20
19 juin 2008 à 20:20
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.
adgem0
Messages postés
119
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
7 mai 2010
160
20 juin 2008 à 09:22
20 juin 2008 à 09:22
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
adgem0
Messages postés
119
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
7 mai 2010
160
27 juin 2008 à 11:08
27 juin 2008 à 11:08
C'est quoi l'adresse de ton site ?