Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

License system

  • Автор темы Автор темы Terafl4
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
14 Янв 2018
Сообщения
267
Реакции
51
Здравствуйте, у меня получился вот такой скрипт.
Код:
Expand Collapse Copy
$connect = db_connect();

$date = $connect->query("SELECT date FROM users WHERE login = 'L9mur'");
$getdate=mysqli_fetch_array($date);
$getdate['date'];

$next_date = $getdate['date'] - 1;

if ($getdate['date'] == '0') {
    $disacc = $connect->query("UPDATE users SET hwid = 'disable' where login = 'L9mur'");
    echo "Подписка окончена!";
}
else {
$qq = $connect->query("UPDATE users SET date = '$next_date' where login = 'L9mur'");
}

Если его поставить на КРОН в задержкой допустим в час, то каждый час столбец data на уровне логина L9mur будет уменьшать на 1 единицу, когда значение date будет равна 0, то скрипт обнулит HWID и доступ будет запрещен.
Но проблема заключается в следующим, мне надо чтобы он проверял абсолютно все date на уровне логинов. И уже выполнял действия, либо уменьши НН число на 1 единицу, либо если там 0 - запретить доступ.
Я не понимаю как реализовать, как спарсить все логины из таблицы LOGIN, и подставить в запрос? Думал как-то через цикл можно, но не в дупляю, Спасибо за помощь)
 
Хацкеры, вы где?))
 
у нас только пастцкеры
Мне нужен тот, кто поможет с моей проблемой.
Есть же тут кураторы таких разделов? они же вроде шарят)
 
Пожалуйста, авторизуйтесь для просмотра ссылки.
Почти, почти.
Но то что ты скинул, подсчитывает строки, а мне надо спарсить все логины из столбца 'login'. (вот этого я и не знаю как сделать)
 
Mysqli устаревшая. Используй PDO.
¯\_(ツ)_/¯
Код:
Expand Collapse Copy
<?php
$user = "user";
$password = "password";
try {
 $db = new PDO('mysql:host=localhost;dbname=dbname', $user, $password);
 $db = null;
} catch (PDOException $e) {
 print "Error!: " . $e->getMessage() . "<br/>";
 die();
}
$result = $db->query("SELECT `date`, `hwid`, `login` FROM `users`");
while ($row = $result->fetch_assoc()) {
$row['date'] == 0
 ? $db->query("UPDATE `users` SET `hwid` = 'disable' WHERE `login` = '".$row['login']."'")
 : $db->query("UPDATE `users` SET `date` = '".($row['date']-1)."' WHERE `login` = '".$row['login']."'");
}
?>
 
Последнее редактирование:
Mysqli устаревшая. Используй PDO.
¯\_(ツ)_/¯
PHP:
Expand Collapse Copy
<?php
$user = "user";
$password = "password";
try {
 $db = new PDO('mysql:host=localhost;dbname=dbname', $user, $password);
 $db = null;
} catch (PDOException $e) {
 print "Error!: " . $e->getMessage() . "<br/>";
 die();
}
$result = $db->query("SELECT `date`, `hwid`, `login` FROM `users`");
while ($row = $result->fetch_assoc()) {
$row['date'] == 0
 ? $db->query("UPDATE `users` SET `hwid` = 'disable' WHERE `login` = '".$row['login']."'")
 : $db->query("UPDATE `users` SET `date` = '".($row['date']-1)."' WHERE `login` = '".$row['login']."'");
}
?>
Спасибо. Я уже решил.
Решение: (кому надо)
Код:
Expand Collapse Copy
$i = 0; 
$sql = $connect->query("SELECT login FROM users"); 
$n = mysqli_num_rows($sql); 
$user_name[] = array(); 

