
le 05/06/2006 à 22:42
affichage donné=bug
Hello !
T'as relu ton code avant de le poster ?
T'es pas logique, sans logique t'y arriveras pas.
Tu déclares des variables qui n'ont rien à faire dans le code, tu n'initialises pas tes variables issues de $_POST pourtant ça serait tellement plus simple et plus propre.
Bref essaye ça :
Quelques remarques :
le pass est crypté et addslashé mais je te conseille aussi de le mettre en minuscules avec la fonction strtolower($variable); mais n'oublie pas de le mettre aussi en minuscule addslashé et crypté md5 dans la base lors de l'inscription de ton membre ou tu ne compareras pas 2 chaînes identiques.
@+...
T'as relu ton code avant de le poster ?
T'es pas logique, sans logique t'y arriveras pas.
Tu déclares des variables qui n'ont rien à faire dans le code, tu n'initialises pas tes variables issues de $_POST pourtant ça serait tellement plus simple et plus propre.
Bref essaye ça :
<?php
/*on démarre la session*/
session_start();
/*on initialise les variables issue de $_POST*/
if (isset($_POST['connexion'])) $connexion = $_POST['connexion']; else $connexion = "";
if (isset($_POST['login'])) $login = addslashes($_POST['login']); else $login = "";
/*on initialise et on crypte md5+addslashes immédiatement la variable pass issue de $_POST*/
if (isset($_POST['pass'])) $pass = md5(addslashes($_POST['pass'])); else $pass = "";
// on teste si le visiteur a soumis le formulaire de connexion
if ($connexion == 'Connexion') {
/*on vérifie que les variables ne sont pas vides*/
if (($login != "") && ($pass != "")) {
$base = mysql_connect ('mysql.webzzanine.net', 'user', 'pass');
mysql_select_db ('teamsseek-membre', $base);
// on teste si une entrée de la base contient ce couple login / [pass crypté md5]
$sql = 'SELECT count(*) FROM membre WHERE login="'.$login.'" AND pass_md5="'.$pass.'"';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$data = mysql_fetch_array($req);
$data = mysql_fetch_array($req);
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
/*on récuère les données du membre*/
$login_valid = $data['login'];
$pass_valid = $data['pass'];
$email = $data['email'];
mysql_free_result($req);
mysql_close();
/*on enregistre ses données en session*/
$_SESSION['login'] = $login_valid;
$_SESSION['email'] = $email;
header('Location: membre.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.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
Quelques remarques :
le pass est crypté et addslashé mais je te conseille aussi de le mettre en minuscules avec la fonction strtolower($variable); mais n'oublie pas de le mettre aussi en minuscule addslashé et crypté md5 dans la base lors de l'inscription de ton membre ou tu ne compareras pas 2 chaînes identiques.
@+...