Création d'un login et mot de passe securisé avec PHP/MySQL
Bonjour à tous,
Je me tourne vers vous car depuis quelque temps je tourne en rond et ne trouve pas de solution a mon problème. Je suis débutant en php/MySQL.
Je suis en train de créer un site perso et j'aimerais que mon nom d'utilisateur et mot de passe lié à celui-ci soit secure. Je m'explique j'ai cherché a ce que la saisie soit sensible a la casse mais je n'ai pas réussi a atteindre ce but et aussi a sécurisé l'acces aux autres pages en tant que membre.
Je voudrai pouvoir sniffer l'adresse ip du client pour s'assurer que ce soit bien la bonne personne mais aussi crypter le mot de passe.
Je ne sais pas si le md5 suffit ou si il faut une autre méthode de cryptage.
Ma page de vérification en php ressemble a ceci: (J'ai mis du code en commentaire je le laisse en suspend je ne sais pas lequel des deux est le mieu)
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| <?php
session_start();
function verification($nom,$pass)
{
$host='localhost';
$user='root';
$password='';
$bdd='xxx';
//$loginOK=false;
//On se connecte a la bdd
$link=mysql_connect($host,$user,$password) or die('Error de connexion'.mysql_error());
//On choisit la bonne base de donnée
mysql_select_db($bdd) or die('Erreur de sélection'.mysql_error());
$nom_sql=mysql_real_escape_string($nom);
$pass_sql=mysql_real_escape_string($pass);
$sql="SELECT * FROM user WHERE login='$nom_sql' AND pass='$pass_sql'";
$result=mysql_query($sql,$link);
if(mysql_num_rows($result)>0)
{
return TRUE;
}else{
return FALSE;
}
mysql_close();
}
if(isset($_POST['nom'])&& isset($_POST['motdepasse']))
{
//on les recupere
$nom=$_POST['nom'];
$motdepasse=$_POST['motdepasse'];
//on test si le mdp est valide
if(verification($nom,$motdepasse)){
session_regenerate_id();
//On sauvegarde son nom dans la session
$_SESSION['nom']=$nom;
$message='Bienvenue '.$nom;
}else{
$message='Mot de passe incorrect';
$message.='<a href="index.php">Retour</a>';
}
}else{
$message='Le login ou le mot de passe est vide';
$message.='<a href="index.php">Retour</a>';
}
/**if(isset($_POST) && (!empty($_POST['nom'])) && (!empty($_POST['motdepasse'])))
{
extract($_POST);
//Onva chercher le mot de passe afférent à ce login
$sql="SELECT * FROM user WHERE login='".$_POST['nom']."' AND pass='".$_POST['motdepasse']."'";
$req=mysql_query($sql) or die('Erreur SQL : <br />'.$sql.'<br />'.mysql_error());
//On verifie que l'utilisateur existe bien
if(mysql_num_rows($req)>0)
{
$data=mysql_fetch_assoc($req);
//On verifie que son mot de passe est correct
if($password==$data['motdepasse'])
{
$loginOK=true;
}
}
}
//Si le login a ete valide on met les donnees en sessions
if($loginOK)
{
} else{
header('location:index.php');
}**/
//On ferme la connexion avec la base de donnée
//mysql_close();
?>
<html>
<head><title>Identification</title></head>
<body><p>
<?php echo $message ?>
</p></body>
</html> |
Et ma page index.php est une simple page de saisi de nom utilisateur et mdp avec un bouton de validation qui transmet mon formulaire a la page vérification.
J'espère que vous pourrez m'aider.Et si jamais il manque des informations ou si vous avez des questions n'hésitez pas a me demander.
Merci d'avance.;)