Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: poupsylo le le 15-12-2004 a 18:57:38

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.