Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

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

Статус
Закрыто для дальнейших ответов.

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
    bonus.zip
    Размер файла
    1,5 КБ
    Просмотров
    42
Последнее редактирование:
Да ты говнокодер, отвечаю.
upload_2015-11-29_3-21-51.png
Больше одинаковых SQL ведь мы не знаешь что такое запятая. Конфиг отдельная история. mysql_connect, уууу.
 
Да ты говнокодер, отвечаю.
Больше одинаковых SQL ведь мы не знаешь что такое запятая. Конфиг отдельная история. mysql_connect, уууу.
Я нубик:)
Я же написал, делал как умел
Лучше бы подсказал как правильней.
Завтра переделаю, сделаю с немного меньшим говнокодом
 
Последнее редактирование:
Хоть кто - то оценит скрипт нормально? :cry:
 
Хорошая работа для новчика. Все начинали с документации и говнокода:)
Спасибо :)
Немного исправил, надеюсь не будут агриться :) :good:
И убрал Mysql. Им скоро и пользоваться перестанут
Да ты говнокодер, отвечаю.
Больше одинаковых SQL ведь мы не знаешь что такое запятая. Конфиг отдельная история. mysql_connect, уууу.
Щас лучше?
 
А импорт? :D Кто-то должен это написать, ибо некоторым лень самим делать.
 
Эм, 2 строчки?
ALTER TABLE `users` ADD `days` varchar(255) NOT NULL DEFAULT '';
ALTER TABLE `users` ADD `last_bonus` varchar(255) NOT NULL DEFAULT '';
Именно!:) Прост ваще чёт я ленивый котэ...
Всем привет, нужен был скрипт, который давал бы бонус после 7 дней заходов на сайт. Да, я не очень -то умею писать, сделал, что умел.

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

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

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

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

И если он отметился столько, сколько вы указали в конфиге, то его счёт пополнится на столько, сколько указали в config.php
А можно пример? Пример как сделать под авторизацию.
Я просто в этом немножко(пи*дёж:D ваще нуб) нуб.
Ну или любой пример.
 
Я нубик:)
Я же написал, делал как умел
Лучше бы подсказал как правильней.
Завтра переделаю, сделаю с немного меньшим говнокодом
Я написал это ещё когда тема была в написание описания.
То что ты использовал 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 делать если несколько.
SQL:
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
 
Последнее редактирование:
$name = $_GET['name']; //Ник юзера
Тут я понял что проверки и в помине нету
 
$name = $_GET['name']; //Ник юзера
Тут я понял что проверки и в помине нету
Да, желательно бы так, а лучше сразу иметь представления в виде класса.
PHP:
$name = isset($_GET['name'])?$_GET['name']:null;
 
Может всё-же кто-нибудь напишет как эту штуку можно использовать?!
 
Обновил, оцени и скажи что не так, пожалуйста))
 

Вложения:

  • bonus.zip
    bonus.zip
    Размер файла
    1,6 КБ
    Просмотров
    9
Обновил, оцени и скажи что не так, пожалуйста))
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
 

Вложения:

  • upload_2015-11-30_1-1-4.png
    upload_2015-11-30_1-1-4.png
    Размер файла
    5,8 КБ
    Просмотров
    27
SQL ты не переделал как я показал. С настройками уже лучше. Ключа name в $_GET может и не быть добавляй проверку в начале и уже если $name === null тогда выдавай исключение.
Используй одинарные кавычки, это во первых улучшит читаемость и скрипт будет работать быстрее (Ибо php не нужно искать спец символы/переменные и заменять. Точка и одинарные кавычки очень хороший вариант.). У тебя здесь не указан WHERE и для замены не забудь использовать execute
Общепринято в PDO писать $stmt - statment
Здесь и так строка не сложная использую одинарные кавычки или как вариант ниже так лучше будет.
Я использую ООП но это можно сделать и в процедурном стиле.
Посмотреть вложение 37950
isset здесь уже не нужен ибо переменная создана, нужно понимать разницу isset и empty.
isset - Проверяет что переменная/ключ массива созданы
empty - Проверяет пустое ли значение в этой переменной ('',null,false,0) ну ты понял.
Очень информативные переменные, описывай переменную правильно и не нужно дублировать с цифрой или префиксом. Не используй нижнее подчёркивание лучше так voteTime чем vote_time, это значительней ускорит разработку и будет более читабельно.
Вот что получилось:nerd:
 

Вложения:

  • bonus.zip
    bonus.zip
    Размер файла
    1,7 КБ
    Просмотров
    12
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх