갑자기 사이트에 스팸글이 올라와서.....
오늘 갑자기 제사이트에 가입해서 스팸글을 무지하게
올리는 분이 계셔서 약이올라 회원삭제하면 같이 스팸글도 삭제 되도록 해보았습니다.....^^
로빈아빠님 팁이 좋아보여 사용해 보려 했는데 작동이 안되어서
JS빌더에서 사용하던 소스와 @헌이 님께서 올려주신 팁을 조합해서 적용했더니 다행이 잘 되네요....ㅎㅎ
코어를 건들여야 하기 때문에 @로빈아빠 님 팁을 쓰고 싶은데 어떻게 수정을 해주실려나 모르겠네요....^^
좀 더 extend 폴더에 넣어서 해결하는 방법을 찾아 보아야 겠습니다.
extend 폴더에 넣어서 해결 하려고 작업하다 게시물 다 날리고 백업파일로 복구 했네요......ㅠㅠ
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 35개
저도 아침에 적용 해놓았네요 ㅜㅜ
<?
$mdname = array('0oktu1', 'kf1229love','mmr1234','qmffor85g','9g7g3p','magickh7','bedael','ejrtjsl88','test9940','skdo15778','kimmy','blz003');//스팸아이디 추가
foreach($mdname as $name) {
$mdname = $name;
$query = sql_query("select bo_table from `$g5[board_table]`");
while($row = sql_fetch_array($query)) {
sql_query("delete from `$g5[write_prefix]$row[bo_table]` where mb_id='$mdname'");
sql_query("delete from `$g5[new_win_table]$row[bo_table]` where mb_id='$mdname'");
$sql = " select count(*) as cnt from ".$g5['write_prefix'].$row[bo_table]." where wr_is_comment = 0 ";
$row = sql_fetch($sql);
$bo_count_write = $row['cnt'];
$sql = " select count(*) as cnt from ".$g5['write_prefix'].$row[bo_table]." where wr_is_comment = 1 ";
$row = sql_fetch($sql);
$bo_count_comment = $row['cnt'];
if (isset($_POST['proc_count'])) {
// 원글을 얻습니다.
//$sql = " select wr_id from {$g5['write_prefix']}{$row[bo_table]} where wr_is_comment = 0 ";
$sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from ".$g5['write_prefix'].$row[bo_table]." a, ".$g5['write_prefix'].$row[bo_table]." b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
/*
// 코멘트수를 얻습니다.
$sql2 = " select count(*) as cnt from {$g5['write_prefix']}$row[bo_table] where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 ";
$row2 = sql_fetch($sql2);
*/
sql_query(" update ".$g5['write_prefix'].$row[bo_table]." set wr_comment = '".$row['cnt']."' where wr_id = '".$row['wr_id']."' ");
}
}
// 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.
$bo_notice = "";
$lf = "";
if ($board['bo_notice']) {
$tmp_array = explode(",", $board['bo_notice']);
for ($i=0; $i<count($tmp_array); $i++) {
$tmp_wr_id = trim($tmp_array[$i]);
$row = sql_fetch(" select count(*) as cnt from ".$g5['write_prefix'].$row[bo_table]." where wr_id = '".$tmp_wr_id."' ");
if ($row['cnt']) {
$bo_notice .= $lf . $tmp_wr_id;
$lf = ",";
}
}
}
$sql = " update ".$g5['board_table']."
set bo_notice = '".$bo_notice."',
bo_count_write = '".$bo_count_write."',
bo_count_comment = '".$bo_count_comment."'
where bo_table = '".$row[bo_table]."' ";
sql_query($sql);
}
}
?>
common.lib.php 에서 해결 했습니다만, 코어쪽 안걸들여 볼까하고 extend 에 파일 넣어보려구요.
회원정보 삭제만 처리한 루틴은 다음과 같습니다. (변수명 기입방법 정리)
[code]
<?php
// 제목 : extend에 넣는 회원정보 삭제
// 작성 : 로빈아빠 2018-03-02
// 파일명 extend/_ar.delete_member.php
// 주요기능 : 회원관리자에서 삭제된 회원을 완전히 삭제함..
if ($is_admin=='super' && strstr($PHP_SELF,"/member_list_delete.php") && isset($chk) && count($chk) &&!$g5['proc_member_list_delete'] ) {
echo __LINE__;exit;
$is_delete=false;
$g5['proc_member_list_delete']=true;
$achk=array();
for ($i=0; $i<count($chk); $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$mb = get_member($_POST['mb_id'][$k]);
if ($mb['mb_level']<=1 && !$mb['mb_password']) {
$sql2="delete from {$g5['member_table']} where mb_id='{$mb['mb_id']}'";
sql_query($sql2);
$is_delete=true;
}
else {
$achk[]=$k;
}
}
if ($is_delete) {
$chk=$achk;
}
}
?>
[/code]
새 루틴을 올리도록 하겠습니다. ^^
이거 그냥 공개 할려고 했는데.....ㅠㅠ
[http://sir.kr/data/editor/1803/89a624f6485277419bd81e9a4561a410_1519955019_5944.png]
sql_query(" delete from ".$g5['write_prefix'].$row['bo_table']." where mb_id='$mb_id'");
[http://sir.kr/data/editor/1803/b5c57ea7491a879aaf82d3d67c56e150_1519955996_7952.png]
ajax필터링은 피하는것 같아서
내용 소스보고.. 단어 추출해서 write_update에서 특정 단어 들어가면 튕겨버립니다..
그러니까 코멘트로 남기길래 코멘트에도 추가하니 조용하네요 :)
아마도 자동으로 글쓰는 로봇은 아닌것 같고 회원가입후 직접 작성하는것 같습니다.
회원삭제와 모든 게시글 및 댓글 삭제 한방에 해결하니 시원 하네요....^^