Request Code kích hoạt thành viên bằng SMS trên Xenforo 2

thahtrung06

Super Moderator
Thành viên BQT
Mình thấy trên forum VNXF có chia sẻ code để kích hoạt tài khoản thành viên bằng SMS sử dụng dịch vụ của http://sms.vn, mình có thử nhưng không được. Vì vậy, mình đăng bài viết này để nhờ các bạn trợ giúp.

Code mình đang sử dụng:
Mã:
<?php
// 1. Xu ly du lieu cua ban tai day
    $db['servername'] = 'localhost';
    $db['username'] = 'tên username';
    $db['password'] = 'mật khẩu csdl';
    $db['dbname'] = 'tên csdl';

 
    $conn = mysqli_connect($db['servername'], $db['username'], $db['password'], $db['dbname']);
    
    if (!$conn) {
    die('Could not connect: ' . mysql_error());
}

// 2. Nhan du lieu request tu iNET gui qua
    $code               = $_REQUEST['code'];            // Ma chinh
    $subCode            = $_REQUEST['subCode'];         // Ma phu
    $mobile             = $_REQUEST['mobile'];          // So dien thoai +84
    $serviceNumber      = $_REQUEST['serviceNumber'];   // Dau so 8x85
    $info               = $_REQUEST['info'];            // Noi dung tin nhan


// 3. Ghi log va kiem tra du lieu
// Tim file log.txt tai thu muc chua file php xu ly sms nay
// kiem tra de biet ban da nhan du thong tin ve tin nhan hay chua
$text = $code." - ".$subCode." - ".$mobile." - ".$serviceNumber." - ".$info;
$fh = fopen('log.txt', "a+") or die("Could not open log.txt file.");
@fwrite($fh, date("d-m-Y, H:i")." - $text\n") or die("Could not write file!");
fclose($fh);


// 4. Xử lý kích hoạt tai khoan thanh vien
    $arr                = explode(' ', $info);
            
   if (strlen($arr[2]) > 20){
        $arr[2] = substr($arr[2], 0, 20);
    }
        
    $sql2 = "SELECT * FROM     `xf_user` WHERE `username` = '$arr[2]'";
    $result2 = mysqli_query($conn,$sql2);

    if (isset($result2) && $result2 == TRUE & mysqli_num_rows($result2))
    {
        $sql = "UPDATE `xf_user` SET `user_state` = 'valid' WHERE `username` = '$arr[2]' AND `user_state` = 'moderated'";
        mysqli_query("set names 'utf8'");
            $result = mysqli_query($conn,$sql);

        $responseInfo = "SĐT ".$mobile."\n Tài khoản: ".$arr." ĐÃ KÍCH HOẠT THÀNH CÔNG.\n";
    }
    else {
        $responseInfo = "SĐT ".$mobile."\n Tài khoản: ".$arr." KHÔNG TỒN TẠI hoặc TIN NHẮN SAI CÚ PHÁP - HÃY KIỂM TRA LẠI.\n";
    }
    mysqli_close($conn);
    echo '0|'.$responseInfo;

?>
Không biết code trên sai chỗ nào mà không được, mình thấy có bạn @tri78 có áp dụng cái này, mình đã inbox nhiều lần nhưng không thấy thành viên này hồi âm lại.
 
Code này quá cũ và tồn tại vài lỗi, ví dụ kích hoạt bằng đàu số 8685 (10k), nhưng ông nào "ma" nhắn 8585 (5K) vẫn kích hoạt đc. Có nhắn bên forum bạn.
 
Back
Top