# PHP > PHP & Base de donnes > [MySQL] Cration d'un login et mot de passe securis avec PHP/MySQL

## NicoMontreal91

Bonjour  tous,

Je me tourne vers vous car depuis quelque temps je tourne en rond et ne trouve pas de solution a mon problme. Je suis dbutant en php/MySQL.
Je suis en train de crer 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 russi a atteindre ce but et aussi a scuris 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 mthode de cryptage.
Ma page de vrification 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)



```

```

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 vrification.

J'espre que vous pourrez m'aider.Et si jamais il manque des informations ou si vous avez des questions n'hsitez pas a me demander.

Merci d'avance. :;):

----------


## sabotage

> j'ai cherch a ce que la saisie soit sensible a la casse


Ca doit dej tre le cas avec ton code actuel non ?



> scuris l'acces aux autres pages en tant que membre.


tu verifies pour les pages restreintes les informations que tu as mis en session lors de la verification d'identit.



> Je voudrai pouvoir sniffer l'adresse ip du client pour s'assurer que ce soit bien la bonne personne


la c'est une mauvaise methode : ton utilisateur ne pourrait plus se connecter s'il  changeait d'ip ni utiliser un autre poste.


```
 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.
```

pour etre prcis, MD5 ne chiffre pas, il fait une empreinte.
Cela n'apporte pas une scurit magique venu de l'espace interstellaire durant l'authentification. Cela permet juste que le vrai mot de passe ne soit pas conserv dans la base de donne et tu compares donc l'empreinte de ce qui as t saisi avec l'empreinte que tu as dans la base.
Au lieu d'enregistrer le mot de passe de l'utilisateur dans la base, tu enregistres md5($motdepasse);
Et quand tu veux vrifier tu regardes 


```
$sql="SELECT * FROM user WHERE login='$nom_sql' AND pass='" . md5($pass_saisi) . "'";
```

----------


## NicoMontreal91

Pour la sensibilit a la casse non ce n'est pas le cas quand je saisi le meme user mais avec une casse diffrente a fonctionne quand meme (sur ma page Login)
Je veux que par exemple l'user Henri ne puisse se connecter qu'en tant qu'Henri et non pas aussi HenRI etc....
Idem pour le mot de passe.
Merci pour le md5 et les informations apportes.
Si j'ai d'autres questions au fil de l'avancement puis-je revenir vers toi?
Merci en tout cas  :;):

----------


## sabotage

Cela doit venir de l'interclassement de ta colonne.
latin1_swedish_ci par exemple est insensible a la casse donc il considere que "A" = "a".
change ton interclassement par son equivalent _bin (binaire) ou _cs (case sensitive).

----------


## mathieu

pour faire une comparaison sensible  la casse tu peux utiliser "LIKE BINARY" comme a : 


```
$sql="SELECT * FROM user WHERE login LIKE BINARY '$nom_sql' AND pass LIKE BINARY '$pass_sql'";
```

ensuite l'utilisation de la fonction de hachage "MD5" ne scurise pas ton mot de passe, si tu veux transmettre ton mot de passe de faon chiffre, utilise HTTPS

----------


## NicoMontreal91

J'ai change l'interclassement et tout fonctionne correctement  ::D: 
Il ne me reste plus qu'a faire du md5 sur le mot de passe  :;): 

Merci encore  ::yaisse2::

----------

