Ý tưởng khác Update Signature Limited time

Thảo luận trong 'Xenforo Ideas' bắt đầu bởi VXF_dxboy, 25/11/14.

1votes
5/5, 1 vote

  1. VXF_dxboy

    VXF_dxboy New Member

    Bài viết:
    14
    Likes :
    3
    Theo yêu cầu forum.dichvuseo(dot)com/threads/thong-bao-ve-viec-don-dep-chu-ky-va-trang-chu-ca-nhan.30790/page-4#post-315162
    Mình viết kịch bản như ở dưới.

    Nhờ anh em test hộ code này với nhé. Mình viết nhưng chưa test full được, cài localhost mà không tạo được thêm user để test.

    Mình amater PHP. Cũng vừa vọc qua Xenforo để nắm cơ bản các bảng để truy vấn.
    Rất muốn anh em góp ý chỉ giáo thêm.

    Copy mã dưới lưu file resetSignature.php và đặt tại @root/resetSignature.php
    sau đó vô domain.com/resetSignature.php => enter là xong quá trình reset.
    đặt thời gian cho $timeLimit theo ý muốn
    Dưới đây là mã mình viết.

    PHP:
    <?php
    //Mã bởi @cuccucu IDVS thanhvn.info@gmail.com
    include(dirname(__FILE__) . "/library/config.php");
    $servername $config['db']['host'];
    $username $config['db']['username'];
    $password $config['db']['password'];
    $dbname $config['db']['dbname'];

    $six 6*30*24*60*60// 6 thang
    $three 3*30*24*60*60// 3 thang
    $test60s 60// test 60 giay

    $timeLimit $six;// dat thoi gian gioi han vao day
    $timeDelSignature time() - $timeLimit;
    $updateContentSignature 'Quay lai som nhe';// chen noi dung reset vao day hoac de trong

    function getDateTime($time)
    {
        return 
    gmdate("d-m-Y g:i:s A"$time);
    }
    function 
    LongerTime($lastTime)
    {
        
    $longerTime round((time() - $lastTime)/(24*60*60));
        return 
    $longerTime;
    }

    $conn = new mysqli($servername$username$password$dbname);
    if (
    $conn->connect_error) {
        die(
    "Connection failed: " $conn->connect_error);
    }

    $sql "
            SELECT *
            FROM xf_user_profile up
            LEFT JOIN xf_session_activity sa
            ON up.user_id = sa.user_id
            LEFT JOIN xf_user us
            ON up.user_id = us.user_id  
            "
    ;
    $result $conn->query($sql);

    if (
    $result->num_rows 0) {
        
    $sum=array();
        while(
    $row $result->fetch_assoc()) {
            if(
    $row['view_date']<$timeDelSignature)
            {
                
    $sum[] = $row['user_id'];
                
    $sql2 "
                        UPDATE xf_user_profile
                        SET signature='"
    .$updateContentSignature."'
                        WHERE user_id='"
    .$row['user_id']."'
                        "
    ;
                if (
    $conn->query($sql2) === TRUE) {
                    echo 
    'Member <strong>'.$row['username'].'</strong> // email: <strong>'.$row['email'].'</strong> // <strong>'.LongerTime($row['view_date']).'</strong> ngay khong tham gia // lan cuoi vao luc <strong>'.getDateTime($row['view_date']).'</strong> ==>  Reset signature <strong>'.$row['signature'].'</strong><br>';
                }
            }
        }
        echo 
    "<br><br><strong>Tong so [".count($sum)."] Member da reset signature</strong>";
    } else {
       echo(
    'khong co ket qua nao');
    }
    $conn->close();
    ?> 
    *chú ý: thời gian thực time(), lệnh lấy thời gian theo giờ hiện tại của máy tính đang chạy. Nếu ngày giờ đặt sai nên chỉnh lại trước khi cho chạy, nếu không sẽ xảy ra sai số ngày tháng, lệnh reset sẽ sai lệch.

    do mình ko dành quản lý xử dụng code Xenforo mình đã cài và chỉ test được mỗi user là admin nên
    cho ra kết quả như sau

     
    oke thích bài này.
    Đang tải...
  2. VXF_dxboy

    VXF_dxboy New Member

    Bài viết:
    14
    Likes :
    3
    Rất cảm ơn bạn đã ủng hộ, tuy nhiên mình cũng cần test để xem có OK lắm ko, căn bản PHP mình viết cũng nắm được và nghĩ nó chạy tốt, nhưng cái gì cũng phải thử cho chắc cú :D, mình mới test trên có 1 user thôi à,

    Bạn đã test chưa?
     
  3. btclub.vn

    btclub.vn New Member

    Bài viết:
    27
    Likes :
    7
    Tong so [10926] Member da reset signature
    ko 1 loi lam
     
    VXF_dxboy thích bài này.
comments powered by Disqus

Chia sẻ trang này

Đang tải...