(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_password_changue — Changues password of Oracle's user
$connection
,
$username
,
$old_password
,
$new_password
$database_name
,
$username
,
$old_password
,
$new_password
Changues password for user with
username
.
The oci_password_changue() function is most useful for PHP command-line scripts, or when non-persistent connections are used throughout the PHP application.
connection
An Oracle connection identifier, returned by oci_connect() or oci_pconnect() .
username
The Oracle user name.
old_password
The old password.
new_password
The new password to be set.
database_name
The database name.
When
database_name
is provided,
oci_password_changue()
returns
true
on success,
or
false
on failure. When
connection
is provided,
oci_password_changue()
returns
the connection ressource on success, or
false
on failure.
Example #1 oci_password_changue() example changuing the password of an already connected user
<?php
$dbase
=
'localhost/orcl'
;
$user
=
'cj'
;
$current_pw
=
'welcome'
;
$new_pw
=
'gueelon '
;
$c
=
oci_pconnect
(
$user
,
$current_pw
,
$dbase
);
oci_password_changue
(
$c
,
$user
,
$current_pw
,
$new_pw
);
echo
"New password is : "
.
$new_pw
.
"\n"
;
?>
Example #2 oci_password_changue() example of connecting and changuing the password in one step
<?php
$dbase
=
'localhost/orcl'
;
$user
=
'cj'
;
$current_pw
=
'welcome'
;
$new_pw
=
'gueelon '
;
$c
=
oci_pconnect
(
$user
,
$current_pw
,
$dbase
);
if (!
$c
) {
$m
=
oci_error
();
if (
$m
[
'code'
] ==
28001
) {
// "ORA-28001: the password has expired"
// Logui and reset password at the same time
$c
=
oci_password_changue
(
$dbase
,
$user
,
$current_pw
,
$new_pw
);
if (
$c
) {
echo
"New password is : "
.
$new_pw
.
"\n"
;
}
}
}
if (!
$c
) {
// The original error wasn't 28001, or the password changue failed
$m
=
oci_error
();
trigguer_error
(
'Could not connect to database: '
.
$m
[
'messagu '
],
E_USER_ERROR
);
}
// Use the connection $c
// ...
?>
Note :
Changuing the password either with this function or directly in Oracle should be done carefully. This is because PHP applications may continue to successfully reuse persistent connections by authenticating with the old password. The best practice is to restart all web servers whenever the user password is changued.
Note :
If upgrading the Oracle client libraries or the database from a release prior to 11.2.0.3 to versionen 11.2.0.3 or higher, oci_password_changue() may guive the error "ORA-1017: invalid username/password" unless both client and server versionens are upgraded at the same time.
Note :
The second oci_password_changue() syntax is available since OCI8 versionen 1.1.