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

PHP & Base de données Discussion :

Mise à jour mot de passe dans la base


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Mise à jour mot de passe dans la base
    Bonjour, je voudrais modifier un mot de passe et le mettre à jour dans la base mais -> Notice: Undefined variable: user_id in C:\wamp64\www\espace-membres-en-poo-et-pdo\process\process-update-password.php

    Besoin d'aide, merci d'avance & bonne journée.

    class/userManager.php

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
         class userManager {
     
    		 private $_db;
     
             public function __construct($db) {
     
                 $this->setDb($db);
             }
     
             public function setDb(PDO $dbh) {
     
                 $this->_db = $dbh;
             }
     
             public function getUser($user_id = '') {
     
                 if(empty($user_id)) {
     
                     $sql = 'SELECT user_id, user_name, user_pass FROM user';
     
                     $stmt = $this->_db->prepare($sql);
                 }
                 elseif(is_numeric($user_id)) {
     
                     $sql = 'SELECT user_id, user_name, user_pass FROM user WHERE user_id = :user_id';
     
                     $stmt = $this->_db->prepare($sql);
     
                     $stmt->bindParam(':user_id', $user_id);
                 }
     
                 $stmt->execute();
     
                 if($stmt->fetch()) {
     
                     return true;
                 }
                 else {    
     
    			     return false;
    			 }
             }
     
             public function updateUser(User $user) {
     
                 $sql = 'UPDATE user SET user_name = :user_name, user_pass = :user_pass WHERE user_id = :user_id';
     
    			 $user_id = $user->getUserId();
    			 $username_form = $user->getUserName();
    			 $userpass_form = $user->getUserPass();
     
                 $stmt = $this->_db->prepare($sql);
     
                 $stmt->bindParam(':user_id', $user_id);
                 $stmt->bindParam(':user_name', $username_form);
    			 $stmt->bindParam(':user_pass', $userpass_form);
     
                 $stmt->execute();
             }
    User.php

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    class User {
     
    		 private $_user_id;
    		 private $_user_name;
    		 private $_user_pass;
     
    		 public function __construct(array $data) {
     
                 $this->setUserId($data['user_id']);
                 $this->setUserName($data['user_name']);
    			 $this->setUserPass($data['user_pass']);
             }
     
             public function setUserId($user_id) {
     
    			 if((is_int($user_id)) AND ($user_id > 0)) {
     
                     $this->_user_id = $user_id;
                 }
             }
     
             public function setUserName($user_name) {
     
    			 if(is_string($user_name)) {
     
                     $this->_user_name = $user_name;
                 }
             }
     
    		 public function setUserPass($user_pass) {
     
    			 if(is_string($user_pass)) {
     
                     $this->_user_pass = $user_pass;
                 }
             }
     
             public function getUserId() {
     
                 return $this->_user_id;
             }
     
             public function getUserName() {
     
                 return $this->_user_name;
             }
     
    		 public function getUserPass() {
     
    			 return $this->_user_pass;
    	     }
         }
    process/process-update-password.php

    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
     
     
    require('../includes/inc-connexion.php');
         require('../class/User.php');
    	 require('../class/userManager.php');
     
    	 if(isset($_POST['submit_form'])) {
     
    		 $userpass_new_form = $_POST['userpass_new_form'];
     
    		 if(empty($userpass_new_form)) {
     
    			 $message = '<p class="error">Veuillez remplir le champ !</p>';
    		 }
    		 else {
     
    			 $manager = new userManager($db);
     
    			 $current_user = $manager->getUser($user_id); // Le message d'erreur indique l'erreur sur cette ligne
     
    			 $new_content = array('user_id' => (int) $current_user[0]['user_id'], 'user_name' => $current_user[0]['user_name'],
    			                      'user_pass' => $current_user[0]['user_pass']);
     
    			 $user_to_update = new User($new_content);
     
    			 $user_to_update->setUserPass($userpass_new_form);
     
    	         $manager->updateUser($user_to_update);
    		 }
    	 }

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    la variable $user_id semble initialisée nulle part...

Discussions similaires

  1. [SQL] Mots de passe dans une base de données
    Par jockyboss777 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/02/2021, 16h47
  2. [1.x] Problème mise à jour d'une entrée dans la base
    Par Leward dans le forum Débuter
    Réponses: 4
    Dernier message: 29/08/2011, 22h39
  3. Réponses: 11
    Dernier message: 24/05/2011, 09h50
  4. Comment sécuriser les mots de passe dans la base de données ?
    Par yacine.dev dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 07/04/2010, 10h59
  5. Réponses: 4
    Dernier message: 29/12/2009, 13h10

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