Titre: probleme pour une identification
Posté par: poupsylo le le 15-12-2004 a 18:57:38
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 :) |
Titre: Re:probleme pour une identification
Posté par: MFred le le 15-12-2004 a 19:48:07
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(); }
?> |
|
|
Titre: Re:probleme pour une identification
Posté par: poupsylo le le 15-12-2004 a 20:18:38
| 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 ? |
Titre: Re:probleme pour une identification
Posté par: Titag le le 16-12-2004 a 10:53:10
Salut,
Si tu as le message " headers already sent" c'est que il y a quelque chose d'ecrit avant l'envoi du cookie.
Vérifie qu'il n'y a pas de ligne avant le "<?" ou même un espace. |
Titre: Re:probleme pour une identification
Posté par: poupsylo le le 16-12-2004 a 11:24:47
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 ? |
Titre: Re:probleme pour une identification
Posté par: Titag le le 16-12-2004 a 11:47:56
| Tu peux reposter le début de ton code stp ? |
Titre: Re:probleme pour une identification
Posté par: poupsylo le le 16-12-2004 a 16:07:30
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 :@
j'utilise mtn deux pages
l'une avec le formulaire pour entrer les donnees
Code:
<form action="login.php" method="post"> <p>Pseudo : <input type="text" name="pseudo" /></p> <p>Mot de passe : <input type="password" name="pass" /></p> <p><input type="submit" value="Log in" /></p> </form> |
|
Et l'autre qui traite mes données
Code:
<?php session_start(); if (isset($_POST['pseudo'])){ $pseudo = $_POST['pseudo']; $pass = $_POST['pass']; $connect = mysql_connect("localhost", "user", "pass"); mysql_select_db("table",$connect); $query = "SELECT * FROM friends WHERE". "(pseudo=\"".$pseudo. "\") AND (pass=\"".$pass."\")"; $res = mysql_query($query); $present = mysql_num_rows($res); if ($present == 1){ $row = mysql_fetch_array($res); $_SESSION['id_visiteur']= $row['id_visiteur']; $_SESSION['pseudo'] = $row['pseudo']; header("location:index.php"); } else{ echo "erreur de login"; } } ?> |
|
Cette pge me renvois une erreur de ce type
Code:
| Warning: Supplied argument is not a valid MySQL result resource in /home/poupsylo/friends/page/login.php on line 12 |
|
Et m"indique également erreur de login, pourtant je suis sur certain d'entrer le bon mot de passe
Quelqu'un peut-il me dire ce que je fais encore de travers :'( Desoelr d'etre casse pieds mais mes debut en php s'averent difficile
|
Titre: Re:probleme pour une identification
Posté par: poupsylo le le 17-12-2004 a 16:19:52
| je suis desoler d'avoir deranger mais j'ai finit par trouver le probleme , merci pour votre patience |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|