Bug Login

Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 10 avril 2006 à 17:58
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 11 avril 2006 à 00:11
(Re)Bonjour (2eme post de la journée tout va bien ...),

Alors cette fois-ci ce n'est plus dans un formulaire que j'ai un problème, c'est pour le login.
Enfaite, lorsque l'utilisateur entre User"(-'(yert'" comme pseudo par exemple, bah mon code plante lamentablement, j'ai une page blanche qui s'affiche au lieu de m'indiquer d'où proviendrait l'erreur :-/

Voici mon code dans login.php :

<?PHP
include("../../class/sql/mysql.php");
include("../../class/getvar.fc.php");
$login = postvar("login",0,0,0,1,1);
$pass = postvar("pass",0,0,0,1,1);
$connexion_perm = postvar("connexion_perm");
$erreur = "";

if(empty($login) || empty($pass)) {
$erreur.="Vous n'avez pas correctement renseigné les champs d'identification.
";
}
elseif(!ctype_alnum($login) || !ctype_alnum($pass)) {
$erreur.="L'identifiant et le mot de passe ne peuvent être que des caractères alphanumériques (A-Z;a-z:0-9) !
";
}
else {
$req = new mysql;
$pass=md5($pass);
$select=$req->sq("SELECT * FROM member WHERE `login`='{1}' AND `pass`='{2}'", $login, $pass);

$row = $req->fetch_row($select);

if(!$row) {
$erreur.="L'identifiant entré et/ou le mot de passe ne sont pas valides. Veuillez recommencer.
";
}
elseif ($row[6]!="1") { $erreur.= "Votre compte n'est pas activé.
Vérifiez que vous l'avez bien activé via l'email qui vous a été envoyé lors de votre inscription."; }
if(empty($erreur)) {
if(!empty($connexion_perm)) {
$exp=time()+3650*24*3600;
setcookie("login",$login,$exp,"/");
setcookie("pass",$pass,$exp,"/");
}
$level = $row[4];
$_SESSION['login'] = $login;
$_SESSION['level'] = $level;
echo "Bienvenue ".$_SESSION['login']." !

Vous avez été identifié(e) avec succès.
Vous avez maintenant accès à l'ensemble du site.

Bonne visite !";
//header("Location: http://localhost/index.php");
}
else {
echo "Les erreurs suivantes ont été relevées lors de votre identification :
";
echo $erreur."

";
}
}
?>

Voilà donc je comprend vraiment pas parce que si c'est pas alphanumerique normalement ça me retourne l'erreur tranquilou donc :(

Sinon serait possible de m'indiquer comment rediriger vers l'index après login (parce que la mon header est bidon, je crois) sans javascript (parce que y a toujours des boulets pour pas activer JS ^^)

(Re)Merci d'avance.

Cordialement,
Zupi, toujours dépressif.

8 réponses

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
10 avril 2006 à 19:38
Affiche ton $login avant de faire ta requête... tu auras peut être besoin de faire un addslashes
http://www.phpcs.com/codes/GERER-ECHAPPEMENTS-CARACTERES-SUR-TABLEAUX-MULTIDIMENSIONNELS_29889.aspx

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 20:26
Salut,

c'est le même conseil qu'un post posté aujourd'hui :

if(get_magic_quotes_gpc()===0)
{
$login=mysql_real_escape_string($login);
$pass=mysql_real_escape_string($pass);
}

tu mets ça avant ta requête, et t'auras plus de problèmes.

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
10 avril 2006 à 20:32
Bah j'ai mis ça juste avant ma requête et j'ai toujours cette satanée page blanche :(

Code actuel :

<?PHP
include("../../class/sql/mysql.php");
include("../../class/getvar.fc.php");
$login = postvar("login",0,0,0,1,1);
$pass = postvar("pass",0,0,0,1,1);

$connexion_perm = postvar("connexion_perm");
$erreur = "";

if(empty($login) || empty($pass)) {
$erreur.="Vous n'avez pas correctement renseigné les champs d'identification.
";
}
elseif(!ctype_alnum($login) || !ctype_alnum($pass)) {
$erreur.="L'identifiant et le mot de passe ne peuvent être que des caractères alphanumériques (A-Z;a-z:0-9) !
";
}
else {
if(get_magic_quotes_gpc()===0)
{
$login=mysql_real_escape_string($login);
$pass=mysql_real_escape_string($pass);
}
$req = new mysql;
$pass=md5($pass);
$select=$req->sq("SELECT * FROM member WHERE `login`='{1}' AND `pass`='{2}'", $login, $pass);

$row = $req->fetch_row($select);

if(!$row) {
$erreur.="L'identifiant entré et/ou le mot de passe ne sont pas valides. Veuillez recommencer.
";
}
elseif ($row[6]!="1") { $erreur.= "Votre compte n'est pas activé.
Vérifiez que vous l'avez bien activé via l'email qui vous a été envoyé lors de votre inscription."; }
if(empty($erreur)) {
if(!empty($connexion_perm)) {
$exp=time()+3650*24*3600;
setcookie("login",$login,$exp,"/");
setcookie("pass",$pass,$exp,"/");
}
$level = $row[4];
$_SESSION['login'] = $login;
$_SESSION['level'] = $level;
echo "Bienvenue ".$_SESSION['login']." !

Vous avez été identifié(e) avec succès.
Vous avez maintenant accès à l'ensemble du site.

Bonne visite !";
//header("Location: http://localhost/index.php");
}
else {
echo "Les erreurs suivantes ont été relevées lors de votre identification :
";
echo $erreur."

";
}
}
?>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 22:07
Met l'error_reporting à E_ALL et les register_globals à Off

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
10 avril 2006 à 22:17
Euuuhhh comment je fais ça ?
0
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
10 avril 2006 à 22:19
J'utilise Wamp pour info si on doit toucher à la config
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 avril 2006 à 23:45
Ah bah ça doit déjà être le cas alors pour tout ça... Bref si t'as une page blanche, décompose ton script, fais des echos avant les principales fonctions pour voir d'où le problème vient.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
11 avril 2006 à 00:11
Pfff chu vraiment désole chu un gros boulet, je m'étais embrouiller dans les elseif les if etc ... j'ai tout corrigé, il n'y avait pas de soucis dans les fonctions simplement dans l'affichage de l'erreur :)

Merci à vous deux !

Bonne continuation
0
Rejoignez-nous