IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mot de passe de minimum 8 caractères


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 51
    Points : 15
    Points
    15
    Par défaut Mot de passe de minimum 8 caractères
    Bonjour, j'ai cherché peu partout sur le site et ailleurs et je n'arrive pas à mettre en place l'obligation pour un utilisateur d'entrer un mdp de minimum 8 caractères.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    	public function addUser($nom, $prenom, $email, $pseudo, $passworda, $passwordb){
    		try{		
     
    			if($passworda != $passwordb){
    				echo "Les mots de passe doivent être identiques";
     
    				$passworda = $_POST['passworda'];  /* c'est ici où je ne suis certain de rien, le reste fonctionne normalement*/
    				$longueur = strlen($passworda);				
    				if ($longueur < 8) {
    					echo "Mot de passe trop court !";
    					return false;
    				}
    			} else {
     
    				$passworda = sha1($passworda);
     
    				$req=$this->db->prepare("select * from site where pseudo=?");
    				$req->execute(array($pseudo));
    				if($req->rowCount() !=0){
    					echo "Le pseudo est déjà pris ! ";
    					return false;
     
     
    				}else {
    					$passworda = sha1($passworda);
    					$reponse = $this->db->prepare("INSERT INTO site VALUES(Default,?,?,?,?,?)");
    					$reponse->execute(array($nom,$prenom,$email,$pseudo,$passworda));
    					return true;
    				}
    			}
    		}catch (PDOException $e){
    			echo $e->getMessage();
    		}
     
    	}
     
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce code ne fonctionne pas ?

    Au passage, cette ligne ne sert à rien, $passworda est déjà défini par la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $passworda = $_POST['passworda'];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 51
    Points : 15
    Points
    15
    Par défaut
    Je viens d'enlever la ligne comme tu me l'a dis. Je pense que mon erreur vient en fait de plus haut dans le code, sur une autre page j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     if(isset($_POST['inscription'])){
    	extract($_POST);
    	$rep=  new Connection('localhost', 'site', 'utf8', 'root', '');	
    	$answer=$rep->dbconnect();
    	$user = new Authentification($answer);
    	$retour = $user->addUser($nom, $prenom, $email, $pseudo, $passworda, $passwordb);
    	echo $retour;
    	if($retour){
    		echo "Inscription réalisée avec succès";
     
     
     }
    Je pense que c'est ici mon problème, je créé deux fois la base, non ? même si il n'y a qu'une seule entrée dans cette dernière. Devrais-je mettre le premier code en remplacement de celui-ci ?

  4. #4
    Membre averti Avatar de demenvil
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste développeur
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Points : 389
    Points
    389
    Par défaut
    Citation Envoyé par mroudy Voir le message
    Je viens d'enlever la ligne comme tu me l'a dis. Je pense que mon erreur vient en fait de plus haut dans le code, sur une autre page j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
     if(isset($_POST['inscription'])){
    	extract($_POST);
    	$rep=  new Connection('localhost', 'site', 'utf8', 'root', '');	
    	$answer=$rep->dbconnect();
    	$user = new Authentification($answer);
    	$retour = $user->addUser($nom, $prenom, $email, $pseudo, $passworda, $passwordb);
    	echo $retour;
    	if($retour){
    		echo "Inscription réalisée avec succès";
     
     
     }
     
    Edit: Code non testé
    Je pense que c'est ici mon problème, je créé deux fois la base, non ? même si il n'y a qu'une seule entrée dans cette dernière. Devrais-je mettre le premier code en remplacement de celui-ci ?

    Salut,
    Il te manque aussi une accolade à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     if(isset($_POST['inscription'])){
    	extract($_POST);
    	$rep=  new Connection('localhost', 'site', 'utf8', 'root', '');	
    	$answer=$rep->dbconnect();
    	$user = new Authentification($answer);
    	$retour = $user->addUser($nom, $prenom, $email, $pseudo, $passworda, $passwordb);
    	echo $retour;
    	if($retour){
    		echo "Inscription réalisée avec succès";
     
           }
     }
    Ensuite oublie les ==> extract($_POST);
    Sécurise ton code autrement


    Pour ta question ta méthode addUser suffit à faire le taf oui.
    Pense juste à bien établir la connexion avec la bdd.

    Essaye ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    public function addUser($nom, $prenom, $email, $pseudo, $passworda, $passwordb){
    		try{		
    			if($passworda != $passwordb){
    				echo "Les mots de passe doivent être identiques";
    					return false;
    				} else {
    				  $longueur = strlen($passworda);				
    				  if ($longueur < 8) {
    					  echo "Mot de passe trop court !";
    					  return false;
    				  } else {
    						$passworda = sha1($passworda);
    						$req=$this->db->prepare("select * from site where pseudo=?");
    						$req->execute(array($pseudo));
    						if($req->rowCount() !=0){
    							echo "Le pseudo est déjà pris ! ";
    							return false;
    						} else {
    							$passworda = sha1($passworda);
    							$reponse = $this->db->prepare("INSERT INTO site VALUES(Default,?,?,?,?,?)");
    							$reponse->execute(array($nom,$prenom,$email,$pseudo,$passworda));
    							return true;
    						}
    					}
    			  }
    		}catch (PDOException $e){
    			echo $e->getMessage();
    		}
    	}

Discussions similaires

  1. Aide caractère "\" dans mon mot de passe BD Access 2000
    Par 810mcu dans le forum Bases de données
    Réponses: 7
    Dernier message: 06/06/2008, 13h22
  2. Aide caractère "\" ds mon mot de passe BD Access2000
    Par 810mcu dans le forum VBA Access
    Réponses: 11
    Dernier message: 05/06/2008, 18h48
  3. [RegEx] Interdiction de caractères dans un mot de passe
    Par tarzanjane dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2007, 18h40
  4. Caractères anormaux dans la saisie de mot de passe
    Par corenitec dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/08/2007, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo