PukiWiki1.4.6 CGIの編集認証(後編)

前回 id:otn:20060523 の続き。
結局、旧サイトの記事に書いたのと同じ方式を取る事にした。

(1) index.php をコピーして edit.php を作る
(2) .htaccess で edit.php にBasic認証を掛ける
(3) edit.php 内に、define('EDIT_OK','yes'); を記述
(4) pukiwiki.ini.php の $script = 'http://hostname/index.php'; の後に
  if(defined('EDIT_OK')) $script = 'http://hostname/edit.php'; を追加
(5) lib/auth.php の中の function basic_auth の中の
    if (empty($user_list)) return TRUE; // No limit
    の後に、
    $auth_flag = FALSE;
    if(defined('EDIT_OK') and isset($_SERVER['REMOTE_USER']))
    {
      $_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'];
      $_SERVER['PHP_AUTH_PW'] = 'pass';
    }
    を追加。
(6) pukiwiki.ini.php の $auth_user 定義ではパスワードをすべて 'pass' にしておく
    もちろん実際のパスワードは、edit.php のBasic認証で設定したものを入力する

と、(5)のコードを挿入する箇所以外は1.4.4の時と同じだ。

これでうまくいっている(はず)。


なお、実際の私のサイトではedit.phpという名前ではないので、アクセスしても無駄です。皆さんも実際はどうせお気に入りに入れるんだろうから覚えられない意味の無い名前にしておきましょう。

2006-09-09:追記
編集ミスがあり、動作しないコードになってました。yktさんのコメントで教えていただき、修正しました。