akira さん、いとさん、
認証が失敗するのは、AUTH_USER などを使っているからです。
phpMyAdmin ではそのかわりに HTTP_AUTHORIZATION でもいいようになっていますが、そうするとすれば webdiary にかなり手をいれないといけなくなります。
いとさん、回答ありがとうございます。
>Win98で試したところ、akiraさんと全く同じ結果でした。
>対策は中田さんにお任せするよりないのですが、
>以前の話題を思い出して以下の 1、2の変更をしたところ
>一応動作しました。
>1. admin.phpの 29行目、38行目の
>header('HTTP/1.0 401 Unauthorized'); の次に
>header('status: 401 Unauthorized');
>行を追加する。design.phpにも同様な個所あり。
>2. php.exeでは $PHP_SELF が設定されないので、57行目を
>$PHP_SELF = "admin.php";
>と直接に設定する。
>webdiary.phpの中にも同様な個所があるのでそこは
>$PHP_SELF = "webdiary.php";
>とする。
私のPCのOSはXPです。そしてphp.exeを使うように変更しました。
1を教えられたとおりに変更したらHTTPDでも動作しました。
2は変更しなくてもそのままでも動きました。
>php4isapi.dll では $PHP_SELF は変更しなくても動作するが、
>上のように書き替えても問題はない。
>上の 1、2を変更したとしても、Win98では php.exeでは動くが
>php4isapi.dllでは認証で失敗する。
はい、php4isapi.dllだと認証に失敗してしまいます。
ですがこれで動作確認はできたのでホットしています。
あとはこのスクリプトをサーバにアップしたときに正常に
動けば文句なしです。
本当にありがとうございました。
akiraさん
Win98で試したところ、akiraさんと全く同じ結果でした。
対策は中田さんにお任せするよりないのですが、
以前の話題を思い出して以下の 1、2の変更をしたところ
一応動作しました。
1. admin.phpの 29行目、38行目の
header('HTTP/1.0 401 Unauthorized'); の次に
header('status: 401 Unauthorized');
行を追加する。design.phpにも同様な個所あり。
2. php.exeでは $PHP_SELF が設定されないので、57行目を
$PHP_SELF = "admin.php";
と直接に設定する。
webdiary.phpの中にも同様な個所があるのでそこは
$PHP_SELF = "webdiary.php";
とする。
php4isapi.dll では $PHP_SELF は変更しなくても動作するが、
上のように書き替えても問題はない。
上の 1、2を変更したとしても、Win98では php.exeでは動くが
php4isapi.dllでは認証で失敗する。これは以下と関係あるかも
しれません。>中田さん
http://homepage1.nifty.com/yito/namazu/gbook/20021002.1920.html
どうも OS依存な感じがあって、お使いのOSによっては上の変更が
効かないかもしれませんので。
ひろさん、回答ありがとうございます。
register_globalsはOffですが、Onにしても変わりませんでした。
他のスクリプトもregister_globals=Offで動いてますし・・・。
すみません。ですが回答ありがとうございました。
akiraさん
php.iniのregister_globals = Offになってませんか?
実際に日記のスクリプトは面倒だったので(爆)動かしませんでしたが
他のスクリプトが$_POST["__"]になってなかったモノでそんな気がします。
register_globals = On にしてみて動かしてみてください。それ以上はわかりません(TT
参照
http://homepage1.nifty.com/yito/namazu/gbook/20020524.1808.html
そうですか。
webdiaryを使ってるそのユーザもhttpdを使っていて
その人は
C:\php\sapi\php4isapi.dll
cgi.force_redirect = 0
これで動かしているそうです。
ですがc:\php\php.exe にするとダメなようで・・・・
う〜ん、中田さんにそう言われたのでは仕方がないですね。
諦めるしかないでしょう。回答ありがとうございました。
akira さん、
webdiary の中身やトレースログの出力などをみればわかるのですが、おそらくAN HTTPD の問題でしょう。
ちょっと話がややこしくなるので、とりあえず akira さんは webdiary を AN HTTPD で動作させるのはあきらめてもらう方がよいと思います。
回答ありがとうございます。
>webdiaryの中身は見ていませんが、「認証」というのはwebdiary自前の認証でしょう。
>まず、webdiary の動作を理解しないと難しいかもしれません。
>せめて php.exe が使えないと困りますね。
>http://homepage1.nifty.com/yito/anhttpd/faq/php.html
>にある hello.php は php.exe でやるとエラーが出ますか? だとしたらどういうエラーになりますか?
>これが php.exe でエラーにならないとしたら、webdiary の方を調べないといけないという話になります。
失礼しました。かなり省略して書き込んでしまったことに気づきました。
cgi.force_redirect = 0
とし、実行プログラムをphp.exeにも変更してみました。
hello.phpはもちろん実行されました。phpinfo()もです。
他のPHPスクリプトも問題なく動作してます。
ですが、このwebdiaryだけだめなのです。
PHPのバージョンは4.2.1です。(これが原因とは考えられないのですが・・)
ほかのユーザは問題なくローカルでwebdiaryの動作確認ができるそうなのですが・・。
なぜなのか理由がさっぱりで困っています。
嫌々でしたがサーバに動作確認する前にアップしたのですが、
こちらでは問題なく動作しました。
ということは私の設定がどこかで間違っているとしか考えられないのです。
・・・・でもどこを!?と言う状態なのです。
HTTPDのオプションも特に何もいじってはいないので・・・・・・
何が悪いのでしょう?よろしくお願いいたします。
akira さん、
webdiaryの中身は見ていませんが、「認証」というのはwebdiary自前の認証でしょう。
まず、webdiary の動作を理解しないと難しいかもしれません。
せめて php.exe が使えないと困りますね。
http://homepage1.nifty.com/yito/anhttpd/faq/php.html
にある hello.php は php.exe でやるとエラーが出ますか? だとしたらどういうエラーになりますか?
これが php.exe でエラーにならないとしたら、webdiary の方を調べないといけないという話になります。
またお世話になります。
http://aki.adam.ne.jp/にあるPHPのwebdiaryをDLしまして
An HTTPDで動作確認をしようとしているのですが・・・・
そのスクリプトでは日記を書く人のためにユーザ認証を聞いてくるのですが、
うまく動作しません。
IDとパスを入力しても一向に進みません。
C:\php\sapi\php4isapi.dllを使ってやっているのですが
うまくいきません。
ためしにC:\php\php.exeを使ってみましたが今度は認証すら聞かずに
認証に失敗してしまいます。
認証の画面には「127.0.0.1に接続」と出てきます。
ということは、これはHTTPDのオプション/一般にある
ユーザ認証の設定をしなくてはならないのでしょうか?
でもhttp://homepage1.nifty.com/yito/anhttpd/faq/userauth.html
にはそんな風には書いていないし・・・・・
An HTTPDは最新のバージョンをアップしても変わりませんでした。
教えていただけないでしょうか?