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:
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:
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