Problème avec fichier de login pour espace membres

Signaler
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Salut à tous !!!



Je suis en train de faire un espace membres et voici ce qu'il y a dans
le fichier de login (après la page de formulaire de login) :



<?

include ('conf.php');

$login= $_POST['login'];

$password=$_POST['password'];

$mail=$_POST['mail'];

if($login=='' || $password=='' || $mail=='')

{


echo '<script language=javascript> alert
("Vous avez oublié de remplir un champ.");</script>';

include('form_login.php');

exit;

}


$sql =
mysql_connect($mysql_host,$mysql_login,$mysql_passe);;

$req = mysql_query($sql);

ligne 14 > $data = mysql_fetch_array($req);

if($data['password'] != $password)

{


echo '<script language=javascript> alert
("Mauvais login / password. Merci de recommencer");</script>';

include('form_login.php');

exit;

}

else

{

session_start();

session_register("login");

header ('location:index.php');

}

?>



mais lorsque je suis connecté, il y a une erreur :



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sdb/7/d/seguin.florent/login.php on line 14



Pouvez-vous m'aider SVP ???



Merci



@+

31 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
tu ne peux pas placer de header après un echo !!
il faut faire autrement (sur la page login, avertissement
du genre "un email vous sera envoyé pour confirmation d'inscription")
et tu squeezes le echo
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
c'est bon

mais encore un problème :



normalement, quand un membre prend le nom d'un autre lors de
l'inscription, il y a marqué que le pseudo existe déja mais j'ai essayé
de le faire et il n'y a pas marqué.



Code :



<?

require 'conf.php';

$login=$_POST["login"];

$mysqllogin = "***";

$password=$_POST["password"];

$mail=$_POST["mail"];

$login = strtolower($login);

$password = strtolower($password);

$mail = strtolower($mail);

if($login=="" || $password=="" || $mail=="")

{

echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>';

include('form_inscrip.php');

exit;

}

$sql = "SELECT login FROM membres_tbl WHERE login='$mysqllogin' ";



$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

$data = mysql_fetch_array($req);



if($data['login']==$login)

{

echo '<script
language=javascript> alert ("Votre pseudo est déja
pris");</script>';

include('form_inscrip.php');

}

else

{

header ('location:form_login.php');

}

?>
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
est-ce que tu as MSN ? Ca pourrait éviter de saturer le forum
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
je ne comprends pas tout
si c'est une inscription le login ne doit pas exister
if($data) //tout court, si on trouve --> erreur

de toutes façons, derrière un alert on ne peut que repondre OK et la page continue c'est à dire --> include('form_inscrip.php');
----------------------------------------------------------
echo '<script language=javascript> alert ("Vous avez oublié de remplir un champ");</script>';

et ça, tu es sûr que ça marche, il t'affiche bien l'alerte ?? regarde le source
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
cette fois c'est un login
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
mais lorsque je veux me connecter, il y a marqué que le MDP n'est pas
bon, alors que j'ai vérifié dans la BDD, c'est celui-là et aussi, le
MDP présent dans la BDD n'est pas codé.
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
Si je ne remplis pas un champs, il affiche l'alerte
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
non pas msn

et là je ne vois pas le code login.php
Messages postés
150
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
31 août 2008
1
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

t'as pas l'air de chercher un peu par toi-même sur des sites faisant mention de cours de PHP...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"si c'est une inscription le login ne doit pas exister
if($data) //tout court, si on trouve --> erreur"
$sql "SELECT COUNT(*) FROM table WHERE login '".$login."' ";
$q = mysql_query($sql);
$data = mysql_fetch_row($q);
if ( $data[0] === '1' ) die('Erreur, login déja pris');