CGI-BBS > 電子掲示板 > 簡易BBS > 簡易BBS-CでのID登録時の、ニックネームの重複防止機能


カレッヂ
カレッヂ


質問者 マツ  投稿日 11/6(水) 12:32:12
簡易BBS-Cで、ID取得のため新規登録する際に、
既に登録されているニックネームやメールアドレスを入力しても
登録がされてしまいます。

ニックネームやメールアドレスの重複防止機能を付けるには、どのようにしたら良いのでしょうか?

他の掲示板などを見て、下記の部分がそうなのかなと思い、張り付けてみたのですが、
掲示板自体が動かなくなってしまいました。

if (!open(DB,$file)) { &error('システムエラー','パスワード管理ファイルにアクセスできません.','復旧するまでお待ちください.'); }
@LOGIN = <DB>;
close(DB);

@PICKUP = grep(/^$in{'uname'}\:(.+)$/,@LOGIN);
if ($#PICKUP > 0) { &error('システムエラー','そのハンドルネームは既に登録されています.','管理者に修復を依頼してください.'); }
if (@PICKUP) { &error('登録済み','そのハンドルネームは既に登録されています,'ブラウザの[戻る]ボタンを押して前の画面に移動してください.'); }


アドバイスをお願いいたします。

プロバイダ参照:
サーバのOS:不明
パソコンのOS:Mac9
エディタ:Jedit
FTPソフト:Fetch
サーバ移転:していない
改造:(未選択)
CGI習熟度:(未選択)

回答者 しあわせのツボ  [削除]  投稿日 11/6(水) 15:25:49
CGIはそれぞれに仕組みが異なるため、ただコピーしてきても
まず動きません。

IDの重複チェックはしているようなので、それを借用できます。
line 630
if ($ID eq $id) { &error("再試行","IDの発行に失敗しました.","戻ってもう一度ボタンを押してください."); }
の直後に
if ($UNAME eq $in{'uname'}) { &error('エラー','この名前は既に使われています','別の名前にしてください'); }
if ($EMAIL eq $in{'email'}) { &error('エラー','このメールアドレスは既に使われています','管理者に問い合わせてください'); }
の2行を追加してください。
質問者 マツ  [削除]  投稿日 11/7(木) 10:54:07
しあわせのツボさん、ありがとうございました。
やっぱり、そのまま引用するだけではダメなのですね・・・
勉強になりました!

無事にチェック機能を付けることができました。
ありがとうございました。

このページは終了したので返信(回答)は書きこめません

Web裏技