| 記事No | : 8584 | 
| 投稿日 | : 2011/06/18(Sat) 11:30:30 | 
| タイトル | : Web ProtectのID登録 | 
| ID情報 | : noriwtn | 
| 投稿者 | : noriwtn | 
| URL | : http://www.playgroup-chiba.com/member/admin.cgi | 
Web Protect(Ver4.01)の管理ページより、IDを追加登録すると、追加の度に「.htpasswd」ファイルのID、パスワードのデータが上書きされてしまい(ファイル内にIDとパスワードは1組しか残らない)、追加登録を行う前に登録したIDでの認証ができなくなってしまいます。
パスワード発行形態は、「# 2 : 発行は管理者のみ。ユーザはメンテのみ」としています。
初心者で問題を解決できずに困っています。アドバイスを頂けませんでしょうか。よろしくお願い致します。
管理ページURL:http://www.playgroup-chiba.com/member/admin.cgi
サーバー:さくらインターネット
ファイル構成
/home/playgroup-chiba/
       |
       +-- private / 
       |             member-top.html 
       |
       +-- data / .htpasswd
       |          .axslog
       |          .member
       |
       +-- ses/
       |
       +-- www
              |
              +-- member / protect.cgi
                    |      enter.cgi
                    |      admin.cgi 
                    |      manager.cgi
                    |      init.cgi
                    |      check.cgi
                    |      index.html
                    |
                    +-- lib / *.*
                    |
                    +-- tmpl / *.*
| 記事No | : 8587 | 
| 投稿日 | : 2011/06/18(Sat) 18:09:40 | 
| タイトル | : Re: Web ProtectのID登録 | 
| ID情報 | : kent | 
| 投稿者 | : KENT | 
> Web Protect(Ver4.01)の管理ページより、IDを追加登録すると、追加の度に「.htpasswd」ファイルのID、パスワードのデータが上書きされてしまい(ファイル内にIDとパスワードは1組しか残らない)、追加登録を行う前に登録したIDでの認証ができなくなってしまいます。
これは申し訳ないです。バグですね。
以下の部分を修正してください。
admin.cgi 185行目
■変更前
seek(DAT, 0, 0);
print DAT "$in{id}:$passwd\n";
truncate(DAT, tell(DAT));
close(DAT);
■変更後
seek(DAT, 0, 0);
print DAT @data; # 追加
print DAT "$in{id}:$passwd\n";
truncate(DAT, tell(DAT));
close(DAT);
| 記事No | : 8588 | 
| 投稿日 | : 2011/06/18(Sat) 19:27:22 | 
| タイトル | : Re^2: Web ProtectのID登録 | 
| ID情報 | : noriwtn | 
| 投稿者 | : noriwtn | 
| URL | : http://www.playgroup-chiba.com/member/admin.cgi | 
> これは申し訳ないです。バグですね。
> 以下の部分を修正してください。
> 
> admin.cgi 185行目
> ■変更前
> seek(DAT, 0, 0);
> print DAT "$in{id}:$passwd\n";
> truncate(DAT, tell(DAT));
> close(DAT);
> 
> ■変更後
> seek(DAT, 0, 0);
> print DAT @data; # 追加
> print DAT "$in{id}:$passwd\n";
> truncate(DAT, tell(DAT));
> close(DAT);
登録、認証できました。
ありがとうございました。