Tình hình là dạo này forum mình bị mấy ông mấy bà spam quá trớn, auto post quảng cáo tè le....

Mấy cái câu hỏi, ảnh xác nhận...mặc định của VBB giờ tool spam qua ào ào

Nên nhức cả đầu, quyết định lấy kinh nghiệm php nhỏ nhỏ ra , làm 1 cái chặn spam nhỏ gọn, nhưng bảo đảm hiệu quả

Code đơn giản , vì mình ko giỏi php lắm, làm cho anh em xem chơi, anh em xem đừng cười

Các bạn có thể kết hợp thêm những mod chống spam khác (chặn từ khóa của bác Lai) để có kết quả chặn spam tốt nhất

Đơn giản là code php, chứ cũng ko phải Mod ^^

Demo :





Đầu tiên là chống đăng ký nick tự động:

Sửa file "register.php" của VBB, chèn đoạn code này vào trên cùng:


PHP Code:
<?php session_start();
if (!isset(
$_SESSION['nhappassok'])){
    include 
'reg_anti.php';
    
    exit;
}

?>
Tạo file mới viết tên : reg_anti.php . Paste đoạn code dưới đây vào:

PHP Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<center>Bạn hãy nhập chữ: <span style='color:red;font-weight: bold ;font-size:18px;'>iloveyou</span> vào khung bên dưới để tiếp tục đăng ký<br><br>
<form action='reg_anti.php' method='post'>
<input type='text' name='pass'><br>
<input type='submit' name='ok' value='Đăng ký'>
</form>
<br>
<?php error_reporting(0); 
    if(isset(
$_POST['ok'])) {
        if(
$_POST['pass']=='iloveyou'){
            
session_start();
            
$_SESSION['nhappassok'] = $_POST['pass'];
            echo 
'<br>OK. Vui lòng chờ 1 giây...';
            echo 
'<meta http-equiv="Refresh" Content="0; url=http://websitecuaban.com/register.php">';
            exit;
        }
        else {
            echo 
'<b>Lỗi:</b> Bạn nhập không đúng, xin nhập lại cho đúng';
        }
    }
    
?>
</center>
Thế là xong, mục đích của code này là bắt buộc phải nhập tay mã yêu cầu, nhập đúng mới tạo ra Session, mới xem đc trang đăng ký
Các bạn có thể thay câu mã yêu cầu theo ý các bạn nhé


========================

Chống spam bài viết .

Tìm file "newthread.php" của VBB và thêm trên đầu đoạn code sau:

PHP Code:
<?php error_reporting(0); session_start();
    if (!isset(
$_SESSION['baoveok'])) {
        include 
'post_anti.php';
        
$http 'http://';
        
$_SESSION['linkbandau'] = $http.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        
        exit;
    }

?>
Save lại

Tạo file mới với tên : post_anti.php với nội dung:


PHP Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<center>
<h2>Hệ thống bảo vệ chống spam </h2><br>
Bạn hãy gõ chữ: <span style='color:red;font-weight: bold ;font-size:18px;'>viptayninh.com</span> vào khung bên dưới để tiếp tục viết bài<br><br>
<form action='post_anti.php' method='post'>
<input type='text' name='pass'><br>
<input type='submit' name='ok' value='Xác nhận'>
</form>


<?php error_reporting(0);
    if (isset(
$_POST['ok'])) {
        if (
$_POST['pass']=='viptayninh.com'){
            
session_start();
            
$_SESSION['baoveok'] = $_POST['pass'];                
            echo 
'<meta http-equiv="Refresh" Content="0; url='.$_SESSION["linkbandau"].'">';
            echo 
'OK. Chờ 1 giây...';
            exit;
        }
        else {
            echo 
'<b>Lỗi:</b> Bạn đã nhập sai, xin nhập lại chính xác để tiếp tục';
        
        }
    }

?>
</center>
Nội dung cũng là bắt phải nhập tay mã yêu cầu trước, đúng mới tạo ra session mới đc post bài

Đơn giản vậy thôi, tuy là nhìn k đẹp lắm nhưng bảo đảm hiệu quả, các bạn có thể thêm mắm muối tùy ý thích

Mời anh em cho ý kiến

Nguồn: sinhvienit.net