PHP 8.4.2 Released!

oci_password_change

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_password_changeModifie le mot de passe d'un utilisateur Oracle

Description

oci_password_change(
    resource $connection,
    string $username,
    string $old_password,
    string $new_password
): bool
oci_password_change(
    string $database_name,
    string $username,
    string $old_password,
    string $new_password
): resource

Modifie le mot de passe de l'utilisateur username.

La fonction oci_password_change() est plus utile avec des scripts PHP en ligne de commandes, ou lorsque des connexions non persistantes sont utilisées dans l'application PHP.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

username

Le nom d'utilisateur Oracle.

old_password

L'ancien mot de passe.

new_password

Le nouveau mot de passe à définir.

database_name

Le nom de la base de données.

Valeurs de retour

Quand database_name est fournit, oci_password_change() retourne true en cas de succès, ou false si une erreur survient. Quand connection est fournit, oci_password_change() retourne la ressource de connexion en cas de succès, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec oci_password_change() pour changer le mot de passe d'un utilisateur déjà connecté

<?php

$dbase
= 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo
"Le nouveau mot de passe est : " . $new_pw . "\n";

?>

Exemple #2 Exemple avec oci_password_change() pour se connecter et changer le mot de passe en une seule étape

<?php

$dbase
= 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!
$c) {
$m = oci_error();
if (
$m['code'] == 28001) { // "ORA-28001: Le mot de passe a expiré"
// Connexion et changement du mot de passe en une étape
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
if (
$c) {
echo
"Le nouveau mot de passe est : " . $new_pw . "\n";
}
}
}

if (!
$c) { // L'erreur originale n'était pas 28001, ou la modification du mot de passe a échoué
$m = oci_error();
trigger_error('Impossible de se connecter à la base de données : '. $m['message'], E_USER_ERROR);
}

// Utilisation de la connexion $c
// ...

?>

Notes

Note:

Changer le mot de passe, avec cette fonction, ou directement dans Oracle devrait être fait avec précaution. Ceci car les applications PHP pourraient continuer d'utiliser des connexions persistantes avec l'ancien mot de passe. La meilleure pratique est de redémarrer tous les serveurs webs dès lors que le mot de passe a été changé.

Note:

Si vous mettez à jour les bibliothèques clients ou la base de données Oracle depuis une version antérieure à 11.2.0.3 vers une version 11.2.0.3 ou supérieure, la fonction oci_password_change() peut retourner l'erreur "ORA-1017: invalid username/password" tant que les versions du client et du serveur ne seront pas identiques.

Note:

La seconde syntaxe de oci_password_change() est disponible depuis la version de OCI8 1.1.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top