関数・クラス解説
oci_password_change
version:PHP 5, PHP 7, PECL OCI8 >= 1.1.0 (公式)Oracle ユーザーのパスワードを変更する
公式リファレンス
書式
oci_password_change ( resource $connection , string $username , string $old_password , string $new_password ) : bool
oci_password_change ( string $dbname , string $username , string $old_password , string $new_password ) : resource
説明
ユーザー username のパスワードを変更します。
oci_password_change() が役立つのは、 PHP コマンドラインスクリプトで使う場合や PHP アプリケーションで持続的でない接続を使う場合です。
パラメータ
- connection
- oci_connect() あるいは oci_pconnect() が返す Oracle 接続 ID。
- username
- Oracle のユーザー名。
- old_password
- 旧パスワード。
- new_password
- 設定したい、新しいパスワード。
- dbname
- データベース名。
返値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
注意
注意: この関数を使うにせよ Oracle から直接操作するにせよ、 パスワードを変更する際には十分注意しましょう。 持続的接続を使っている場合、PHP アプリケーションからは古いパスワードでも認証できてしまいます。 ユーザーのパスワードを変更したら、ウェブサーバーをすべて再起動させるのがお勧めの方法です。
注意: Oracle クライアントライブラリあるいはデータベースを 11.2.0.3 より前のリリースから 11.2.0.3 以降のバージョンにアップグレードするときには、クライアントとサーバーのバージョンを同時に上げないと oci_password_change() は "ORA-1017: invalid username/password" エラーとなってしまいます。
注意: oci_password_change() の 2 番目の書式は OCI8 バージョン 1.1 から利用可能です。
注意: PHP バージョン 5.0.0 以前では、代わりに ocipasswordchange() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_password_change() への別名として残されていますが、 推奨されません。
サンプル
例1 oci_password_change() で、接続中のユーザーのパスワードを変更する例
$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 "New password is : " . $new_pw . "\n";
例2 oci_password_change() で、接続とパスワードの変更を一度に行う例
$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: the password has expired"
// ログインとパスワードリセットを同時に行います
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
if ($c) {
echo "New password is : " . $new_pw . "\n";
}
}
}
if (!$c) { // 28001 以外のエラーが発生したり、パスワードの変更に失敗したりした場合
$m = oci_error();
trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
}
// 接続 $c が使えます
...
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール