probleme variable de sesion
code connexion:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
<?php
/*on initialise la variables $connexion issue de $_POST
et on teste si le visiteur a soumis le formulaire de connexion*/
if (isset($_POST['connexion']) && ($_POST['connexion'] == "Connexion")) {
/*on initialise les variables issues de $_POST*/
if ((isset($_POST['login'])) && $_POST['login'] !="") $login = addslashes($_POST['login']); else $login = "";
/*on initialise et on vérifie que la variable n'est pas vide
puis on crypte md5+addslashes immédiatement la variable pass issue de $_POST*/
if ((isset($_POST['pass'])) && $_POST['pass'] !="") $pass = md5(addslashes($_POST['pass'])); else $pass = "";
/*on démarre la session*/
session_start();
/*on vérifie que les variables ne sont pas vides*/
if (($login == "") || ($pass == "")) {
$erreur = 'Au moins un des champs est vide.';
echo $erreur;
/*on termine le script*/
exit;
}
/*sinon on continue*/
else {
$base = mysql_connect ('mysql.webzzanine.net', '***', '****');
mysql_select_db ('*******', $base);
// on teste si une entrée de la base contient ce couple login / [pass crypté md5]
$sql = 'SELECT * FROM membre WHERE login="'.$login.'" AND pass_md5="'.$pass.'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
/*on récupère les données*/
$login_valid = $data['login'];
$pass_valid = $data['pass_md5'];
$email = $data['email'];
$skin = $data['skin'];
$piece = $data['piece'];
mysql_free_result($req);
mysql_close();
// si les variables correspondent, alors l'utilisateur est un membre
if($login == $login_valid && $pass == $pass_valid) {
/*on enregistre ses données en session*/
$_SESSION['login'] = $login_valid;
$_SESSION['email'] = $email;
$_SESSION['skin'] = $skin;
$_SESSION['piece'] = $piece+000;
header('Location: membre.php');
/*on termine le script*/
exit();
}
// si les variables ne correspondent pas, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
else {
$erreur = 'Compte non reconnu.';
echo $erreur;
/*on termine le script*/
exit;
}
}
}
?> |