Bonjours à tous et à toutes.

Je reviens de php.net et je suis un peu paumé par rapport à toutes les commandes de sécurisation de variable, entre htmlspecialschars, htmlentites, mysql_......
Donc voila, je vais définir quelques situations, et je voudrais juste savoir si j'ai choisie les bonnes fonctions pour ça =)
Pour chaque situations, la première ligne serra pour l'enregistrement (E: -> mysql_query(....), la seconde serra pour l'affichage (A: -> echo ...).
Ps: oublions que les magics quotes existent pour ce cas

1) Une variable de pseudo (alphanum + "-" + "_")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
E: regex "preg_match('#^[0-9A-Za-z-_]*$#',$var)" 
  //et si ça passe-> 
mysql_real_escape_string($var)
A: htmlentities($donnees['var'], ENT_QUOTES) //($donnees ou $_POST)
2) Un variable de mot de passe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
E: md5($var)  [ça suffis ?]
A : if($donnees['var'] == md5($_POST['pass']))
//Je préfère ne sélectionner que le nom d'utilisateur dans la table et vérifier le pass par la suite.

3) Une chaine de caractère sans html interprété (style chat)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
E: mysql_real_escape_string($var)
A: htmlentities($var, ENT_QUOTES)
4) Une chaine de caractères html (partiel) autorisé (style forum)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
E: mysql_real_escape_string(stiptags(bbcode($var)))
A: bbcode_decode(stripslashes($var));
//bbcode() & bbcode_decode() -> fonction perso qui remplace les balises autorisées en bbcode
5) une chaine de caractère html (complet) autorisé (style backend news (editeur WYSIWYG))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
E: mysql_real_escape_string(htmlentities($var)) 
A: html_entity_decode(stripslashes($var)) [ou htmlspecialchars là ?]

Si vous voyez d'autre situations, ou que vous avez d'autre conseil, je suis preneur

Merci d'avance


Edit: ah ouais, et aussi: pour faire un cookie "sur" il faut faire un id compliqué.
un truc du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sha1(md5($user['ip_denregistrement']).$user['password'].md5($user['date_denregistrement']))
Vous parrait il correct ?