|
内容:
|
bbs2.cgiの後半
##############################
# 削除実行
##############################
sub GoDel{
のサブルーチンの中の
if($BBS_CHK == 1){
if($passwd ne $mpassword){
if(param('membernum')){
$id = param('membernum');
}else{
&bbserr(820,'メンバーIDを書いて下さい');
}
$COOKIE{'membernum'}=$id;
&UserCheck(1);
}
}
の部分を以下のように修正して下さい。
if($BBS_CHK == 1){
if($mpassword ne crypt($passwd,$mpassword)){
if(param('membernum')){
$id = param('membernum');
}else{
&bbserr(820,'メンバーIDを書いて下さい');
}
$COOKIE{'membernum'}=$id;
&UserCheck(1);
}
}
また、
&Lock(1);
open(IN,"$BbsLog") || &bbserr(830,'ログファイルがありません',1);
while(){
$data=$_;
$dmy = $data;
chop($dmy);
($fnum,$fid,$fname,$fabout,$ftime,$fsubject,$fmess,$fimg,$fimgsn,$fimgsubject,$dkey,$fmailadd) = split(/Enc_Sep_Code/,$dmy);
if(($fnum eq $num)||($fnum =~ /^$num\-/)){
if($BBS_CHK == 1){
if($passwd ne $mpassword)&&($fid ne $id)){
&bbserr(840,"本人以外の書き込みは削除出来ません",1);
}
}else{
if($passwd ne $dkey){
&bbserr(840,"本人以外の書き込みは削除出来ません",1);
}
}
if($fimg){
$delimg=$UploadDir . $fimg;
unlink($delimg);
}
if($fimgsn){
$delimg=$UploadDir . $fimgsn;
unlink($delimg);
}
}else{
push (@newlog,$data);
}
}
close(IN);
の部分を以下のように修正して下さい。
&Lock(1);
open(IN,"$BbsLog") || &bbserr(830,'ログファイルがありません',1);
while(){
$data=$_;
$dmy = $data;
chop($dmy);
($fnum,$fid,$fname,$fabout,$ftime,$fsubject,$fmess,$fimg,$fimgsn,$fimgsubject,$dkey,$fmailadd) = split(/Enc_Sep_Code/,$dmy);
if($fnum eq $num){
$fdkey = $dkey;
$ffid = $fid;
}
if(($fnum eq $num)||($fnum =~ /^$num\-/)){
if($BBS_CHK == 1){
if(($mpassword ne crypt($passwd,$mpassword))&&($ffid ne $id)){
&bbserr(840,"本人以外の書き込みは削除出来ません",1);
}
}else{
if($passwd ne $fdkey){
&bbserr(840,"本人以外の書き込みは削除出来ません",1);
}
}
if($fimg){
$delimg=$UploadDir . $fimg;
unlink($delimg);
}
if($fimgsn){
$delimg=$UploadDir . $fimgsn;
unlink($delimg);
}
}else{
push (@newlog,$data);
}
}
close(IN);
|