Pereiti prie turinio

alter

Patvirtinti nariai
  • Pranešimai

    587
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    100%

alter Pranešimai

  1. Pavedimas darytas kovo 6d. Nu man idomiausia kodel tas habalt22xxx atsirado, nes as jam liepiau vest tik habalt22. Ar dėl to pinigai gali visiškai neateiti?

     

    HABA - Swedbank kodas

    LT - Lietuva

    22 - nesu tikras, bet antras skaitmuo nurodo kas moka už žinutę

    XXX - Banko skyriaus kodas (dažniausiai neprivalomas)

     

    XXX paprastai reiškia žinutė skirta pagrindiniam banko skyriui. Pervedimui į Swedbank tinka ir HABALT22, ir HABALT22XXX.

  2. ...o tik atnaujina paveikslėlio pavadinimą duombazėje.

     

    update() metode rašai - "sitas if'as nebepraeina redaguojant". Naujas failo pavadinimas generuojamas tame if'e, tai jei jis nepasiekiamas, kaip pas tave atnaujina paveikslėlio pavadinimą?

     

    P.S. Siūlyčiau failo pavadinimą daryti visiškai random arba tarkim md5(failo turinys) o getClientOriginalName() tik išsaugoti duombazėje. Taip pat peržiūrėti https://www.owasp.org/index.php/Unrestricted_File_Upload atkreipiant dėmesį į "Prevention Methods".

  3. Jei puslapiai bus generuojami iš to pačio controller'io, gali susikurti "konstruktorių" (klasės funkcija kuri yra automatiškai vykdoma kuriant objektą):

     

    class Welcome extends CI_Controller
    {
       // Masyvas kuriame laikom template kintamuosius
       private $templateData = [];
    
       public function __construct()
       {
           parent::__construct();
    
           $this->load->model('main_model');
           $this->templateData['tipsters'] = $this->main_model->get_tipsters();
       }
    
       public function index()
       {
           // Čia eina puslapio logika ir į $data masyva galim dėti kintamuosius
           // skirtus tik tam puslapiui
           $data['pavadinimas'] = "Index puslapis!";
    
           // Sugeneruojam puslapį kuris randasi /views/pages/index.php. Nerodom
           // puslapio iš karto (trečias parametras - true), bet įrašom sugeneruotą
           // HTML į $body kintamajį
           $this->templateData['body'] = $this->load->view('pages/index', $data, true);
    
           // Generuojam ir rodom template.php
           $this->load->view('template', $this->templateData);
       }
    }
    

     

    template.php atrodytu maždaug taip:

     

    <html>
    <head></head>
    <body>
    
       <div id="header">
           <?php $this->load->view('header'); ?>
       </div>
    
       <div id="content">
           <?= $body ?>
       </div>
    
       <div id="footer">
           <?php $this->load->view('footer'); ?>
       </div>
    
    </body>
    </html>
    

     

    Na o visi vidiniai puslapiai gali būti laikomi /views/pages direktorijoj.

     

    Galbūt paprasčiau būtų naudoti kokią šablono biblioteką.

  4. Prašom. Silex dalis gal šiek tiek per sudėtinga pradedančiajam, bet pakeitimai orginaliam index.php faile yra gan paprasti, jei kažkuri konkreti vieta neaiški - klausk.

     

    Jei nesi pratęs prie Github ar šiaip peržiūrinėti pakeitimus failuose naudojant "diff" (pvz. https://github.com/apsimetu/tex/commit/6ad798da914de5bc8df5ea1582d01796ae28c64f), gali tiesiog atsidaryti index.php failo istoriją - https://github.com/apsimetu/tex/commits/master/tex/index.php ir prie kiekvieno veiksmo spausti ant "<>" simbolio. Tokiu būdu matysi pilną failo būseną po kiekvieno pakeitimo.

  5. TL;DR: Pažaidžiau su index puslapiu, panaudojau Silex mikro-karkasą, Twig šablonus, Doctrine DBAL (DB abstrakciją).

     

    Repositorija - https://github.com/apsimetu/tex (pakeistas tik index.php failas)

    Silex šaka - https://github.com/apsimetu/tex/tree/silex/tex (Silex, Twig, Doctrine)

     

    Kad būtų aiškesnė veiksmų eiga, galima eiti per kiekvieną kodo pakeitimą - https://github.com/apsimetu/tex/commits/silex

     

     

    Pirmas pastebėjimas, kad SQL faile https://github.com/apsimetu/tex/blob/4aa5618f7e12ca2d89a3b9cc004811d93069ede0/nimbo_tex.sql#L22 ir https://github.com/apsimetu/tex/blob/4aa5618f7e12ca2d89a3b9cc004811d93069ede0/nimbo_tex.sql#L43 vietoj latin1 turėtų būti UTF8 kitaip projektas turės problemų ateityje su koduotėmis.

     

     

    Viena svarbiausių problemų projekte yra kodo ir atvaizdavimo maišymas kartu. Pradėjau iškeldamas dalį PHP kodo į failo viršų - https://github.com/apsimetu/tex/blob/a06054e01d8a198843c9bed5f72e88328037d8c2/tex/index.php

     

    Čia autorius matyt per klaidą paliko fetch_array - https://github.com/apsimetu/tex/commit/6ad798da914de5bc8df5ea1582d01796ae28c64f

     

    Čia berods dar viena autoriaus klaida. Manau bandyta vietoj datos su laiku rodyti tik datą, bet gavosi taip, kad visi įrašai rodo šiandienos datą - https://github.com/apsimetu/tex/commit/364b24ae418233d03bf843c0feb261cfafd91604

     

    Jau iškelta pagrindinė puslapio lentelė, tačiau šablone dar likę šiek tiek logikos kurią reikėtų ištraukti - https://github.com/apsimetu/tex/blob/f4482605ef57520c249a562b731382d11239ad9a/tex/index.php

     

    Apvalom šabloną ištraukdami stilaus logiką į atskirą funkciją - https://github.com/apsimetu/tex/commit/b72d5921f10b2c6276c8be19b6aef7a6b8e8c620

     

    Ištraukiam Facebook kodą į atskirą funkciją, kad dar šiek tiek apvalyti šabloną - https://github.com/apsimetu/tex/commit/d2787a5890bf98ef107568deb52ffa62ea6e6d40

     

    Ištraukiamas paskutinis didesnis PHP logikos kodas naudojamas puslapiavimui. Dabar jau PHP kodas atskirtas nuo HTML, puslapis atrodo švaresnis - https://github.com/apsimetu/tex/blob/73169452b1f3b562571e07fd77e78566f47e4fce/tex/index.php

     

    Nedidelė optimizacija - https://github.com/apsimetu/tex/commit/41fb46ba934254712a429a4e92d595e4ec88457b

     

     

    Dabar jau būtų galima pradėti galvoti apie PHP kodo atskirimą į atskirą failą, duomenų bazės funkcijų atskyrimą, šablonų sistemos naudojimą. Dviračio išradinėti nereikia, visa tai padeda atlikti karkasai (framework'ai). Šiam pavyzdžiui nenorėjau naudoti pilno karkaso, tokio kaip Symfony, Laravel ar Yii, tad buvo puiki proga man pačiam susipažinti su vienu iš mikro-karkasų - Silex. Twig šablonus taip pat naudoju pirmą kartą (geriau vėliau negu niekada) :)

     

    Silex karkasas

     

    Susiinstaliuojam Silex naudodami Composer - https://github.com/apsimetu/tex/commit/44725ee87246d287fb3f67b61203cfd508ece5e8

     

    Susiinstaliuojam Twig šablonus naudodami Composer ir bandom index failo šablona naudodami tik statinę informaciją (tiesiog HTML be PHP) - https://github.com/apsimetu/tex/commit/b329b6c9e20bc9f412bff8affca2835e8a3b6a64

     

    Iš seno index failo perkeliam DB prisijungimą ir funkciją kuri generuoja statistikos rezultatus. Šiuos rezultatus paduodam į šabloną ir pačiam šablone naudojam Twig ciklo funkciją atvaizdavimui.

     

    Kaip ir su statistika, tuo pačiu būdu įkeliam puslapiavimą - https://github.com/apsimetu/tex/commit/bf07363ce143e416cc075346040a3c0deae528ca

     

    Toliau eina pagrindinė lentelė, bet kol kas praleidžiam stulpelius, kur reikia šiek tiek logikos - https://github.com/apsimetu/tex/commit/4f23cfbd500f4df9885b3b11bba81022af57ba3d

     

    Twig leidžia gan elegantiškai formatuoti datą - https://github.com/apsimetu/tex/commit/56efb6cc6b60c1e0b28824d0f661a4cc6fbdec6a

     

    Lentelės eilučių spalvai nustatyti galim naudoti CSS klases. Pasirodo lietuviškos raidės klasių pavadinimam tinka :) - https://github.com/apsimetu/tex/commit/0dc8a42b884043dfd4dc5923fc3b1f8680d8a857

     

    Su Facebook stulpelio logika šiek tiek sudėtingiau, reikia susikurti Twig pagalbinę funkciją - https://github.com/apsimetu/tex/commit/6db40016dd30f57597c4df32ad0731b2f06c88fe

     

    Viskas veikia, bet procedūrinės mysqli funkcijos atrodo ne savo vietoj :) Kad jau naudojam karkasą, galim pasinaudoti ir karkaso suteikiama duomenų bazės abstrakcija. Silex naudoja Doctrine DBAL (be ORM). Instaliuojam naudodami Composer https://github.com/apsimetu/tex/commit/ec3b9fa70e7bf782216d7bb70ac9299baf9bd44e

     

    Bandom konvertuoti pirmą mysqli funkciją į Doctrine. Atrodo viskas veikia - https://github.com/apsimetu/tex/commit/ce4ef5815e2242d3dd04f770c1b892841e814895

     

    Žinoma query() metodas neduoda jokių pranašumų prieš mysqli funkciją ir jo naudoti nepatartina, tad keičiam į fetchAll() metodą ir tuo pačiu nebereikia kurti masyvo laikyti rezultatams - https://github.com/apsimetu/tex/commit/e3f61c45c582151176cf52b3240e1391650e29d4

     

    Toliau konvertuojam puslapiavimo užklausą - https://github.com/apsimetu/tex/commit/ea3ffc3acdf52b7d46c5c106939e065cb81c47cd

     

    Toliau imam lentelės rezultatus. Čia pasinaudojam parametrų atskirimu nuo pačios SQL užklausos. Lipdyti SQL užklausą maišant tekstą ir kintamuosius yra bloga praktika - https://github.com/apsimetu/tex/commit/a32b956ae8d42cd7f36b5d27127c465cc3789517

     

    Dabar visos mysqli funkcijos jau pakeistos, todėl galim panaikinti mysqli prisijungimą prie DB - https://github.com/apsimetu/tex/commit/746088795dd7acfe3a983d927352c10db4ea5bbf

     

    HTTP užlausos parametrams skaityti, vietoj _GET masyvo galim naudotis patogesniu Request objektu - https://github.com/apsimetu/tex/commit/870de1a29f76d2be0048989046d5c044c3b6107b

     

    Dabar silex.php failas atrodo jau neblogai, bet gan didelę dalį jame užima Twig pagalbinės funkcijos kodas. Jam kontroleryje ne vieta, tad sukuriam atskirą klasę TwigExtensions, kur laikysim visas pagalbines Twig funkcijas reikalingas šiam projektui - https://github.com/apsimetu/tex/commit/2e58a8e97ae65fd2d01cbdf9a24cc54a18b1ce6b

     

    Daug geriau, bet nesinori kiekvieną kartą sukūrus naują klasę naudoti require_once failo viršuje. Mes naudojam Composer, tad galim pasinaudoti autoload funkcionalumu - https://github.com/apsimetu/tex/commit/5a90cded278fbce836ca75056f2bcb370da85567

     

    Užklausos į duomenų bazę kontroleryje yra bloga praktika, tad iškeliam jas į repositoriją - https://github.com/apsimetu/tex/commit/25b9774c22e0b9ad5124461dd95b3ef6cb24ef9c

     

    Na ir skaitomumo dėlei galim iškelti visą su aplikacijos inicijavimu susijusį kodą į atskirą failą - https://github.com/apsimetu/tex/commit/4aa5618f7e12ca2d89a3b9cc004811d93069ede0

     

     

    Šiuo metu orginalaus index.php failo atitikmuo atrodytu taip:

    <?php
    
    require_once __DIR__.'/../vendor/autoload.php';
    
    require_once __DIR__.'/bootstrap.php';
    
    use Symfony\Component\HttpFoundation\Request;
    
    $app->get('/', function (Request $request) use ($app) {
    
       $headerStats = $app['repository']->getHeaderStats();
    
       $numberOfPages = $app['repository']->getNumberOfPages();
    
       $page = $request->get('page', 1);
       $start_from = ($page-1) * 5;
    
       $bets = $app['repository']->getPaginatedBets($start_from, 5);
    
       return $app['twig']->render('index.twig', [
           'headerStats' => $headerStats,
           'numberOfPages' => $numberOfPages,
           'bets' => $bets,
       ]);
    
    });
    
    $app->run();
    

     

    Tai tiek šiam kartui. Komentarai? Pull requests welcome :)

  6. Apie TransferGo

     


    •  
    • TransferGo – internetinė skaitmeninė pinigų pervedimo platforma, kuri suteikia galimybę atlikti tarptautinius pinigų pervedimus, iš tikrųjų nepervedant paties siuntėjo pinigų į kitą šalį. Todėl jų paslaugos yra pigesnės ir pervedimai atliekami greičiau.
       
       
      https://www.youtube.com/watch?v=gIk2opECBhA
       
       
    • TransferGo leidžia atlikti pervedimus išmaniajame telefone, planšetėje arba kompiuteryje.
    • TransferGo vartotojams leidžia susikurti dviejų rūšių: asmenines ir/ar verslo paskyras.
    • Pervedimus galima vykdyti šiomis valiutomis: GBP, EUR, PLN, LTL, NOK, RON.
    • Internetinėje platformoje yra integruotos 5 kalbos: lietuvių, anglų, rusų, lenkų ir latvių.
    • Įmonės teikiamas paslaugas reguliuoja Jungtinės Karalystės Finansinių paslaugų institucijos (UK Financial Conduct Authority (FCA)), o veiklą prižiūri Jos Didenybės Mokesčių ir Muito kontrolė (HM Revenue & Customs (HMRC) pagal pinigų plovimo reglamentą.

     

    Kaip atlikti pervedimą su TransferGo?

     


    1.  
    2. Užsiregistruokite ir susikurkite savo paskyrą TransferGo sistemoje.
    3. Prisijungę prie savo paskyros, atlikite pervedimo rezervaciją, įrašydami gavėjo duomenis.
    4. Po to savo banko el. bankininkystės paskyroje atlikite vietinį pervedimą į TransferGo sąskaitą.
    5. Mokėjimą galite atlikti banko pervedimu arba debetine kortele.
    6. Gavę jūsų įmoką, TransferGo išsiųs pinigus jūsų gavėjui ir apie tai jus informuos el. laišku.
       

     

    Užsiregistravę čia TransferGo paslaugas galite išbandyti nemokamai.

     

     

    Mokėti debeto kortele

     

    Įmokas galite atlikti debeto kortele, visai kaip tai darote parduotuvėse arba atsiskaitydami internetu. Debeto kortele galite atlikti įmoką iki £500 (€600). TransferGo debeto kortelių įmokas priima tik svarais ir eurais.

     

     

    Kiek laiko užtrunka atlikti pervedimą naudojantis TransferGo?

     

    TransferGo garantuoja, kad pinigus jūsų gavėjas gaus jau kitą darbo dieną.

    Tačiau, pervedimai nėra vykdomi savaitgaliais ir švenčių dienomis.

     

     

    Kiek kainuoja pervedimas su TransferGo?

     

    TransferGo taiko fiksuotą 9.00 LTL (£2.50, 9.00 PLN, 3.00 EUR, 20.00 NOK, 20.00 DKK, 10.00 SEK, 9.00 RON - priklausomai iš kuriuos šalies siunčiate pinigus) pervedimo mokestį ir 1% - 1.5% valiutos keitimo mokestį.

     

    Daugiau informacijos apie kainas galima rasti čia.

     

     

    Koks yra dienos pervedimo limitas?

     

    TransferGo netaiko dienos limito, tačiau toks limitas gali būti taikomas jūsų banke.

    Taip pat, TransferGo prašo patvirtinti tapatybę jau antro pervedimo metu arba kai pirmasis pervedimas yra didesnis nei £750. Atkreipkite dėmesį, kad siunčiant didesnę sumą dėl saugumo reikalavimų gali būti prašoma ir kitokių dokumentų patvirtinančių jūsų gyvenamąją vietą ar pajamų šaltinį.

     

    Daugiau informacijos apie reikiamus dokumentus rasite čia.

     

     

    Kaip atlikti vietinius pervedimus jūsų banke?

     

     

    Ar saugi jūsų asmeninė informacija?

     

    TransferGo naudoja SSL technologiją, kuri yra skirta užtikrinti asmens duomenų saugumą.

    Taip pat kompanija yra registuruota Didžiosios Britanijos Informacijos komisaro biure (Information Commissioner’s Office (“ICO”)) - įstaigoje, prižiūrinčioje viešųjų paslaugų informacijos laikymą (TransferGo registracijos numeris: Z316680X).

     

    Daugiau informacijos apie saugumą gali rasti čia.

     

     

    Rekomendavimo programa

     

    TransferGo turi ir rekomendavimo programą, kuri leidžia užsidirbti 1% nuo visų jūsų rekomenduotų draugų pervedimų pusę metų.

     

    Programa veikia paprastai: reikia susikurti TransferGo paskyrą, joje rasite savo unikalią rekomendavimo nuorodą. Šia nuoroda reikia pasidalinti savo socialinėse platformose, bloguose ar kitur ir taip pakviesti draugus naudotis TransferGo. Kiekvienas su jūsų nuoroda prisiregistravęs draugas gauna nemokamą pervedimą, o jūs kaupiate procentą nuo jų siučiamos sumos. Pakviestų draugų skaičius nėra ribojamas, kaip ir pinigų suma, kurią galite atsiimti iš TransferGo rekomendavimo sistemos.

     

    Daugiau informacijos apie Rekomendavimo programą galima rasti čia

     

     

    Vartotojų atsiliepimus apie TransferGo galima rasti nepriklausomoje platformoje Truspilot.com

  7. Atsargiai su banko kortelėm. UK bankai mėgsta naudoti nepalankų valiutos konvertavimo kursą kai naudojiesi kortele užsienyje.

     

    Cashpoint® cards: A non-sterling cash fee of 1.5% of the value of the withdrawal, with a minimum charge of £1.50. There is no maximum transaction fee.

     

    The amount is converted to sterling on the day it is processed by Visa, using the Visa payment scheme exchange rate. There’s also a non-sterling transaction fee of 2.99%.

     

    http://www.lloydsbank.com/travel/debit-card-abroad.asp

  8. Bet va tik klaidelę pastebėjau... užėjęs į jūsų web'ą...

     

    Ačiū už pastebėtą klaidą. Darydami palyginimus su konkurentais mes išsaugom puslapio nuotraukas, kad vėliau turėtume "įrodymą" :) Spalio 17 dieną Opal davė 1,988.00 LTL už 500,00 GBP (pas mus klaidingai rašė 1,998,01). Klaidą pataisiau, "įrodymą" nusiunčiau AŽ ;)

     

    Pradedu ir as naudot ;)

     

    Ech, gi tik is Anglijos siuntimas. Nepamirskit Airijos ;)

     

    Siunčiam iš UK, tuo pačiu ir Šiaurės Airijos. Jei reikia siųsti iš pačios Airijos (eurai) tai kiek pamenu, Airijoje yra bankai kurie siunčia eurus nemokamai, Lietuvoje tereikia savo banke konvertuotis eurus į litus.

     

    Tikrai super galetum platesne sito dalyko (kokiu nuotykiu turejot, kokius sunkumus patyret) istorija pasidalinti forume :)

     

    Nekoks iš manęs rašytojas, aš gal geriau į meetą ateisiu paplepėt :)

  9. Ačiū visiems už linkėjimus ir svekinimus!

     

    Esu daznas klientas :rolleyes:

     

    Ačiū! Palikau dovanėlę AŽ ;)

     

     

    kazkur nesueina

     

    Ten tas "million a day" apie mūsų konkurentus.

     

     

    Sveikinu, reik gal pradėt naudotis ir man :D

     

    Parašiau AŽ ;)

     

     

    Sveikinu, tarp kitko, jūsų svetainės dizainas superinis :) Labai patiko, užėjus daug pozityvo.

     

    Labai smagu girdėti, perdaviau dizaineriui.

  10. Su tikrais prepared statements SQL injekcija apskritai turėtų būti neįmanoma, nes užklausa parsinama visiškai atskirai nuo argumentų. Užklausą jungiant kaip stringą pačiam, žinoma, tai negalioja.

     

    Teisybė dėl argumentų atskirimo nuo užklausos, bet pasitaiko, kai pačią užklausą reikia generuoti dinamiškai. Pvz. negalima siųsti stulpelių pavadinimų atskirai nuo pačios užklausos:

     

    SELECT * FROM users ORDER BY ?;

  11. Standartinis LAMP, bet planuoju pereiti prie Nginx. Papildomai naudoju Redis, kad palengvinti MySQL darbą. Deployment'ui vykdyti turiu pasirašęs Phing instrukcijas. Versijų kontrolei naudoju Git.

     

    Iš trečių šalių paslaugų naudoju AWS S3 atsarginėm kopijom, Postmark transakcinėm žinutėm siųsti, Twilio SMS žinutėm siųsti, Zendesk klientų aptarnavimui (support tickets), Dropbox failų sinchronizavimui, Pingdom serverių monitoringui, New Relic aplikacijos monitoringui, Splunk serverių log failų analizei, Google Apps for Business el. paštui ir kalendoriam, DNS Made Easy DNS hostinimui.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...