Bonjour à tous, j'ai essayer de faire un formulaire d'identification pour mon site , l'inscription se passe correctement , quand je test l'identification en local ca va sans problème mais quand je test sur mon serveur, j'ai un message d'erreur de ce type
Warning: Cannot send session cookie - headers already sent by (output started at /home/poupsylo/friends/page/login.php:7) in /home/poupsylo/friends/page/login.php on line 49
Je ne comprends pas du tout d'ou vient le probleme, quelqu'un pourrait-il m'aider svp
voici le code de ma page
Code:
<?php include "../include/menu.php"; ?>
<div class="princ"> <h1>Login</h1> <? // pensez a ouvrir une connexion vers mysql ici // voir les exercices dans le menu de droite pour cela.
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) { extract($_POST); // on recupère le password de la table qui correspond au login du visiteur $sql = "select pass from friends where pseudo='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pass'] != $pass) { echo '<p>Mauvais login / password. Merci de recommencer</p>'; include('loginbis.php'); // On inclus le formulaire d'identification exit; } else { session_start(); $_SESSION['pseudo'] = $login;
echo 'Vous etes bien logué'; // ici vous pouvez afficher un lien pour renvoyer // vers la page d'accueil de votre espace membres } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include "loginbis.php" ; // On inclut le formulaire d'identification exit; }
?>
Merci
« Dernière Édition: le 15-12-2004 a 19:24:29 par poupsylo »
Tu dois envoyer les entetes avant tout code html : c'est comme ça pour les fonctions header(), session_start(), set_cookie() ... http://www.phpdebutant.org/article69.php Tu peux par exemple mettre le session_start() dès le début, puis n'enregistrer la variable $_SESSION['pseudo'] que si les identifiants sont bons.
Ca donnerait :
Code:
<?php session_start(); include "../include/menu.php"; ?>
<div class="princ"> <h1>Login</h1> <?
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) { extract($_POST); // on recupère le password de la table qui correspond au login du visiteur $sql = "select pass from friends where pseudo='".$login."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pass'] != $pass) { echo '<p>Mauvais login / password. Merci de recommencer</p>'; include('loginbis.php'); // On inclus le formulaire d'identification exit(); } else { $_SESSION['pseudo'] = $login;
echo 'Vous etes bien logué'; // ici vous pouvez afficher un lien pour renvoyer // vers la page d'accueil de votre espace membres } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include "loginbis.php" ; // On inclut le formulaire d'identification exit(); }
Malherueusement ca ne marche pas , je viens de suivre 3 tuto a la lettrre pour creer un systeme d'identification et aucun ne marche , le probleme peut il venir de mon serveur ?
je l'ai fait , j'ai bien remis a chaques fois le session strat avant tout autre caractere mais rien n'y fait , j'ai tjrs ce problème, une simple redirection avec header me pose probleme et me retourne ce même message d'erreur
En local tjrs aucun problème, voila pourquoi je demande si ca peut provenir du serveur ?
resalu , desoler d'avoir ete si lent à repondre mais bon me suis bien arraché les cheveux avec cette histoire d'identification , pour finir a totalement proceder autrement et a me debarasser du probleme qu ej'avais , mais bien entendu , on regle un probleme et un autre survient c'est la logique meme :@