Logger des utilisateurs

Fermé
atk - 27 mai 2014 à 12:35
 Utilisateur anonyme - 27 mai 2014 à 15:56
Bonjour,



j'essaie de créer une page permettant de logger les utilisateurs sur la base de donnée, mais cela ne marche pas, il m'indique que l'utilisateur ou mdp n'est pas bon, j'ai du me tromper quelque part mais je ne vois pas ou vous pouvez m'aider ? Les utilisateurs seront pris dans une table users avec id pass et login.

Voici le code :

<meta charset="utf-8" />
<title>Se connecter</title>
<h1>Connexion</h1>


<?php

session_start();

if(isset($_POST['submit']))
{
$login = htmlspecialchars(trim($_POST['login']));
$pwd = htmlspecialchars(trim($_POST['pwd']));


if(empty($login))
{
echo "<strong>Veuillez saisir votre login</strong>";
}
elseif(empty($pwd))
{
echo "<strong>Veuillez saisir votre mot de passe</strong>";
}
else
{
mysql_connect("localhost","root","");
mysql_select_db("cinema");
$pwd = sha1($pwd);
$pseudo = mysql_query("SELECT * FROM users WHERE login='$login' AND pwd='$pwd' ");
$rows = @mysql_num_rows($pseudo);

if($rows == 1)
{
$_SESSION['login'] = $login;
header('location:cinelogin.php');
}
else
{
echo "<strong>Le nom d'utilisateur ou le mot de passe est incorrect !</strong>";
}
}
}


?>

<form method="post" action="">

<label for="login">Login</label><br/>
<input type="text" name="login" id="login"/><br/>

<label>Mot de passe</label><br/>
<input type="password" name="pwd" id="pwd"/><br/><br/>

<input type="submit" name="submit" value="Se connecter" />



</form>

<a href="inscription.php">Je souhaite m'inscrire</a>

7 réponses

Utilisateur anonyme
27 mai 2014 à 13:54
Bonjour

Il y a peut-être une erreur dans ta requête. Pour vérifier, modifie ta ligne :
$pseudo = mysql_query("SELECT * FROM users WHERE login='$login' AND pwd='$pwd' ") or die(mysql_error()); 
0
Utilisateur anonyme
27 mai 2014 à 13:58
Remarques :
- tu ferais mieux d'utiliser PDO
- ton @ sur mysql_num_rows n'est pas logique : une erreur n'est pratiquement possible ici que s'il y a eu une erreur sur le mysql_query qui précède. Tant qu'à utiliser le @ (ce qui est généralement une mauvaise idée) autant le mettre sur la cause première.

Mais c'est une autre histoire.
0
Bonjour,

j'avais en effet une erreur, dans ma bdd c'était "pass" et j'avais mis pwd, par contre même en changeant cela, ça ne trouve toujours pas les utilisateurs..."erreur de pseudo/mdp" alors que ceux ci sont bien présent.

Je suis débutant en mysql et j'avoue ne pas trop savoir comment utiliser PDO
0
As-tu mis en place le mysql_error() ? T'affiche-t-il encore une erreur maintenant ?
Tu peux aussi ajouter
echo $rows;
après
$rows = mysql_num_rows($pseudo); 
: est-ce que tu vois le zéro s'afficher, ou autre chose, ou rien du tout ?
0
Oui oui j'ai bien laissé le mysql error mais il ne m'indique pas d'erreur :/ Si je met l'echo il m'affiche 0
0

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

Posez votre question
Utilisateur anonyme
27 mai 2014 à 14:40
Alors, c'est que contrairement à ce que tu dis, aucun couple utilisateur - mot de passe ne correspond.
As-tu bien fait l'enregistrement de tes utilisateurs et mot de passe en utilisant les mêmes fonctions que pour les retrouver, c'est à dire htmlspecialchars et sha1 ?
Fais un echo de $login et $pwd juste avant ton mysql_query pour t'assurer.
0
Pour l'inscription je ne crois pas avoir utiliser les mêmes fonctions, le soucis viendrait de là ?

J'ai fais l'echo de pwd et login, cela ne m'affiche rien du tout
0
C'est bon j'ai compris c'est parce que j'avais sha1 en effet je l'avais pas mis dans l'autre dossier php donc évidemment erreur de mdp... Merci beaucoup pour ton aide !

j'aurais une autre petit question, j'aimerais faire une connexion pour user courant et un autre pour admin et je sais pas trop comment faire. Je pense que dans la table il faut créer "type" qui va définir courant et admin mais après je suis un peu largué
0
Utilisateur anonyme
27 mai 2014 à 15:56
de rien :)
0