削除する記事が存在しない場合の処理
投稿すると自動的にその投稿に対して記事番号なるものが割り当てられ、
その記事番号と自分で投稿時に決めた削除パスワードで
自分の投稿を削除する形式の掲示板なのですが
パスワードや記事番号が入力されていない場合には
〇〇〇が入力されていませんと表示されるにもかかわらず
存在しない記事番号が入力して削除しようとすると
「正常に削除いたしました」と表示されてしまいます。
(実際には存在しない記事番号なので何も削除されていないのですが)
そこで下記のようにの#~#の部分を追加で記述し、
記事番号が存在しない場合にエラーとなるようにしてみたのですが
これで本当にいいのか正直不安なのです。
正しいかチェックしていただけませんか?
@new=();
open (IN,"$file") || error("システムエラー","ファイル「$file」を開くことができません。");
while($data = <IN>) {
$flag=0;
($no,$res,$date,$cntr,$email,$tall,$weight,$age,$sub,$com,$live,$select,$photo,$pw) = split(/<>/,$data);
if ($FORM{'pass'} eq "$ad_pass") {
foreach $del (@DEL) {
if ($no eq "$del") { $flag=1; last; }
}
}
else {
if ($FORM{'del'} eq "$no") {
if (!($pw)) { &error("入力エラー","指定された記事には削除キーが設定されていません。"); }
if (crypt($FORM{'pass'},$pw) ne "$pw") { &error("入力エラー","パスワードが間違っています。"); }
$flag=1;
}
#記事番号が存在しない時、エラーを表示追加
if ($FORM{'del'} ne "$no") {
if (crypt($FORM{'pass'},$pw) ne "$pw") { &error("入力エラー","記事番号が存在しません。記事番号を確認して入力し直してください。"); }
}
#ここまで
}
if ($flag == 0) { push(@new,$data); }
}
close (IN);