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

[PHP] Как упростить код (лицензирование)

  • Автор темы Автор темы Ivan_32
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
18 Сен 2018
Сообщения
34
Реакции
11
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В общем я не знаю языки web программирования и тут появилась необходимость, делаю по фану для саморазвития!
И я на лету схватил php, Но немогу понять как сделать мультихвид, типо сейчас один мой а если допустим нужно пару десятков? Знаю с sql лучше и вообще можно из индиго спастить но я хочу сам с нуля "саморазвитие".
Код:
PHP:
Expand Collapse Copy
<?php //пример запроса http://doma.in/index.php?hwid=4233162307
$_GET['hwid'];
$myhwid = "4233162307"; //типо хвид одного юзверя
$date1 = date('d.m.o'); // получение даты сервера
$date2='25.09.2018'; //статик дата окончания подписки
function sectotime($seconds) //функция перевода секунд в дни
{
    $dt1 = new \DateTime('@0');
    $dt2 = new \DateTime("@$seconds");
    return $dt1->diff($dt2)->format('%a');
}
if($_GET['hwid'] == $myhwid)//если хвид совпадает с хвидом юзверя то...
{
    if(strtotime($date1)<strtotime($date2)) //если время хоста меньше времени окончания подписки то...
    {
        echo sectotime(strtotime($date2) - strtotime($date1)); //если true выводит число дней
    }
    else
    {
        echo "adin"; //истекла подписка
    }
}
else
{
    echo "onetnooo"; // нету подписки
}
?>
 
Добавь все хвиды в массив, а потом
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно делать массивы в массиве или используй бд
окей, я понял, допустим я это сделал, а как в массиве
PHP:
Expand Collapse Copy
$mass = array(array("4233162307", "23.09.2019"), array("1337", "25.09.2018"));
найти допустим дату юзера 1337 а потом сразу ещё и 4233162307? ибо я сделал так что обращаться можно только к одному и не придставляю как сделать по другому, хотя системное мышление у меня довольно не плохо развито.
Подумывал про бд но я не знаю как делать запросы. Я не знаю SQL. Также я не смогу создать таблицу. А гуглить сакю`эль это пизда, проще в окно выйти.
 
Последнее редактирование:
Прочитал код - рыгнул под стол.

Зачем использовать функцию перевода секунд в дни? Это что за дичь?

Сделай нормальный код, вынеси все функции в отдельный файл.

$hwid = $_GET['hwid'];
$hwids = array('1111' , '2222');

if(!in_array($hwid , $hwids)){
return print_r("error hwid");
}


$date_left = strtotime("24.09.2018");
$ctime = time();

if($date_left < $ctime){
return print_r("error time);
}

return print_r("success");

// остаток времени = $date_left - $ctime;
// получишь секунды, дели на 60 чтобы олувить минуты, потом еще 60 для часов и 24 для дней.

И кстати да, у тебя это крайне не удобная система, человек на 5 еще пойдет, но не 10 и далее.

Если хочешь сделать чтобы у каждого было свое время окончания, то нужно сделать отдельный массив, с hwid'ом и датой.

$array = array(
"1111-2222-3333-4444" => array(
"date" => "24.09.2018"
),
//etc
);

Ну и делаешь foreach

foreach($array as $key => $value){
if($key == $hwid){
if($value["date"] < time(){
return print_r("success");
}
}
}

Второй вариант хер знает как будет работать, ибо не могу протестить и пишу с мобилки, но суть я думаю ты уловил.
И используй дату в int unix , чтобы передавать и секунды, а не толькл дни.
Ну либо записывай "24.09.2018 10:00"
 
Сделай нормальный код
так и твой тоже не блещет нормальностью)))
Подобного рода задачи решаются с помощью MySQL, а не массивами. +откуда вы копируете эту дичь с Get? post нужно использовать.
 
так и твой тоже не блещет нормальностью)
Я набросал с телефона куски дерьма а не кода. Если автор далек от баз данных и вообще мало что понимает, я попробую объяснить доходчиво.

откуда вы копируете эту дичь с Get
Get проще отправить на плюсах, если человеку там нужно, он можео заменить.

И раз на то пошло, у меня ошибка в коде. $hwid = isset($_GET['Hwid']) ? $_GET['hwid'] : null;

Думаю так будет правильней.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Прочитал код - рыгнул под стол.

Зачем использовать функцию перевода секунд в дни? Это что за дичь?

Сделай нормальный код, вынеси все функции в отдельный файл.
это мой первый говнокод и если учесть что я даже мануалов не проходил, думаю ты тоже когда-то такой же делал.
 
это мой первый говнокод и если учесть что я даже мануалов не проходил, думаю ты тоже когда-то такой же делал.
Делай с использованием mySQL.
Ибо дичь получается жесткая.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я набросал с телефона куски дерьма а не кода. Если автор далек от баз данных и вообще мало что понимает, я попробую объяснить доходчиво.


Get проще отправить на плюсах, если человеку там нужно, он можео заменить.

И раз на то пошло, у меня ошибка в коде. $hwid = isset($_GET['Hwid']) ? $_GET['hwid'] : null;

Думаю так будет правильней.
Кароч я решил ебашить через SQL, Появилась ещё проблема, Как сделать ответ от сервера? сейчас юзаю уязвимость 2008 года которая записывает скачеваемый в тхт ответ от сервера и записывает в екзешник без увелечения размера файла, но это на изи перехватывается даже с https, а так как я малёх тупой и не умею работать с сокетами и тд я не могу нормально получать ответ от сервера, пробывал писатить с индиго но там говнокод ебучий.
 
Назад
Сверху Снизу