Mots de passe php
roland999
Messages postés
35
Statut
Membre
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
salut voici mon code php
et je veux ajouter qu'il faut un minimum de 6 caractere pour que le mots de passe soit valider aider moi
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['prenoms']) && !empty($_POST['prenoms'])) && (isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = htmlentities('Les 2 mots de passe sont différents.');
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('gestiondecheque', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM utilisateur WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO utilisateur VALUES("","'.$_POST['nom'].'","'.$_POST['prenoms'].'","'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string(md5($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: index.php');
exit();
}
else {
$erreur = htmlentities('Un membre possède déjà ce login.');
}
}
}
else {
$erreur = htmlentities('Vous avez oublié de remplir tout les champs.');
}
}
?>
et je veux ajouter qu'il faut un minimum de 6 caractere pour que le mots de passe soit valider aider moi
2 réponses
-
Salut,
si tu veux avoir de l'aide, il vaudrait mieux que tu penses à utiliser les balises de code qui vont rendre ton code plus lisible...
Mis à part ça, quel est le soucis ? La fonction strlen compte le nombre de caractère d'une chaine, c'est une des premières fonctions qu'on apprend quand on débute le php. -
oui je le sais mais comment l integrer a mon code c'est ce que je demande
-
Es-tu sûr que c'est "ton code" pour poser une question pareille.
Tu crées une nouvelle condition à l'exécution de ton code présent dans les accolades internes qui traitent les données validées.
Unif (strlen($_POST['pass']) > 5)
devrait suffire.
Autrement, tu peux pousser un peu plus la validation, tu pourrais vérifier que le mot de passe comporte :
- de 6 à 25 caractères (ou une autre limite)
- une lettre minuscule au moins
- une lettre majuscule au moins
- un chiffre au moins
Tu peux alors faire comme cela :
// code en lignes 1 à 10 if (preg_match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,25}$/, $_POST['pass'])) { // code en lignes 11 à 30 } else { $erreur = htmlentities('Le mot de passe doit comporter de 5 à 25 caractères, au moins une majuscule et une minuscule, et au moins un chiffre.'); } // code en lignes 31 à 37
Si cela ne te plait pas met ton strlen à la place du preg_match.
Dal
-