Update/Remove chữ ký giới hạn theo thời gian lần cuối đăng nhập

dxboys5

Private
Tham gia
02/04/2015
Bài viết
23
Được Like
29
Chào ACE 4 rum.
Mình về cơ bản cũng tập tọe PHP, MYSQL
Trước có một đề tài về update/remove chữ ký thủ công dựa trên công thức là khoảng thời gian cuối cùng mà member đăng nhập (luật khắc khe bên idichvuseo)

Mình chưa hiểu về xen nhưng cũng đã test thành công phiên bản php cài cắm vào.
Đây là công trình 1 đêm gà non của mình post khá lâu rồi, mình bê về đề tài này nếu ACE cần thì sử dụng. Mong góp ý của ACE để mình học hỏi thêm nhiều về PHP vì mình có sở thích và đam mê lập trình.

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

PHP:
<?php

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.

Sau khi kết thúc quá trình reset kết quả xuất thô thông báo như sau

HTML:
Member admin // email: [email protected] // 365 ngay khong tham gia // lan cuoi vao luc 4-5-2015 1:44:24 PM ==> Reset signature [B]Quay lai som nhe[/B]
Tong so [1] Member da reset signature
 
  • Like
Reactions: THB

Top Bottom