Devel::Bayside このページをアンテナに追加 RSSフィード

2010-03-29

CGI版PHPでBASIC認証が効かない!

|  CGI版PHPでBASIC認証が効かない!を含むブックマーク

ロリポップで、PHP4 -> PHP5 にしたら、Pukiwikiユーザー認証が動かなくなりました・・。

どうやらロリポップの PHP5 は CGI 版らしく、CGIPHPでは、BASIC認証が使えないそうです。

http://jp2.php.net/manual/ja/features.http-auth.php

超困った!!

http://pukiwiki.sourceforge.jp/?%E7%B6%9A%E3%83%BB%E8%B3%AA%E5%95%8F%E7%AE%B1%2F198

にある mod_setenvif を使った方法を試してみるも、うまくいかず、IP 制限で乗り切る方法で上手くいきました。

修正するファイルlib/auth.php の basic_auth 関数

以下の記述を if (PKWK_READONLY || の前に追加します。

実際には編集したい人のIPアドレスユーザー名、パスワードを指定します。

if ($_SERVER['REMOTE_ADDR'] == 'xxx.xxx.xxx.xxx') {
    $_SERVER['PHP_AUTH_USER'] = 'username';
    $_SERVER['PHP_AUTH_PW']   = 'password';
}

IPアドレスが変わるたびに変更しないといけないので注意。

SPAMよけには十分な上、IDパスワードをいちいち入れなくていいので楽チン!

n7shin7shi 2010/03/29 22:23 login.inc.php というプラグインもあるようです。参考まで。
http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Flogin.inc.php