1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
  3. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Веб Бонус в определённый период

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем KronosHD, 28 ноя 2015.

Статус темы:
Закрыта.
  1. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Всем привет, нужен был скрипт, который давал бы бонус после 7 дней заходов на сайт. Да, я не очень -то умею писать, сделал, что умел.

    Вобщем, чтоб было легко, там есть конфиг, чтоб настроить.

    Что делает скрипт:
    При авторизации или просто нажатии на кнопку(которая будет отправлять запрос на этот скрипт)
    Юзеру добавляется в колонку day + 1
    А в колонку last_bonus дату в формате timestamp.
    И через 24 часа(это можно настроить) при нажатии добавляется + 1 в колонку day и так столько, сколько вы укажите в config.php.

    Если юзер не отметился в течение 48 часов(тоже можно настроить в config.php), то его колонка day обнуляется и он должен отмечаться заного.

    В config.php вы должны указать сколько дней нужно отмечаться и какой бонус за это.

    И если он отметился столько, сколько вы указали в конфиге, то его счёт пополнится на столько, сколько указали в config.php
     

    Вложения:

    • bonus.zip
      Размер файла:
      1,5 КБ
      Просмотров:
      42
    Последнее редактирование: 28 ноя 2015
  2. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Да ты говнокодер, отвечаю.
    upload_2015-11-29_3-21-51.png
    Больше одинаковых SQL ведь мы не знаешь что такое запятая. Конфиг отдельная история. mysql_connect, уууу.
     
  3. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Я нубик:)
    Я же написал, делал как умел
    Лучше бы подсказал как правильней.
    Завтра переделаю, сделаю с немного меньшим говнокодом
     
    Последнее редактирование: 28 ноя 2015
  4. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Хоть кто - то оценит скрипт нормально? :cry:
     
  5. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Спасибо :)
    Немного исправил, надеюсь не будут агриться :) :good:
    И убрал Mysql. Им скоро и пользоваться перестанут
    Щас лучше?
     
  6. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    А импорт? :D Кто-то должен это написать, ибо некоторым лень самим делать.
     
  7. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    Эм, 2 строчки?
    ALTER TABLE `users` ADD `days` varchar(255) NOT NULL DEFAULT '';
    ALTER TABLE `users` ADD `last_bonus` varchar(255) NOT NULL DEFAULT '';
     
  8. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    Именно!:) Прост ваще чёт я ленивый котэ...
    А можно пример? Пример как сделать под авторизацию.
    Я просто в этом немножко(пи*дёж:D ваще нуб) нуб.
    Ну или любой пример.
     
  9. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Я написал это ещё когда тема была в написание описания.
    То что ты использовал PDO ничего не изменилось.
    Использую кодировку UTF-8.
    Это не нужно, php в любом случае выведет ошибку.
    PHP:
    try
    {
        
    $connect "mysql:host={$host};dbname={$base}";
        
    $db = new PDO($connect$user$pass); 
    }
    catch(
    PDOException $e)
    {
        echo 
    "Ошибка PDO: {$e->getMessage()}";
    }
    Ты использовал PDO но ты не использовал statment почему ?
    А ты не думал что переменная $_GET['name'] может не существовать и её можно заменить ? Выдаст NOTICE.
    PHP:
    $name $_GET['name'];
    Зачем столько переменных ? Дели на массивы.
    upload_2015-11-29_11-37-57.png
    Зачем вот такое делать ?
    upload_2015-11-29_11-39-10.png
    Просто лишняя перменная. И ещё не надо получат все элементы, указывай что нужно
    PHP:
    $result $db->prepare('SELECT last_bonus,day FROM '.$table.' WHERE name=:name LIMIT 1')->execute([
        
    'name' => $name
    ])->fetch(PDO::FETCH_ASSOC);
    Вот как нужно sql update делать если несколько.
    Код:
    UPDATE '.$table.' SET '.$last_bonus.'=:last, '.$money.'=:money, '.$day.'=:day WHERE name=:login
    
    PHP:
    $db->prepare($sql)->execute([
        
    'last' => $time,
        
    'bonus' => $bonus,
        
    'day' => 0,
        
    'login' => $name,
    ]);
    Дам совет, если переменная не будет использоваться больше одного раза, не создавай её.
    OMG
     
    Последнее редактирование: 29 ноя 2015
  10. TneRED

    TneRED Активный участник

    Баллы:
    61
    Имя в Minecraft:
    TneRED
    $name = $_GET['name']; //Ник юзера
    Тут я понял что проверки и в помине нету
     
  11. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Да, желательно бы так, а лучше сразу иметь представления в виде класса.
    PHP:
    $name = isset($_GET['name'])?$_GET['name']:null;
     
  12. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    Может всё-же кто-нибудь напишет как эту штуку можно использовать?!
     
  13. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    $member_id['name'] :D
     
  14. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    Ахаха, а вот и блокировщик. Нах заблочил? Не спасёт же есть VPN
     
  15. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Там не указано что это dle
     
  16. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    У тебя 3 аккаунта что-ли на рб? Потому что за*б*л копировать.
     
  17. GHOST-MEN

    GHOST-MEN Активный участник Пользователь

    Баллы:
    76
    Нет, больше. А сказать не мог?
     
  18. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Обновил, оцени и скажи что не так, пожалуйста))
     

    Вложения:

    • bonus.zip
      Размер файла:
      1,6 КБ
      Просмотров:
      9
  19. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    SQL ты не переделал как я показал. С настройками уже лучше. Ключа name в $_GET может и не быть добавляй проверку в начале и уже если $name === null тогда выдавай исключение.
    upload_2015-11-30_1-5-17.png
    Используй одинарные кавычки, это во первых улучшит читаемость и скрипт будет работать быстрее (Ибо php не нужно искать спец символы/переменные и заменять. Точка и одинарные кавычки очень хороший вариант.). У тебя здесь не указан WHERE и для замены не забудь использовать execute
    upload_2015-11-30_1-4-48.png
    Общепринято в PDO писать $stmt - statment
    upload_2015-11-30_1-6-37.png
    Здесь и так строка не сложная использую одинарные кавычки или как вариант ниже так лучше будет.
    upload_2015-11-30_1-8-17.png
    Я использую ООП но это можно сделать и в процедурном стиле.
    upload_2015-11-30_1-9-51.png
    isset здесь уже не нужен ибо переменная создана, нужно понимать разницу isset и empty.
    isset - Проверяет что переменная/ключ массива созданы
    empty - Проверяет пустое ли значение в этой переменной ('',null,false,0) ну ты понял.
    upload_2015-11-30_1-10-55.png
    Очень информативные переменные, описывай переменную правильно и не нужно дублировать с цифрой или префиксом. Не используй нижнее подчёркивание лучше так voteTime чем vote_time, это значительней ускорит разработку и будет более читабельно.
    upload_2015-11-30_1-13-55.png
     

    Вложения:

  20. Автор темы
    KronosHD

    KronosHD Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    KronosHD
    Вот что получилось:nerd:
     

    Вложения:

    • bonus.zip
      Размер файла:
      1,7 КБ
      Просмотров:
      12
Статус темы:
Закрыта.

Поделиться этой страницей