for ($i;$i< $n;$i++){
$date = $connect->query("SELECT date FROM users WHERE login = '$users'");
$getdate=mysqli_fetch_array($date);
$getdate['date'];
$row = mysqli_fetch_assoc($sql);
$user_name[] = $row['login'];

$users = $row['login'];

$result = $connect->query("SELECT hwid FROM users WHERE login = '$users'");
$hwid_bd=mysqli_fetch_array($result);
$next_date = $getdate['date'];

if ($getdate['date'] == '0') {
    $disacc = $connect->query("UPDATE users SET hwid = 'disable' where login = '$users'");
    echo "Подписка окончена у пользователя: ".$users."<br>";
}
else {
$qq = $connect->query("UPDATE users SET date = '$next_date' where login = '$users'");
echo "У пользователя: ".$users." | ".$next_date." дней подписки. | HWID: ".$hwid_bd['hwid']."<br>";
}
}
 
Mysqli устаревшая. Используй PDO.
Такого мусора я ещё давно не слышал...

@L9mur , задача какая стоит, что ты хочешь сделать, объясни суть.


Код:
Expand Collapse Copy
<?php


    //require('db.php');
    // Либо вынести в файл подключение, либо использовать его прямо здесь.

    $db = mysqli_connect('127.0.0.1', 'root', '', 'dbname');

    function GetAllUsers()
    {
        global $db;

        $query = "SELECT * FROM `users` WHERE 1";
        $result = mysqli_query($query);

        while ($row = mysqli_fetch_assoc($result)) {
            $array[] = $row;
        }
        if($array != null)
            return $array;

        return false;
    }

    // Какая собственно стоит задача? Ты хочешь сбрасывать хвид? Или время, или что?!?!

    // Попробую ставить статус подписки на 0 если время у человека закончилось.

    $GetUsers = GetAllUsers();
    
    foreach ($GetUsers as $key => $value) {
        // Отсею всех у кого время закончилось.
        if($value['subscription'] < time()){
            $Users[] = $value['login']; //или по ID пользователя.
        }
    }

    foreach ($Users as $value) {
        $query = "UPDATE `users` SET date = '0' where `login` = '{$value}'";
        mysqli_query($query);
    }


?>

Накидал код, не уверен что он заведётся, если ты поправишь на свои данные то он будет работать, просто без проверки написал.
Задачу ты конечно очень не ясно выдал. Если хочешь получить соответствующий ответ, излагай свои мысли и ставь задачу нормально.
 
Молодец, развиваешься. (нет).
MySQL устарела, MySQLi - нет. PDO - это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.
Тогда почему ты сказал что MySQLi устарела?

С точки зрения безопасности обе библиотеки предоставляют разработчику равные возможности и стойкость кода зависит только от программиста

PDO и mysqli — это две сильно разные вещи. PDO является универсальным DBAL, позволяющим работать с любой поддерживаемой базой.

mysqli это узкоспециализированный драйвер, благодаря чему можно использовать все преимущества, он поддерживает мультизапросы, чеснее биндит данные, позволяет собирать статистику.

Это цитаты из того же Гугла (реклама) , так что я вообще не понял твоего посыла, к чему это всё было говорить?


Код:
Expand Collapse Copy
$value = mysqli_real_escape_string($db, $value);
И не нужно ничего выдумывать, эта функция не даст пройти любой инъекции, тогда нужно ли PDO?

Я не стану утверждать что что-то лучше, потому что я не использовал PDO, но я привел цитаты и кусок кода который ничем не хуже PDO.
Если нужно работать с другими БД и не малым количеством, конечно же PDO, а дефолтной MySQL базы хватает за глаза.

И если пишешь подобные сообщения:
Молодец, развиваешься. (нет).
, аргументируй, а не пустословь.
 
аргументируй, а не пустословь.
Почему я написал что она устарела?
1). Потому что не один нормальный разработчик в 2к18 в нормальном проекте не будет городить велосипеды с mysqli, когда за тебя это уже придумали.
2). И больше 80% нормальных сайтов написано, даже не высоко нагруженные написаны на PDO.
3). И не нужно мне кидать цитатки с вики и говорить что они делают, теория и практика это 2 разные вещи.
 
Назад
Сверху Снизу