http://docs.openpne.jp/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9
現在環境を構築する時間がありませんので推測のみの回答となりますが、c_admin_userテーブルにIDとパスワードが保存される仕様になっているので、テーブル内容を退避させた上で一旦空っぽにしてみてはどうでしょうか?
http://docs.openpne.jp/?TROUBLE%2F83
を参考にソースをしらべたところ
webapp/modules/admin/lib/db_admin.phpに
function db_admin_authenticate_password($uid, $password)
{
$sql = 'SELECT c_admin_user_id FROM c_admin_user WHERE c_admin_user_id = ? AND password = ?';
$params = array(intval($uid), md5($password));
return (bool)db_get_one($sql, $params);
}
というソースが有ったのでパスワードはmd5ハッシュになっているだけのようです。
結論: c_admin_userテーブルのpasswordにmd5()をかけたパスワードを上書きする。
ご丁寧な返答ありがとうございます。
結論: c_admin_userテーブルのpasswordにmd5()をかけたパスワードを上書きする。
って具体的にどうやったらよいのでしょうか。
パスワードだけ変更するスクリプトを作りましょう。
PEAR::DBで書いてみます。
http://pear.php.net/manual/ja/package.database.php
require_once 'DB.php'; //PEAR::DBが必要です
// DB接続用の情報、config.phpに書いたのと同じでいいとおもう
$dsn = array(
'phptype' => 'mysql',
'username' => '',
'password' => '',
'hostspec' => 'localhost',
'database' => '',
'new_link' => false,
);
$password = 'himitsu'; //上書きしたい管理者パスワード
$md5pass = md5($password); //md5をかける
if($db = DB::connect($dsn)){
$sql = "UPDATE c_admin_user SET password='{$md5pass}'"; //セットアップ中、なら管理者アカウントしか無いだろうしとりあえず全アカウントのパスワードを上書きするSQL(ちょっと乱暴?)
$rtn = $db->query($sql);
if(!DB::isError($rtn)){
echo 'OK';
}else{
die($rtn->toString()); //query失敗
}
}else{
die($rtn->getMessage()); //connect失敗
}
いろいろありがとうございます。
う~ん難しいんですね。
そういう意味でいうともう終わっているんですよね。