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 :

Modification de login et password via un formulaire PhP avec base PostgreSQL [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2019
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Modification de login et password via un formulaire PhP avec base PostgreSQL
    Bonjour, voilà plusieurs jours que je suis bloqué et je n'arrive pas à m'en dépêtrer...

    Je vais essayer d'être le plus clair possible.

    Je dois créer un formulaire pour modifier directement les usename et passwd de la table pg_shadow.
    Qui ne sont modifiables qu'avec les requêtes suivantes :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER USER ancienLogin RENAME TO nouveauLogin;
    ALTER USER nouveauLogin WITH ENCRYPTED PASSWORD nouveauMotDePasse;

    Cela étant dit, j'ai donc crée Utilisateur.class.php avec : (private $_idUtilisateur; private $_login; private $_motDePasse;),
    Puis dans UtilisateurManager.class.php j'ai crée une : public static function update(Utilisateur $perso).
    Cette fonction s'execute évidemment lorsque l'on clique sur "Modifier" une fois les nouveaux identifiants choisis.

    Voici ma fonction Update :

    Code php : 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
     public static function update(Utilisateur $perso)
     {
            $db = DbConnect::getDb();
     
            $q0=$db->prepare('SELECT usename as login FROM pg_shadow u WHERE usesysid = :idUtilisateur;');
            $q0->bindValue ( ':idUtilisateur', $perso->getIdUtilisateur());
            $res0= $q0->execute(); //Requête pour trouver l'ancien usename à modifier grâce à l'id.
            $ancien = $q0->fetch(PDO::FETCH_ASSOC);
     
            $q1 = $db->prepare("ALTER USER :precedent RENAME TO :login;"); //Requete qui sert à changer le login
            $q2 = $db->prepare("ALTER USER :login WITH ENCRYPTED PASSWORD :motDePasse;"); //Requete qui sert à changer le mdp
     
           	$q1->bindValue ( ':precedent', $ancien['login']);
           	$q1->bindValue ( ':login', $perso->getLogin());
            $q2->bindValue ( ':login', $perso->getLogin());
            $q2->bindValue ( ':motDePasse', $perso->getMotDePasse());
     
            $res1 = $q1->execute();
            $res2 = $q2->execute();
    }

    Et évidemment, rien ne marche...
    Pourriez-vous m'aider ?

    Cordialement

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2019
    Messages : 3
    Points : 6
    Points
    6
    Par défaut SOLUTION
    Bon,

    J'ai enfin trouvé.

    Voici mes modifications :
    Code php : 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
     
        public static function update(User $newPerson)
        {
            $db = DbConnect::getDb();
     
            $idUser=$newPerson->getIdUser();
            $oldPerson=self::getById($idUser);
     
            $oldLogin= pg_escape_string($oldPerson->getLogin());
            $newLogin= pg_escape_string($newPerson->getLogin());
     
            $newPassword= pg_escape_string($newPerson->getPassword());
     
            $sql = "ALTER USER {$oldLogin} RENAME TO {$newLogin}; ALTER USER {$newLogin} WITH ENCRYPTED PASSWORD '{$newPassword}';";
     
            pg_query($sql);
     
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. login et password pour acceder a workstation avec wsx
    Par princessedior dans le forum Virtualisation
    Réponses: 1
    Dernier message: 10/04/2015, 12h29
  2. [MySQL] Interroger une base via un formulaire php
    Par DansTesReves dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/05/2012, 15h39
  3. Remplir un fichier Word via un formulaire php
    Par pika698 dans le forum Word
    Réponses: 4
    Dernier message: 18/02/2010, 16h26
  4. changer les donner du css via un formulaire php
    Par tycoons dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/09/2008, 13h05
  5. Réponses: 4
    Dernier message: 22/02/2008, 12h43

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