Тема: Начисление монет и рейтинга (WAP/WEB мастеру/Помощь мастерам) AntonIM62 (16 Jul 2015 в 16:39) Где-то видел начисление раз в 24 часа монет. Можно найти и переделать.:) Pro_100_Igor (16 Jul 2015 в 16:43) AntonIM62, Антоха вспоминай где видел :-д DeRived (16 Jul 2015 в 16:51) Да кто может напишите очень хороший мод! Сибирский (16 Jul 2015 в 17:21) <?php if (isset($user)) { $time=time(); isset($_SESSION[\'up_t_r\'])?$_SESSION[\'up_t_r\']=$time:null; isset($_SESSION[\'up_t_summ\'])?$_SESSION[\'up_t_summ\']=0:null; if ($time-$_SESSION[\'up_t_r\']<=150) { $_SESSION[\'up_t_summ\']=$_SESSION[\'up_t_summ\']+($time-$_SESSION[\'up_t_r\']); } if ($_SESSION[\'up_t_summ\']>=3600) { mysql_query(\"UPDATE `user` SET `balls`=(`balls`+100), `rating`=(`rating`+5) WHERE `id`=\'$user[id]\' LIMIT 1\"); $_SESSION[\'up_t_summ\']=0; } } ?> [i]Добавлено:[/i] Хдесь баллы начисояет, для монет будет щапрос такой mysql_query(\"UPDATE `user` SET `money`=(`money`+100), `rating`=(`rating`+5) WHERE `id`=\'$user[id]\' LIMIT 1\"); DeRived (16 Jul 2015 в 17:54) Сибирский, А как сделать чтоб с етим запросом в шапке сайта надпись появлялась типа спасибо что вы снами вот вам бонус 100б след бонус через час Сибирский (16 Jul 2015 в 18:02) DeRived, ну ты куда эту надпись выводить будешь? В почту или куда? И конкретно напиши текст какой отправлять. DeRived (16 Jul 2015 в 18:23) --Цитата-- Сибирский (16 Jul 2015 в 18:02): DeRived, ну ты куда эту надпись выводить будешь? В почту или куда? И конкретно напиши текст какой отправлять. ---------- Сибирский, Ну вот смотри типа в шапке появляеться надпись каждый час ну текст любой типа бонус за время проведеное на сайте Сибирский (16 Jul 2015 в 18:29) DeRived, то есть просто как уведомление об ошибке или тому подобное, тогда просто все после запроса добавляем $_SESSION[\'message\']=\"Твой текст оповещения\"; Pro_100_Igor (16 Jul 2015 в 19:13) Сибирский, ну с баллами и монетами я бы разобрался.А вот запрос в почту верно составил? $User = 1; $MoneyMsg=\"Уважаемый Pro_100_Igor Вам зачислено +100 монет и 5% рейтинга на счет! Заходите каждый час на сайт, и получайте еще больше монет и рейтинга!\"; mysql_query(\"INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values(\'$User\', \'$user[id]\', \'$MoneyMsg\', \'$time\')\"); Сибирский (16 Jul 2015 в 19:27) Pro_100_Igor, да, вроде все верно. Напишите потом работает эта херня вообше или нет )) Я ее на коленке написал только что )) Pro_100_Igor (16 Jul 2015 в 19:32) Сибирский, Notice: Undefined index: up_t_r in Undefined index: up_t_summ вот такие ошибки! Сибирский (16 Jul 2015 в 19:45) Ага, вот эти две строеи замени !isset($_SESSION[\'up_t_r\'])?$_SESSION[\'up_t_r\']=$time:null; !isset($_SESSION[\'up_t_summ\'])?$_SESSION[\'up_t_summ\']=0:null; изменения знат инверсии спереди Pro_100_Igor (16 Jul 2015 в 19:49) Сибирский, все ошибка пропала))теперь подожду немного для проверки) Сибирский (16 Jul 2015 в 20:18) Pro_100_Igor, можно просто вывести значения переменных $_SESSION[\'up_t_r\'] $_SESSION[\'up_t_summ\'] на страницу и смотреть при обновлении Pro_100_Igor (17 Jul 2015 в 11:29) Сибирский, не работает. Скиталец (17 Jul 2015 в 15:35) В сессию писать не вариант, она слетает, чистится и вообще юзвер может зайти 40 мин просидеть и выйти потом войти и ему ещё 1 час тусить?? Пoпробуй так <?php $a = (time()-$user[\'date_reg\']); if($a % 3600 == 0){ mysql_query(\"UPDATE user SET money = \'(money + 100)\', rating = \'(rating + 5)\' where id = \'$user[id]\'\"); msg(\'текст оповещения\'); } ?> х/з попробуй так [i]Добавлено:[/i] А не это шляпа юзер же может и не быть на сайте этот час :D надо в формулу вносить время реального онлайна... Zed (17 Jul 2015 в 15:50) --Цитата-- Скиталец (17 Jul 2015 в 15:35): В сессию писать не вариант, она слетает, чистится и вообще юзвер может зайти 40 мин просидеть и выйти потом войти и ему ещё 1 час тусить?? Пoпробуй так <?php $a = (time()-$user[\'date_reg\']); if($a % 3600 == 0){ mysql_query(\"UPDATE user SET money = \'(money + 100)\', rating = \'(rating + 5)\' where id = \'$user[id]\'\"); msg(\'текст оповещения\'); } ?> х/з попробуй так [i]Добавлено:[/i] А не это шляпа юзер же может и не быть на сайте этот час :D надо в формулу вносить время реального онлайна... ---------- Скиталец, а если куки попробовать Сибирский (17 Jul 2015 в 16:01) Скиталец, пишите в БД ) Но такой мод уже есть, и тем более, раз он не остается на сайте то и не для чего ему такие начисления делать. Сессия по умолчанию хранится 24 минуты и если нет активности затирается, другое дело динамические ай пи Скиталец (17 Jul 2015 в 16:05) --Цитата-- Сибирский (17 Jul 2015 в 16:01): Скиталец, пишите в БД ) Но такой мод уже есть, и тем более, раз он не остается на сайте то и не для чего ему такие начисления делать. Сессия по умолчанию хранится 24 минуты и если нет активности затирается, другое дело динамические ай пи ---------- Сибирский, да б/д вариант. Сибирский (17 Jul 2015 в 16:33) Скиталец, ну я делал на бд, в курсе наверное )) Скиталец (17 Jul 2015 в 18:00) --Цитата-- Сибирский (17 Jul 2015 в 16:33): Скиталец, ну я делал на бд, в курсе наверное )) ---------- Сибирский, да у меня твой стоит, я его на phpbb И JCMS ставил, сколько лет таскаю :D а недавно благодаря Руслану (Кредитор) обратный отсчет до получения бонуса сделал, он функцию counttime(); на форуме написал,а я её туда пристроил :) Saint (17 Jul 2015 в 18:37) //можно как то так попробовать <? //sql alter table `user` add `timebonus` int(11) default \'0\'; $timebonus = time() - $user[\'date_last\']; if($timebonus < 120) { $actTimebonus = $user[\'timebonus\'] + $timebonus; if($user[\'timebonus\'] > 3600) { $actTimebonus = 0; $addSql = \" AND money = \'(money + 100)\',rating = \'(rating + 5)\'\"; } else $addSql = null; mysql_query(\"UPDATE `user` SET `timebonus` = {$actTimebonus} {$addSql} where `id` = \". $user[\'id\']); unset($timebonus,$actTimebonus,$addSql); //месседж... } ?> //не проверял Скиталец (17 Jul 2015 в 18:46) --Цитата-- Saint (17 Jul 2015 в 18:37): //можно как то так попробовать <? //sql alter table `user` add `timebonus` int(11) default \'0\'; $timebonus = time() - $user[\'date_last\']; if($timebonus < 120) { $actTimebonus = $user[\'timebonus\'] + $timebonus; if($user[\'timebonus\'] > 3600) { $actTimebonus = 0; $addSql = \" AND money = \'(money + 100)\',rating = \'(rating + 5)\'\"; } else $addSql = null; mysql_query(\"UPDATE `user` SET `timebonus` = {$actTimebonus} {$addSql} where `id` = \". $user[\'id\']); unset($timebonus,$actTimebonus,$addSql); //месседж... } ?> //не проверял ---------- Saint, да проще взять у юниона (сибирского) мод зарплаты там уровень и прогресс + каждый новый уравень можно рейт давать, а каждый час монеты да и зачем изобретать велосипед когда готовый есть :) Сибирский (17 Jul 2015 в 18:47) Еще есть момент, видел вариации рейтинг модуля, где при каждом голосовании рейтинг не добавляется а пересчитывается сумма по таблице голосов ) В этом случае все наши варианты касаемо рейтинга ни о чем )) Так как следующее голосование просто затрет бонус )) Скиталец (17 Jul 2015 в 18:49) --Цитата-- Сибирский (17 Jul 2015 в 18:47): Еще есть момент, видел вариации рейтинг модуля, где при каждом голосовании рейтинг не добавляется а пересчитывается сумма по таблице голосов ) В этом случае все наши варианты касаемо рейтинга ни о чем )) Так как следующее голосование просто затрет бонус )) ---------- Сибирский, точно! Там же еще одна табла учавствует user_voice2 кажется к ней тоже инсерт нужен :) Pro_100_Igor (17 Jul 2015 в 21:27) Saint, поставил.Завтра скажу работает или нет .гг. Saint (18 Jul 2015 в 00:43) Скиталец, Можно как угодно дополнить же)) Не юзал его скрипты)) dcms-fiera (18 Jul 2015 в 03:39) <? include_once \'../sys/inc/start.php\'; include_once \'../sys/inc/compress.php\'; include_once \'../sys/inc/sess.php\'; include_once \'../sys/inc/home.php\'; include_once \'../sys/inc/settings.php\'; include_once \'../sys/inc/db_connect.php\'; include_once \'../sys/inc/ipua.php\'; include_once \'../sys/inc/fnc.php\'; include_once \'../sys/inc/user.php\'; mysql_query(\"UPDATE `user` SET `balls` = \'\".($user[\'balls\']+500).\"\' WHERE `id` = \'$user[id]\' LIMIT 1\"); header(\"Location: /info.php\"); ?> тут тоже самое ток начисляется при переходе на эту страницу хотя код можно впихнуть куда угодно Скиталец (18 Jul 2015 в 08:15) dcms-fiera, .позор. Ты все запросы отдельным файлом выполняешь? вредитель! Прикинь можно сделать любое условие <? if($a)mysql_query(\"\"); ///Пока не определиться переменная $a запрос не выполнится ?> а инклуды проще вывести массивом (хотя этм на любителя) <? define(\"H\", $_SERVER[\"DOCUMENT_ROOT\"].\'/\');///константа корневого каталога foreach(array(\'start\', \'compress\', \'sess\', \'settings\', \'db_connect\', \'ipua\', \'fnc\', \'user\') as $a);///имена файлов складываем в массив include H.\'sys/inc/\'.$a.\'.php\';///Инклюдим шапку по мне так проще места меньше занимает ?> dcms-fiera (18 Jul 2015 в 09:05) да не важно кто что заинклудил они так то так и были какими были такими и скинул а если он мастер то поймет что да как Bunny (18 Jul 2015 в 10:48) этот модуль имеется у Искателя... Спроси у него Pro_100_Igor (19 Jul 2015 в 20:47) Up#1 Источник: http://dcms-social.ru/forum/20/44/59485/