Se logger en php

Fermé
aquievreux Messages postés 2 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 13 avril 2010 - 12 avril 2010 à 11:05
aquievreux Messages postés 2 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 13 avril 2010 - 13 avril 2010 à 09:36
Bonjour, j'ai un pb, je suis en train de créer un formulaire permettant de se logger pour un accés au site, cependant le code que j'ai trouvé et modifié comporte une erreur, car lors de la connexion le serveur internet s'arréte, cependant le login et mot de passe sont bien présent dans ma base de données.
Merci de m'aider c'est assez urgent.
Voici le code :


<?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('djp', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
//<p><strong>Vous êtes bien connecté !!!!</strong></p>
header('Location: deco.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>

<html>
<head>
<title>Accueil</title>
</head>

<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php

if (isset($erreur)) echo '<br /><br />',$erreur;
?>

<a href="formulaire.php?id=1"><p><strong>Bon d'intervention sur site : fiche à remplir</strong></p></a>

</body>
</html>

A voir également:

1 réponse

aquievreux Messages postés 2 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 13 avril 2010
13 avril 2010 à 09:36
Pour moi aprés longue étude l'erreur viendrai d'ici :

<?php
// on teste si une entrée de la base contient ce couple login / pass 
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
$data = mysql_fetch_array($req);
//var_dump($data);
?>



Car lorsque j'effectue une inscription tout fonctionne bien, si je ne me deconnecte pas il retrouve le membre lors de l'identification. Cependant lorsque je me déconnecte, et que je cherche par la suite à réidentifier ce même membre il ne le trouve plus.
L'erreur viendrai t-elle de ma requête??
0