これ何て呼びますか

こんにちは(初質問です)

いままでは順調だったのですがテストをしていると・・・

新規登録画面
名前
メールアドレス
希望ID

各項目を入力して送信すると以下のようなエラーが出て・・・

Open Error: /home/user/private_html/protect/.htpasswd

こまっています
内部調査では大まかに・・・
# IDの重複チェック
local($f) = 0;
open(IN,"$pwdfile") || &error("Open Error: $pwdfile");
while (<IN>) {
local($id) = split(/:/);
if ($in{'id'} eq $id) { $f++; last; }
}
close(IN);

if ($f) {
&error("$in{'id'}は既に発行済です。<br>他のIDをご指定ください");
}

このプログラムの・・・
open(IN,"$pwdfile") || &error("Open Error: $pwdfile");
ここの部分が表示されてるようです

もちろんテスト中なので公開もしてないし・・・
おなじIDとかももちろんないです

あとすこしでできるのでおねがいします><

ついでに
通常はyahooを利用するのですがトラブルが起きてるみたいで
つかえなかったのでここでしてます^^;

A 回答 (3件)

エラーの詳細原因が$!変数に入っているので、これを表示してみたら対策が出来ると思います。

    • good
    • 0

>ファイルを確認してみましたがちゃんとありました


>名前もあってます

ファイルがあるかどうかじゃなくて『指定したパスにファイルがあるかどうか』が重要です。

>/home/user/private_html/protect/.htpasswd

確実にこのパスにそのファイル(.htpasswd)があるかどうかを確認してみてください。
/で始まるパスの指定の意味がわからないのであるならば、「$pwdfile」の値を相対パスにしてみるのもひとつの方法です(「パス」の意味がわからないのであるならば、諦めてください。これが理解できない場合は Perl に限らずあらゆるプログラムを理解することができません)
あと#1さんもおっしゃってますが、ファイル権限も一応疑ってみて。
    • good
    • 0

/home/user/private_html/protect/.htpasswd


というファイルが無い、オープンする権限が無いとか確認されてはどうでしょうか?

この回答への補足

記入すべきところまちがってたらすいません^^;

ファイルを確認してみましたがちゃんとありました
名前もあってます

private_htmlのファイルとかはないですが・・
フリーでプログラムが配布されててダウンロードをするのですが
このようなファイルはなかったです 

補足日時:2010/08/03 12:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!