Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

luki2407

Użytkownik
  • Postów

    45
  • Dołączył

  • Ostatnia wizyta

Informacje o forum

  • Wersja
    IP.Board 3.4.6

Kontakt

  • Gadu Gadu
    48309807
  • Skype
    AdminPRO/Brain

Ostatnie wizyty

1 872 wyświetleń profilu

Osiągnięcia luki2407

  1. Pod query poszło cos ino pod tym kodem bo z tym time nie dziala oraz po zakupie nadało wszystkim kontom premium a powinno użytkownikowi z ipb_members za pomoca jego userid szukać tego samego id w lss_users i nadać premium jak mówiłem wczesniej $pdo->query("UPDATE lss_users SET premium = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE id = id"); //$pdo->bindValue( ":time", time() + 2592000, PDO::PARAM_INT ); $pdo->bindValue( "id", $this->memberData['userid'], PDO::PARAM_INT ); $pdo->execute(); $this->registry->output->redirectScreen( sprintf('Zakupiłeś: %s. Dziękujemy za zakup i życzymy miłej gry.', $shop['name']), sprintf('%sapp=kokpit&module=shop', $this->settings['base_url']) ); }
  2. No userid jest w ipb_member a premium w lss_users no troszkę pomieszało sie to jak miałoby to wygladac UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE id=':id' ORDER BY id
  3. No niby lepsze ale ci powiem dalej nic strona nie działa po zakupie punkty gamescore wzieło a usługi nie nadało ;/ tu daje czysty kod <?php class public_kokpit_shop_main extends ipsCommand { public function doExecute( ipsRegistry $registry ) { if(!$this->memberData['member_id']) { $this->registry->getClass('output')->showError("Musisz być zalogowany(a) aby móc przeglądać tą sekcję. ", 0); return; } $apikey = ''; $this->DB->query('SELECT * FROM shop'); $this->DB->execute; while($s = $this->DB->fetch()) { $i++; $oList[] = $s; } $this->DB->query('SELECT points FROM members WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $gamescore = $this->DB->fetch(); foreach($oList as $shop) { if(isset($this->request['shop_'.$shop['id']])) { if($gamescore['points'] >= $shop['cost']) { $gamescore['points'] -= $shop['cost']; $this->DB->query('UPDATE members SET points='.$gamescore['points'].' WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $this->registry->output->redirectScreen( 'Zakupiłeś: '.$shop['name'].'. Dziękujemy za zakup i życzymy miłej gry.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { $this->registry->output->redirectScreen( 'Nie posiadasz tylu punktów na koncie.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } } } if(isset($this->request['submit'])) { $sms_amount = $this->request['stype']; $sms_code = $this->request['scode']; $pamount = 0; switch($this->request['stype']) { case 1: $pamount = 1000; case 2: $pamount = 2000; case 3: $pamount = 3000; case 4: $pamount = 4100; case 5: $pamount = 5150; case 6: $pamount = 6100; case 9: $pamount = 9200; case 19: $pamount = 21000; case 25: $pamount = 30000; break; } $contents = file_get_contents("https://admin.serverproject.eu/api/smsapi.php?key=$apikey&amount=".$sms_amount."&code=".$sms_code); if ($contents) { $contents = json_decode($contents); if ($contents->error) { $this->registry->output->redirectScreen( 'Błąd: '.$contents->error, $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { if ($contents->status == 'ok') { $gamescore['points'] += $pamount; $this->DB->query('UPDATE members SET points='.$gamescore['points'].' WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $this->registry->output->redirectScreen( 'Kod poprawny. Portfel właściciela został doładowany kwotą '.$pamount.' punktów.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { $this->registry->output->redirectScreen( 'Nieznany błąd.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } } } else { echo "Błąd połączenia z API."; } } $template = $this->registry->output->getTemplate('kokpit')->shop($oList, $gamescore['points']); $this->registry->getClass('output')->addContent($template); $this->registry->output->setTitle('Sklep'); $this->registry->getClass('output')->sendOutput(); } } ?> oraz kod autoryzacji jak to wygląda już nie mam pojęcia w logach nic nie ma dzięki za pomoc i chęci <?php class public_kokpit_main_main extends ipsCommand { public function doExecute( ipsRegistry $registry ) { if(!$this->memberData['member_id']) { return $this->registry->getClass('output')->showError( 'Nie jesteś zalogowany.' ); } if ( ! class_exists( 'dbMain' ) ) { require_once( IPS_KERNEL_PATH.'classDb.php' ); require_once( IPS_KERNEL_PATH.'classDb' . ucwords($this->settings['sql_driver']) . '.php' ); } require_once( IPSLib::getAppDir( 'kokpit' ) . '/sources/classes/kokpit.php' ); $classname = "db_driver_" . $this->settings['sql_driver']; $RDB = new $classname; $RDB->obj['sql_database'] = kokpitLib::$db_database; $RDB->obj['sql_user'] = kokpitLib::$db_user; $RDB->obj['sql_pass'] = kokpitLib::$db_pass; $RDB->obj['sql_host'] = kokpitLib::$db_host; $RDB->connect(); if($this->memberData['userid']) { $RDB->query('SELECT * FROM lss_characters WHERE userid='.$this->memberData['userid'].' ORDER BY id'); $RDB->execute(); while( $r = $RDB->fetch() ) { $i++; $r['zlicz'] = $i; $r['hours'] = floor($r['playtime'] / 3600); $r['minutes'] = floor(($r['playtime'] / 60) % 60); if($r['gender'] == "M??czyzna") $r['gender'] = "Mężczyzna"; $charList[] = $r; } } if(isset($this->request['auth'])) { if($this->request['pass1'] == $this->request['pass2']) { $RDB->query("SELECT COUNT(*) as count FROM lss_users WHERE login='".$this->request['login']."'"); $RDB->execute(); $r = $RDB->fetch(); if(!$r['count']) { $RDB->query("INSERT INTO lss_users (login, hash, quiz) VALUES ('".$this->request['login']."', MD5(CONCAT(LOWER(login),'MRFX_01','".$this->request['pass1']."')), 1)"); $RDB->execute(); $userid = $RDB->getInsertId(); $this->DB->query("UPDATE members SET userid=".$userid." WHERE member_id=".$this->memberData['member_id'].";"); $this->DB->execute(); $this->registry->output->redirectScreen( 'Konto zostało zautoryzowane.', $this->settings['base_url'] . 'app=kokpit'); } else { $this->registry->output->redirectScreen( 'Takie konto już istnieje.', $this->settings['base_url'] . 'app=kokpit'); } } else { $this->registry->output->redirectScreen( 'Podaj dwa takie same hasła.', $this->settings['base_url'] . 'app=kokpit'); } } $template = $this->registry->output->getTemplate('kokpit')->main($charList, count($charList)); $RDB->disconnect(); $this->registry->getClass('output')->addContent($template); $this->registry->output->setTitle('Panel postaci'); $this->registry->getClass('output')->sendOutput(); } } ?>
  4. @Weak. Spróbowałem ale strona nie działa patrzyłem też czy nadało premium lecz nie ;( Ta strona nie działa Serwer la-rp.pl nie może teraz obsłużyć tego żądania. HTTP ERROR 500 @aXen userid=':userId' Zmieniłem na id=':id' I tez nie działa bo to zapytanie odnosi sie chyba całe do lss_users
  5. To jest ID pod panel gracza w którym osoba autoryzuje swoje konto w grze. I za pomocą tego userid z tabeli ipb _members szuka identycznego w bazie serwerowej w tabeli lss_users > id if (!class_exists('dbMain')) { require_once(IPS_KERNEL_PATH . 'classDb.php'); require_once(IPS_KERNEL_PATH . 'classDb' . ucwords($this->settings['sql_driver']) . '.php'); } require_once(IPSLib::getAppDir('kokpit') . '/sources/classes/kokpit.php'); $driver = "db_driver_" . $this->settings['sql_driver']; $pdo = new $driver; $pdo->obj['sql_database'] = kokpitLib::$db_database; $pdo->obj['sql_user'] = kokpitLib::$db_user; $pdo->obj['sql_pass'] = kokpitLib::$db_pass; $pdo->obj['sql_host'] = kokpitLib::$db_host; $pdo->connect(); if ($this->memberData['userid']) { $pdo->query("UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE userid=':userId' ORDER BY id"); $pdo->bindValue(':userId', $this->memberData['userid'], PDO::PARAM_INT); $pdo->execute(); $this->registry->output->redirectScreen( sprintf('Zakupiłeś: %s. Dziękujemy za zakup i życzymy miłej gry.', $shop['name']), sprintf('%sapp=kokpit&module=shop', $this->settings['base_url']) ); } edit@ Mam już taki kod po to lecz wywala mi błąd mySQL query error: UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE userid=':userId' ORDER BY id SQL error: Unknown column 'userid' in 'where clause' SQL error code: 1054 Date: Sunday 19th April 2020 10:19:41 AM ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Date: Sun, 19 Apr 2020 10:19:41 +0000 Error: 1054 - Unknown column 'userid' in 'where clause' IP Address: 83.29.149.33 - /index.php?app=kokpit&module=shop ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mySQL query error: UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE userid=':userId' ORDER BY id .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. | File | Function | Line No. | |----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------| | admin/sources/base/ipsController.php | [public_kokpit_shop_main].doExecute | 306
  6. No właśnie to jest dobrze raczej bo po userid w bazie ipb szuka mi id uzytkownika w bazie serwera $RDB - zapytanie które odsyła do bazy serwera $this - szuka w member niby kolumny userid $RDB->query('UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE userid='.$this->memberData['userid'].' ORDER BY id'); $RDB->execute(); Tak wyglada struktura
  7. Witam, mam problem z nadawanie premium w panelu gracza na forum IPB ogólnie punkty game score pobiera po zakupie usługi lecz nie nadaje jej w bazie badanych. Panel gracza dodam że działa na bazie forum oraz serwera [Gamescore pobiera z bazy forum ] = [Premium na serwerze] . Kod pogrubiony powinien nadać usługe. Bardzo prosiłbym o pomoc nawet odpłatną. Pozdrawiam // Cały kod w załączniku if ( ! class_exists( 'dbMain' ) ) { require_once( IPS_KERNEL_PATH.'classDb.php' ); require_once( IPS_KERNEL_PATH.'classDb' . ucwords($this->settings['sql_driver']) . '.php' ); } require_once( IPSLib::getAppDir( 'kokpit' ) . '/sources/classes/kokpit.php' ); $classname = "db_driver_" . $this->settings['sql_driver']; $RDB = new $classname; $RDB->obj['sql_database'] = kokpitLib::$db_database; $RDB->obj['sql_user'] = kokpitLib::$db_user; $RDB->obj['sql_pass'] = kokpitLib::$db_pass; $RDB->obj['sql_host'] = kokpitLib::$db_host; $RDB->connect(); if($this->memberData['userid']) { $RDB->query('UPDATE `lss_users` SET `premium` = DATE_ADD(CURDATE(), INTERVAL 30 DAY) WHERE userid='.$this->memberData['userid'].' ORDER BY id'); $RDB->execute(); $this->registry->output->redirectScreen( 'Zakupiłeś: '.$shop['name'].'. Dziękujemy za zakup i życzymy miłej gry.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } main.php
  8. A no tak ale również po usunięciu daje error ;/
  9. No narazie mam coś takiego ;/ co daje mi błąd Fatal error: Call to a member function buildAndFetch() on a non-object in /home/main.php on line 35 foreach($oList as $shop) { if(isset($this->request['shop_'.$shop['id']])) { if($gamescore['points'] >= $shop['cost']) { $gamescore['points'] -= $shop['cost']; $this->DB->query('UPDATE members SET points='.$gamescore['points'].' WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; 34. $time = time() + (7 * 86400); //ilość dni 35. $RDB->buildAndFetch( array( 'update' => 'lss_users', 'set'=> 'premium='.$time.'', 'where' => 'login='.$this->request['login'].'' ) ); 36. $RDB->execute(); $this->registry->output->redirectScreen( 'Zakupiłeś: '.$shop['name'].'. Dziękujemy za zakup i życzymy miłej gry.', $this->settings['base_url'] . 'app=kokpit&module=shop'); }
  10. OK dzieki ale jak jeszcze dodać do tego aby szukało kolumnę userid z tabeli members ponieważ przez nią musi wyszukać lss_users bo jak narazie nic nie przedłuża daty;/ Niżej zamieszczam jak to mniej wiecej wygląda $RDB->query("SELECT COUNT(*) as count FROM lss_users WHERE login='".$this->request['login']."'"); $RDB->execute(); $r = $RDB->fetch(); if(!$r['count']) { $RDB->query("INSERT INTO lss_users (login, hash, quiz) VALUES ('".$this->request['login']."', MD5(CONCAT(LOWER(login),'MRFX_01','".$this->request['pass1']."')), 1)"); $RDB->execute(); $userid = $RDB->getInsertId(); $this->DB->query("UPDATE members SET userid=".$userid." WHERE member_id=".$this->memberData['member_id'].";"); $this->DB->execute();
  11. Witam Mam problem z zakupem usług głównie chodzi mi o to aby po zakupie usługi przedłużało datę aktywności konta premium a o to fragment kodu. Bardzo prosiłbym o pomoc. $RDB->query("UPDATE lss_users SET premium=DATE_ADD(CURDATE(), INTERVAL DAY WHERE login='".$this->request['login']."'"); $RDB->execute(); Struktura shop.sql Oraz zawartość kodu: <?php class public_kokpit_shop_main extends ipsCommand { public function doExecute( ipsRegistry $registry ) { if ( ! class_exists( 'dbMain' ) ) { require_once( IPS_KERNEL_PATH.'classDb.php' ); require_once( IPS_KERNEL_PATH.'classDb' . ucwords($this->settings['sql_driver']) . '.php' ); } require_once( IPSLib::getAppDir( 'kokpit' ) . '/sources/classes/kokpit.php' ); $classname = "db_driver_" . $this->settings['sql_driver']; $RDB = new $classname; $RDB->obj['sql_database'] = kokpitLib::$db_database; $RDB->obj['sql_user'] = kokpitLib::$db_user; $RDB->obj['sql_pass'] = kokpitLib::$db_pass; $RDB->obj['sql_host'] = kokpitLib::$db_host; $RDB->connect(); if(!$this->memberData['member_id']) { $this->registry->getClass('output')->showError("Musisz być zalogowany(a) aby móc przeglądać tą sekcję. ", 0); return; } $apikey = '-'; $this->DB->query('SELECT * FROM shop'); $this->DB->execute; while($s = $this->DB->fetch()) { $i++; $oList[] = $s; } $this->DB->query('SELECT points FROM members WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $gamescore = $this->DB->fetch(); foreach($oList as $shop) { if(isset($this->request['shop_'.$shop['id']])) { if($gamescore['points'] >= $shop['cost']) { $gamescore['points'] -= $shop['cost']; $this->DB->query('UPDATE members SET points='.$gamescore['points'].' WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $this->registry->output->redirectScreen( 'Zakupiłeś: '.$shop['name'].'. Dziękujemy za zakup i życzymy miłej gry.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { $this->registry->output->redirectScreen( 'Nie posiadasz tylu punktów na koncie.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } } } if(isset($this->request['submit'])) { $sms_amount = $this->request['stype']; $sms_code = $this->request['scode']; $pamount = 0; switch($this->request['stype']) { case 1: $pamount = 1000; case 2: $pamount = 2000; case 3: $pamount = 3000; case 4: $pamount = 4100; case 5: $pamount = 5150; case 6: $pamount = 6100; case 9: $pamount = 9200; case 19: $pamount = 21000; case 25: $pamount = 30000; break; } $contents = file_get_contents("https://admin.serverproject.pl/api/smsapi.php?key=$apikey&amount=".$sms_amount."&code=".$sms_code); if ($contents) { $contents = json_decode($contents); if ($contents->error) { $this->registry->output->redirectScreen( 'Błąd: '.$contents->error, $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { if ($contents->status == 'ok') { $gamescore['points'] += $pamount; $this->DB->query('UPDATE members SET points='.$gamescore['points'].' WHERE member_id='.$this->memberData['member_id']); $this->DB->execute; $RDB->query("UPDATE lss_users SET premium=DATE_ADD(CURDATE(), INTERVAL 10 DAY WHERE login='".$this->request['login']."'"); $RDB->execute(); $this->registry->output->redirectScreen( 'Kod poprawny. Portfel właściciela został doładowany kwotą '.$pamount.' punktów.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } else { $this->registry->output->redirectScreen( 'Nieznany błąd.', $this->settings['base_url'] . 'app=kokpit&module=shop'); } } } else { echo "Błąd połączenia z API."; } } $template = $this->registry->output->getTemplate('kokpit')->shop($oList, $gamescore['points']); $this->registry->getClass('output')->addContent($template); $this->registry->output->setTitle('Sklep'); $this->registry->getClass('output')->sendOutput(); } } ?>
  12. Witam, jak zmienic szerokość forum oraz jak usunac ten kawałek u góry headera.
  13. Chodzi ci o conf_global.php ? + W acp włączyłem tą metodę logowania a IPB Internal wyłączyłem. Po zalogowaniu powinno mnie przekierować na ten adres z dostępem do kreatora postaci. http://panel.lss-rp.pl/main.php?m=postacie I za pomocą tej rejestracji powinienem się zalogować http://panel.lss-rp.pl/main.php?m=rejestracja
  14. Witam, Chciałbym dodać możliwość logowania się na forum za pomocą konta w grze lecz coś nie działa mi to. Oto "loginauth" @lss-rp.pl>@fullserver.eu> Do loginauth dodałem ten typ logowania + w bazie "login_methods podpiąłem to lecz dalej nie działa w czym może być problem ? Bardzo proszę o pomoc. Czy coś nie tak w adob5 ? https://github.com/lpiob/MTA-XyzzyRP/blob/master/panelwww/rejestracja_postaci/p/libs/adodb5/adodb.inc.php <export exported="1238768862"> <group> <row> <login_title>Serwer MTA</login_title> <login_description>Dodaje mozliwosc logowania sie na forum uzywajac konta z serwera</login_description> <login_folder_name>server</login_folder_name> <login_maintain_url></login_maintain_url> <login_register_url></login_register_url> <login_alt_login_html></login_alt_login_html> <login_alt_acp_html></login_alt_acp_html> <login_settings>1</login_settings> <login_enabled>0</login_enabled> <login_safemode>0</login_safemode> <login_replace_form>0</login_replace_form> <login_user_id>username</login_user_id> <login_login_url></login_login_url> <login_logout_url></login_logout_url> <login_order>3</login_order> </row> </group> </export>
  15. Witam, jak zrobić zwijaną/rozwijaną legendę grup na stronie głównej forum.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.