Jump to content
Prosíme všetkých užívateľov, ktorý sa chcú opätovne pripojiť na discord aby znovu spárovali svoje účty kliknutím na "Discord" v navigácií a pripojili sa na server Read more... ×

Search the Community

Showing results for tags 'php'.



More search options

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Fórum
    • Pravidla a oznámení
    • Návrhy změn a hlášení chyb
    • Všechno možné
  • Pawn
    • Pomoc
    • Návody
    • Mapy a editor map
    • Scripty
    • Prezentace módů
    • Hledám pawnera/mappera
  • Programování a grafika
    • Vývoj webových stránek a aplikací
    • Vývoj desktopových a jiných aplikací
    • Grafika a webdesign
    • Hledám programátora/skriptera
  • Hry a herní tématika
    • MTA
    • Counter Strike 1.6 , Source, Global Offensive
    • Ostatní hry
    • Obrázky a videa z her
  • Ostatní
    • Prezentace herních klanů, serverů a jiných projektů
    • Hardware a software
    • Hledám/nabízím
    • Koš

Categories

  • Pawn – filterscripty a gamemody
  • Pawn – skripty od nováčků povinně sem
  • Aplikace a hry

Blogs

  • rEwolutionary
  • Polisův Blogík
  • DoubleX's Blog
  • [Info] Dark Island
  • Albus Brambůrek's Blog
  • Trampoty pána buggeda
  • vEndovo všechno možné
  • Cybrionkov Game Development v Unity
  • [Printova hlava]
  • Woodyho blog
  • Boy

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

Found 121 results

  1. madfox

    php Pomoc!!

    Zdravim mam formular a potrebujem doplnit aby dosiel mail ako si vytvori zakaznik rezervaciu a este par dni pred tim ako bude stanoveny termin... Vedel by mi niekto s tym pomoct?
  2. Ahojte, ffredyk ma svojim príspevkom nadchol. (bozužiaľ ma nenadchla informácia, že majiteľ to nechce posunúť ďalej, aj keď na to evidentne celé tie roky sere) Dnes by som vám chcel ukázať node.js. Povedať vám čo to je a prečo by vás mal zaujímať. Pravdepodobne to bude celá séria návodov, kde budem preberať backend (ak výraz nepoznáte, nižšie bude vysvetlený) aj frontend (ak výraz nepoznáte, nižšie bude vysvetlený) a na konci série budeme mať SA-MP administráciu. Som rád, že ste taký môj predboj na ktorom budem testovať. V tomto návode preberieme hlavne teóriu a na konci si napíšeme najjednoduchšiu node.js appku. Z čoho sa skladá Webová stránka? Webová stránka sa skladá z 2 častí. Frontend a Backend. Frontend je to, čo užívateľ vidí čiže css štýly, html dokument, obrázky, fonty, videá... Najčastejšie ho tvorí HTML, CSS a JavaScript. HTML by mal slúžiť prevažne na texty, CSS slúži na dizajn (bude tento link mať farbu modrú alebo červenú?) a JavaScript na interakciu. Backend je to jadro webu, ku ktorému užívateľ nemá prístup (teda, až na lacesove adminky, tam má prístup každý). Patrí tam databáza a scripty na servery (registrácia, autentifikácia, API...). Najčastejšie sa robí v PHP ale môže sa aj v .NET, Pythone, Jave a už pár rokov aj v JavaScripte na backende - Node.js. Aké má výhody oproti PHP? Výhod je dosť. NPM. Používanie jedného jazyka na frontende aj backende. Omnoho jednoduchšia práca s real-time aplikáciami, stúpajúca popularita a s ním aj počet pracovných miest... Pre viac detailov si môžete prečítať Want to be a Web Developer? Learn Node.js not PHP alebo Why the Hell Would You Use Node.js. Ak by vás zaujímalo, ktoré veľké spoločnosti používajú Node.js tak môžete zostať prekvapený Netflix, Linkedin, Trello, Uber, Paypal, Medium, eBay, NASA. Zdroj 1 a Zdroj 2 a stackshare Inštalácia Node.js Aby sme mohli vyvíjať budeme si musieť nainštalovať Node.js. Je to jednoduchý inštalátor takže to určite zvládnete. Ďalšia potrebná vec je naučiť sa trochu používať konzolu. Konzola alebo aj príkazový riadok je dôležitá súčasť lebo nám umožňuje spúšťanie node.js scriptov. Našťastie nebudeme potrebovať zložité vedomosti, vystačíme si so základnými príkazmi `cd` a `ls`. Ak používate Windows tak odporúčam nainštalovať si Cmder a používať ten. Lebo konzola vo Windowse je strašná. Ak máte MacOS alebo Linux tak netreba nič viac. Keď už máme nainštalovaný node, tak sa nám pribudli 2 nové príkazy pre konzolu. Jeden je `node` a druhý `npm`. V predchádzajúcom bode som schválne nevysvetlil čo je to npm. NPM je balíčkovací systém. Môžete vďaka nemu sťahovať závislosti pre vášu appku. Napríklad potrebujete posielať emaily tak nemusíte chodiť na google a hladať nejakú knižicu, sťahovať ju, dávať si ju do projektu... Jednoducho iba napíšete `npm install nodemailer` a rovno používate tú knižnicu. Základy s terminálom/príkazovým riadkom Ako som už písal, budeme používať základné, jednoduché, príkazy. `cd` znamená change directory (v preklade zmena priečinka). Vďaka tomuto príkazu sa môžete dostať do priečinka a pracovať v ňom napríklad `cd dokumenty/praca/` vás dostane do priečinka dokumenty a v ňom do priečinka praca. `ls` pre zmenu vypíše obsah priečinka, v ktorom sme nastavený cez `cd`. Na prácu s terminálom si treba chvíľku zvykať ale zistíte, že to je veľmi dobrý pomocník. Tu je link na pár základných príkazov. Vďaka Southclawovy aj pawn má svoje "npm" nazvané http://sampctl.com/ Takže prácu s terminálom si môžete vyskúšať aj v pawn. Hello world v node.js Už takto je to docela obsiahly návod (hlavne na zdroje, ktoré odporúčam pozrieť) tak si ukážeme ako si spustiť webovú stránku cez node.js Vytvoríme si priečinok napríklad "navod" a do neho súbor app.js (môžete sa nazvat ako chcete) a do neho vložíme tento jednoduchý kód. var http = require("http"); var port = 8000; http.createServer(function (request, response) { // toto sú dôležité hlavičky ktoré sa posiela server na clienta response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(port); // Vypíšeme do konzole že server ide a na akom porte je console.log('Server running at http://127.0.0.1:' + port); Sǔbor uložíme. Cez konzolu sa dostaneme do nášho priečinka "navod" (čiže napríklad `cd navod/`) a iba spustíme server cez príkaz `node app.js`. Ak sme všetko správne urobili, konzola nám oznámila že server je spustený na porte 8000. V prílohe je obrázok ako by to malo vyzerať. Tento návod beriem ako "nutné zlo" ktoré treba. V ďalšiom dieli sa zameriame viac na programovanie a potom by som mohol urobiť tú sériu, v ktorej by sme robili samp administráciu.
  3. MlgShooter

    php DB Chyba?

    Dobrý den, Začal jsem programovat v PHP a vyskytl se mi problém A ani se nic nepřidá do databáze, ten include přikládám taky Vše to běží na XAMPP. Děkuji za pomoc
  4. Zexy

    mysql MySQL připojení

    Zdravím. Mám v PC webovou stránku. Která má ukládání přes MySQl, jenže v kódu mám věci co podporují jen ve verzi PHP 7. A to připojení MySQL naopak na verzi 7 nefunguje jelikož syntaxe jsou na verzi 5.6?. Dokázal by mi někdo pomocí to předělat na ty nové? Zkoušel jsem to a přestalo mi to fungovat, takže dělám stále někde chybu. Děkuji za pomoc. <?php /* DATABASE CONFIGURATION */ define('DB_SERVER', 'hosting'); define('DB_USERNAME', 'uzivatel'); define('DB_PASSWORD', 'heslo'); define('DB_DATABASE', 'nazev'); function getDB() { $dbHost = DB_SERVER; $dbUser = DB_USERNAME; $dbPass = DB_PASSWORD; $dbName = DB_DATABASE; try { $dbConnection = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass); $dbConnection->exec("set names utf8"); $dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $dbConnection; } catch (PDOException $e) { echo 'pripojeni k databazi bylo neuspesne: ' . $e->getMessage(); } } ?> dbconfig.php
  5. Riko

    pomoc MySQL - kódování

    Zdravím. Mám takový větší problém. Nevím, co bych měl vše napsat, tak napíšu tohle a vy se prosím ptejte na to, co bych měl dopsat. Server na SA:MP je dělaný přes databázi a bo mi odešel HDD do křemíkového nebe, nemám svou zálohu a musel mi ji poskytnout společník, ale v záloze si myslím to nebude. Myslím si, že je to v nekompatibilitě tabulek s daným PHP/MySQL server, proto se budu ptát zde. Popis problému: V PHPMyAdmin se data v tabulkách zobrazují normálně, ovšem na webu už ne. Nepíše to háčky, místo nich se zobrazují znaky. Ve fóru jsou pouze názvy témat, ale když na ně kliknu, obsah chybí a jdou vidět jen prázdné posty s avatary a nicky. Charset, chcete-li porovnávání, je nastaveno na utf-8_unicode_ci (zkoušel jsem i utf-8mb4, ale bez výsledku). Web mi po přidání níže uvedeného kódu do nastavení připojení databáze píše, že je nastaven charset na UTF-8. Web, kódy (styly, nabídka, navigace atp), které se netahají z databáze, se zobrazují v pořádku. if (!$db_spojeni->set_charset("utf8")) { printf("Error loading character set utf8: %s\n", $db_spojeni->error); } else { printf("Current character set: %s\n", $db_spojeni->character_set_name()); } Díky za každou radu, RiKo
  6. Čau, dělám si komentáře ke článkům a vše mi funguje ale narazil jsem na to že nemám absolutně nápad jak udělat výpis komentářů a odpovědi k daným komentářům. Představoval bych si to něco jako: Foreach na komentáře a v něm vnořený další foreach na odpovědi. Můj aktuální pokus public function getComments($article_id, $parent_id = null){ $comments = null; if ($parent_id === null) { $comments = $this->database->table(self::TABLE_COMMENTS)->where(self::COLUMN_COM_ARTICLE_ID, $article_id)->order('created_at')->fetchAll(); } else { $comments = $this->database->table(self::TABLE_COMMENTS)->where(self::COLUMN_COM_ARTICLE_ID ,$article_id)->where(self::COLUMN_COM_PARENT_ID, $parent_id)->fetchAll(); } $_comments = []; foreach ($comments as $comm) { // zpracování komentáře $_comment = [ 'comment_id' => $comm->comment_id, 'user_id' => $comm->user_id, 'created_at' => $comm->created_at, 'content' => $comm->content, ]; } if ($parent_id === null) { // pokud je to hlacní komentář zjistit pod-komentáře $_comment['comments'] = $this->getComments($article_id, $parent_id); } $_comments[] = $_comment; return $_comments; // vrátit komentáře } ALe to mi háže : Maximum function nesting level of '256' reached, aborting! Tudíž tam mám nějaké blbé zacyklení... Tady mám starý kód který mě dělal Ewwe $pocetKomentaru = 0; function processComments($clanek_id, $parent_id = NULL) { global $pocetKomentaru; $komentare = NULL; if ($parent_id === NULL) { $komentare = dibi::query(" SELECT k.*, a.nick, a.avatar FROM komentare k LEFT JOIN accounts a ON k.author_id = a.id WHERE k.clanek_id = %i AND k.parent_id IS NULL", $clanek_id); } else { $komentare = dibi::query(" SELECT k.*, a.nick, a.avatar FROM komentare k LEFT JOIN accounts a ON k.author_id = a.id WHERE k.clanek_id = %i AND k.parent_id ", $clanek_id, " = %i", $parent_id); } $_komentare = []; foreach ($komentare as $komentar) { // zpracování komentáře $_komentar = [ 'id' => $komentar->id, 'avatar' => $komentar->avatar, 'komentar' => $komentar->komentar, 'pridano' => $komentar->pridano, 'nick' => $komentar->nick, ]; if ($parent_id === NULL) { // pokud je to hlacní komentář zjistit pod-komentáře $_komentar['komentare'] = processComments($clanek_id, $komentar->id); } $pocetKomentaru++; $_komentare[] = $_komentar; // přidat zpracovaný komentář do pole komentářů } return $_komentare; // vrátit komentáře } Děkuji všem za rady a pomoc
  7. Zdravím, chtěl bych se s vámi podělit o video, na které jsem dnes narazil. Zaujalo mě svým pojetím a informační hodnotou. Autorem není nikdo jiný, než autor velice úspěšné kickstarterové kampaně, mnoho nedokončených herních módů, bývalý moderátor pawno.cz, nadějný grafik (v tomto odvětví o něm ještě mnoho uslyšíme) a znalec jazyku C+. Není jím nikdo jiný, než Polis Polismanovitss. Nyní si pro nás připravil návod na základy HTML5, CSS a jeho vlastního dialektu angličtiny. Rozhodně doporučuji zhlédnout až do úplného konce, mě osobně tento formát videa velice potěšil. Velmi oceňuji časté čekání na upload souboru na jeho server, díky této pauze jsem mohl všechny informace řádně zpracovat. Kdyby ukázal html soubor na localu, asi bych se ztrácel. Autora si samozřejmě můžete (za nemalý peníz) najmout na určité služby na jeho webých sránkách, kde nechybí ani donate button. - Polis
  8. IndexART

    ostatní IndexART sme späť

    </> IndexART je späť ... </> Po dlhej dobe sme späť kedže sme štúdio pauzli kvôli neaktivite od teraz bude IndexART navždy spustený. Máš, herný portál alebo webstránku s ktorou potrebuješ pomoc s niečim alebo máš nejaký problem so webstránkou alebo si chcete prečítať članky, návody ... IndexART Sme komunita ľudí ktorá pomáha s grafikou a kódmi začiatočníkom. Sme tu od 2014 a v roku 2018 sme späť ... WEBSITE: http://indexart.sk/ FB PAGE: https://www.facebook.com/indexart.sk
  9. Zdravím! Hledám někoho kdo by udělal web pro GTA SA MP server. Web by měl být pro herní server RPG stylu. Dále bych chtěl na webu UCP, ale jelikož využívám file save nevím zda je to možné udělat (ukládání do scriptfiles). MySQL mi moc nevyhovuje a neumím s ní! Nabídka je samozřejmě finančně ohodnocená! Částka by byla dle domluvy. Samozřejmě také dle propracovaností a dalších kritériích! Vše může být smluvně podloženo. Když to vezmu cca částka by byla nějakých 250KČ/h
  10. Zdravím, hľadám php-čkara, kt. by mi pomohol s menšími úpravami v jednom scripte. Práca cca na 30 minút. Odmena je samozrejmosťou (finančná) podľa dohody. V prípade, že máte záujem, píšte mi súkromnú správu. Ďakujem.
  11. Čau kluci, mám takový pro náš nový internetový obchod děláme nový systém ale potřeboval bych pomoci s úpravou cronu pro nový systém... dle struktury... product Pro produkty vytvoříme tabulku product. Bude obsahovat následující sloupce: product_id (int) - Id produktu, primární klíč, autoincrement code (varchar 255) - Kód produktu pro obchodníka (např. EAN nebo cokoli jiného) url (varchar 255) - URL adresa produktu (např. zeleny-kvetinac-ella) pro lepší SEO optimalizaci title (varchar 255) - Titulek produktu short_description (varchar 255) - Krátký popisek do HTML meta tagu description (text) - Delší popisek pro detail produktu, může obsahovat HTML formátování price (decimal(10,1)) - Cena produktu old_price (decimal(10,1)) - Stará cena produktu (pokud je zlevněný) rating_sum (int) - Součet hodnocení produktu (celkový počet udělených hvězdiček uživateli) ratings (int) - Počet hodnocení produktu stock (int) - Počet kusů produktu na skladu images_count (int) - Počet obrázků u produktu hidden (tinyint) - Označuje zda je produkt skrytý (1/0), viz dále. Přidejme tabulku category s následujícími sloupci: category_id (int) - Id kategorie, primární klíč, autoincrement url (varchar 255) - URL adresa odkazu title (varchar 255) - Titulek order_no (int) - Určuje pořadí položek hidden (tinyint) - Určuje, zda je položka skrytá (můžeme tak skrýt nějaké systémové kategorie, viz dále) parent_catego­ry_id (int, nullový) - Id rodičovské položky (pod kterou má být položka zařazena) nebo NULL, cizí klíč řidáme tabulku product_category s následujícími sloupci: product_catego­ry_id (int) - Id vazebního řádku, primární klíč, autoincrement product_id (int) - Id produktu, cizí klíč category_id (int) - Id kategorie, do které produkt patří, cizí klíč Zde mám již upravený cron ve kterém mi dělají problémy obrázky. <?php /** * Description of Import * * @author David Skála <skala2524@gmail.com> */ class Import { CONST URL = 'http://navratws:ws13852@WWW.SPOKEY.CZ/i6ws/Default.asmx/GetResult?resultType=X-StoItemBaseComplEl'; private $slozka; private $slozkaDb; /** @var DibiConnection */ private $dibi; public function __construct($dibi) { $this->log('init'); $this->dibi = $dibi; $this->slozka = __DIR__ . '/../images/products/'; $this->slozkaDb = 'images/products/'; /* $cdir = scandir($this->slozka); foreach ($cdir as $value) { if (intval($value) > 112) $this->rrmdir($this->slozka . $value); } exit; */ } private function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (is_dir($dir . "/" . $object)) $this->rrmdir($dir . "/" . $object); else unlink($dir . "/" . $object); } } rmdir($dir); } } /** * * @param string $message */ private function log($message) { echo sprintf('<span style="color: #CCC;">bellugio:</span> %s<br>', $message); } /** * * @return type */ public function getXml() { $this->log('getXml: ' . self::URL); return file_get_contents(self::URL); } public function zpracujXmlKategorie($xml) { $poleLevel1 = [ 'Míčové a společenské sporty' => 2, 'Fitness a posilovna' => 2, 'Vodní sporty' => 2, 'Skating' => 2, 'Bojové sporty' => 2, 'Tenis a badminton' => 2, 'Outdoor' => 3, 'Sport. obuv a nazouváky' => 4, 'Termoprádlo' => 4, 'Funkční oblečení' => 4 ]; foreach ($xml->StoItem as $item) { $tmp1 = explode(' ', $item->SPresentTree->Level1); unset($tmp1[0]); $level1 = trim(implode(' ', $tmp1)); $idLevel0 = isset($poleLevel1[$level1]) ? $poleLevel1[$level1] : 'false'; /* level 1 */ if ($idLevel0) { $data = $this->vratDataProKategorii($idLevel0, $level1); $kategorieId_1 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_1) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 1, $level1)); $kategorieId_1 = $this->dibi->getInsertId(); } /* level 2 */ $tmp2 = explode(' ', $item->SPresentTree->Level2); unset($tmp2[0]); $level2 = trim(implode(' ', $tmp2)); if ($level2) { $data = $this->vratDataProKategorii($kategorieId_1, $level2); $kategorieId_2 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_2) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 2, $level2)); $kategorieId_2 = $this->dibi->getInsertId(); } /* level 3 */ $tmp3 = explode(' ', $item->SPresentTree->Level3); unset($tmp3[0]); $level3 = trim(implode(' ', $tmp3)); if ($level3) { $data = $this->vratDataProKategorii($kategorieId_2, $level3); $kategorieId_3 = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [url] = "%s" LIMIT 1', $data['url']))->fetchSingle(); if (!$kategorieId_3) { $this->dibi->query('INSERT INTO [category]', $data); $this->log(sprintf('Vytvořena kategorie úrovně %d s názvem %s', 3, $level3)); } } } } } } private function vratDataProKategorii($parentId, $jmeno) { $orderid = $this->dibi->query("SELECT max(category.order_no) AS order_nos FROM [category]")->fetchSingle() + 1; return [ 'url' => $this->webalize($jmeno), 'title' => $jmeno, 'order_no' => $orderid++, 'hidden' => 0, 'parent_category_id' => $parentId ]; } /** * * @param type $xml */ public function zpracujXmlZbozi($xml) { foreach ($xml->StoItem as $item) { $idKat = $this->dibi->query(sprintf("SELECT product_id FROM [product] WHERE [code] = '%s' LIMIT 1", $item->Code))->fetchSingle(); $nazev = $idKat ? $this->dibi->query(sprintf("SELECT title FROM [product] WHERE [product_id] = %s LIMIT 1", $idKat))->fetchSingle() : false; if (!$nazev) { $this->log($item->Id . ': ' . $item->Name); if ($item->SisName == 'Výprodej') $action = 1; if ($item->SisName == 'Novinka') $news = 1; $dataCatalog = [ 'product_id' => intval($item->Id), 'code' => (string) ($item->Code), 'url' => $this->webalize($item->Name), 'title' => (string) $item->Name, 'shortname' => (string) $item->Name, 'short_description' => (string) $item->Note, 'description' => (string) $item->Note, 'price' => intval($item->PriceEU), 'old_price' => intval($item->PriceDea), 'rating_sum' => 0, 'ratings' => 0, 'stock' => 1, 'images_count' => 0, 'hidden' => 0 ]; $this->dibi->query('INSERT INTO [product]', $dataCatalog); $lastId = $this->dibi->getInsertId(); /* katerogie */ foreach (['Level1', 'Level2', 'Level3'] AS $_level) { $tmp = explode(' ', $item->SPresentTree->{$_level}); unset($tmp[0]); $level = implode(' ', $tmp); $kategorieId = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [title] = "%s" LIMIT 1', $level))->fetchSingle(); if ($kategorieId) { $dataKat = [ 'product_id' => $lastId, 'category_id' => $kategorieId ]; $this->dibi->query('INSERT INTO [product_category]', $dataKat); } } $idFotky = $this->dibi->getInsertId(); /* obrazky */ if (!file_exists($this->slozka)) mkdir($this->slozka, 0777, true); copy($item->ImgUrl, $this->slozka . $this->intval($item->Id) . '.jpg'); $this->dibi->query('UPDATE [product] SET images_count= ' . $idFotky . ' WHERE product_id = ' . $lastId); } else { $lastId = $this->dibi->query(sprintf("SELECT product_id FROM [product] WHERE [product_id] = %s LIMIT 1", $idKat))->fetchSingle(); foreach (['Level1', 'Level2', 'Level3'] AS $_level) { $tmp = explode(' ', $item->SPresentTree->{$_level}); unset($tmp[0]); $level = implode(' ', $tmp); if ($level) { $kategorieId = $this->dibi->query(sprintf('SELECT category_id FROM [category] WHERE [title] = "%s" LIMIT 1', $level))->fetchSingle(); if ($kategorieId) { $bindCat = $this->dibi->query(sprintf("SELECT product_id FROM [product_category] WHERE [product_id] = %s AND [category_id] = %s LIMIT 1", $lastId, $kategorieId))->fetchSingle(); if (!$bindCat) { $dataKat = [ 'product_id ' => $lastId, 'category_id' => $kategorieId ]; $this->dibi->query('INSERT INTO [product_category]', $dataKat); } } } } } } } private function webalize($string) { $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); $url = trim($url, "-"); $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); $url = strtolower($url); $url = preg_replace('~[^-a-z0-9_]+~', '', $url); return $url; } } Ale mám problém s ukládáním obrázku... Mám složku images/product ve které se obrázky ukládají tak ze IdProduktu_kolikatyObrazekToJe.jpg To znamená mám obrázek s ID 1 a u nej mám 3 obrázky a ve složce mám 1_0.jpg,1_1.jpg,1_2.jpg a v Db product ve sloupci images_count se mi vytvoří argument kolik těch obrázku to dané ID ma v tomto případě 3 a pokud nějaký smažu odstraní se ze složky a v Db se aktualizuje na počet 2 Mohl by mi někdo poradit nebo pomoci abych dospěl k funkčnosti cronu? Díky všem
  12. Hledáme šikovného programátora či dívčinu programátorku :-), který umí vytvořit skutečně profi a bezpečné webové stránky. Grafika je příjemným plusem, ale není nutno, zvlášť znáš-li někoho, kdo ti s grafikou pomůže. Neumím posoudit, zda je to plusem či mínusem, avšak podmínkou je, že chceme zaměstnance. Ne člověka, který mi vytvoří web a pak zase odfrčí tvořit jiné weby. Protože vývoj webových stránek je to, co nás nyní nejvíce pálí, je možné si po vytvoření webu vybrat, co tě v IT oblasti baví. Spokojen bys u nás jistě byl. Můžeš se věnovat vývoji, programování, kyber bezpečností atd. atd., prostě vším, co tě v IT napadne :-). Nejsme firma, nejsme e-shop. Nic nekupujeme ani neprodáváme. Pracujeme s informacemi. Náš web navštěvují tisíce a tisíce lidí s různým cílem. A proto chci někoho, kdo už umí, zná. Ne, kdo se tvořit web teprve učí. To si nemůžeme dovolit. Bezpečnost je pro nás na prvním místě. Pracoviště v Praze. Peníze od 45000 do 60000 Kč. Pokud tě nabídka zaujala, dej o sobě vědět na mail webmastering@post.cz.
  13. Riko

    pomoc PHP Mail Send

    Zdravím komunitu Pawna.cz. Měl bych dotaz protože si fakt nevím rady, jak na to. Na OS Linux s postfixem potřebuji odesílat maily. To funguje. Problém je ale někde jinde. Potřebuji vědět, proč mi tento kód neodesílá mail ve formátu HTML ale odesílá ho jako prostý text function sendmail($to,$subject,$message,$from = "info@realny-zivot.cz"){ $predmet = mime_header_encode($subject); $autor = mime_header_encode("SA-MP Reálný Život"); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; $headers .= 'Content-Transfer-Encoding: 8bit'. "\r\n"; $headers .= 'From: '.$autor.' <'.$from.'>' . "\r\n"; mail($to,$predmet,$message,$headers); } Zde je chybějící $message, která se nachází v jiném souboru: $content .= "<html> <body> <h2>Registrace</h2> Děkujeme za vaší registraci.<br /> Pro potvrzení a aktivaci vašeho účtu klikněte na následující odkaz:<br /><br /> <a href='".DEF_WEBURL."account_verify/$random_key' target='_blank'>".DEF_WEBURL."account_verify/$random_key</a><br /><br /> <h3>".DEF_SITENAME."</h3> <h4>".DEF_WEB."</h4> </body> </html>"; mail($_POST['v1'],"Registrace Reálný Život",$content,"From: info@realny-zivot.cz"); Tento email odesílá ve formátu HTML, proč tomu tak je? Díky. <?php $to = 'lachadamcz@gmail.com'; $subject = 'Website Change Reqest'; $headers = "From: Reálný Život <info@realny-zivot.cz>\r\n"; $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n"; $headers .= "CC: susan@example.com\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; $message = '<p><strong>This is strong text</strong> while this is not.</p>'; mail($to, $subject, $message, $headers); php?> Již funguje zapsáním kódu $content .= "<html> <body> <h2>Registrace</h2> Děkujeme za vaší registraci.<br /> Pro potvrzení a aktivaci vašeho účtu klikněte na následující odkaz:<br /><br /> <a href='".DEF_WEBURL."account_verify/$random_key' target='_blank'>".DEF_WEBURL."account_verify/$random_key</a><br /><br /> <h3>".DEF_SITENAME."</h3> <h4>".DEF_WEB."</h4> </body> </html>"; $headers = "From: Reálný Život <info@realny-zivot.cz>\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; mail($_POST['v1'],"Registrace Reálný Život",$content,$headers); redirect("?registered"); Sice nechápu, proč to dříve fungovalo a teď to nefunguje, ale budiž. Díky.
  14. Zdravím, Potrebujem z určitého súboru vybrať len určity riadok časť riadku, konkrétne z modu potrebujem vybrať parameter ktorý sa nachádza v zložke hráča napr "peniaze = X" tak to X by som potreboval vybrať. Našiel som nato funkciu explode no to mi nejako stale vracia 0. Samozrejme som na daný server pripojení cez FTP účet normalne to funguje overil som si to. Ďakujem za každú pomoc.
  15. Zdravím, rád bych vám dnes ukázal jak si jednoduše vytvořit vlastní panel do Tracy. Ti z Vás kdož používají Nette se s Tracy znáte, pro vás ostatní je to skvělá utilita o které si popovídáme jindy Základem je mít nainstalovanou Tracy , pokud pracujete v Nette tak tracy máte nainstalovanou automaticky. Já osobně své vlastní panely mám uchované přímo vedle Tracy tzn , že ve složce knihovny jsem si vytvořil složku tracy_modules do které dávám jednotlivé soubory k jednotlivým panelů. Začneme tím , že si tedy vytvoříme soubor pro náš panel s nádledujícím obsahem <?php use Tracy\IBarPanel; class <jmeno_naseho_panelu> implements IBarPanel { function getTab() { } function getPanel() { } } Nyní si rozebereme ty dvě funkce.. Funkce getTab vrací vlastně obsah který se bude zobrazovat na Tracy. A funkce getPanel vrací obsah pro popup který se otevře při najetí na getTab. Pro účely tutoriálu náš panel bude mít ikonku php a v popupu bude titulek PHP a pod ním vypsána verze PHP. Najdeme si ikonku nejlépe 24x24 pixelů a vytvoříme si tedy tab function getTab() { return "<span title='<tooltip_titulek>'><img src='<url_ikonky>'><volitelny_titulek_vedle_ikonky></span>"; } Případně nemusíme používat ikonku tudíž vynecháme celý tag . No a nyní tedy chceme na hover vidět verzi php kterou disponujeme function getPanel() { $title = "<h1>PHP</h1>"; $header = "<div class='tracy-inner'><table><tbody>"; $content = "<tr><td>Verze PHP</td><td>".phpversion()."</td></tr>"; $footer = "</tbody></table>"; return $title.$header.$content.$footer; } Requirneme soubor s naším panelem. A panel přidáme do tracy v mém případě se panel jmenuje PHPPanel Tracy\Debugger::getBar()->addPanel( new PHPPanel() ); A můj panel nyní vypadá takto A to je vše. Nyní je kompletně na Vás co bude Váš panel umět a co bude zobrazovat
  16. Předem bych rád upozornil, že v repo může být i napřed před návody. Už jen z toho důvodu , že si hodlám kód připravovat a nepsat ho přímo při návodu. Pojďme si založit nový mód. Ve složce php si vytvoříme složku s libovolným názvem. V mém případě se složka jmenuje samp-php-gamemode. Do ní vytvoříme soubor gamemode.php Do souboru gamemode.php si připravíme dva eventy prvním bude nastartování módu a druhým připojení hráče. <?php include "core/bootstrap.php"; Event::on('GameModeInit', function() { }); Event::on('PlayerConnect', function($player){ }); A začneme tím , že přivítáme hráče na našem serveru... Použijeme k tomu známou funkci SendClientMessage byť krapet pozměněnou po stránce argumentů. SendClientMessage( 0xFF00FF00 , "Hráč ".$player->getName()." se připojil na náš PHP server :)"); Asi se možná ptáte ale kde je id kterému se má message poslat ? Event si ho sám určí Respektive si ho najde z instance $player. Dále si můžeme nastavit nějaké ty informace o serveru.. Například GameModeText a PED animace Event::on('GameModeInit', function() { Server::setGameModeText( "Ewolutions PHP Gamemode" ); Server::usePlayerPedAnims(); }); Jména funkcí jsou nebo mohou být krapet odlišná. Ale veškeré funkce najdete ve složce php/core. Tímto dílem bych ve Vás chtěl probudit trošku zvědavosti a navnadit Vás co všechno by mohlo být možné V příštím už se vrhneme na něco komplexnějšího... Třeba registraci
  17. Zdravím, Chtěl bych rozjet takový menší seriálek o tom jak vytvářet scripty, a módy do SA-MP v PHP. Proč ? Je to jednoduché. Díky PHP si do sampu přineseme možnost OOP. Ale k tomu se dostaneme v průběhu. Celý projekt bude dostupný na Githubu. V tomto prvním díle Vám ukážu jak to cele sprovoznit. A od dalšího dílu už začneme programovat Stáhneme: SA-MP Server => zde PHP Plugin => zde Tutoriálové repo => zde Rozbalíme server a sloučíme ho s obsahem archivu s pluginem. Složka serveru by měla vypadat tedy zhruba takto: Vytvoříme si ve složce gamemodes libovolný pwn soubor. Já jsem použil gamemod bare ve kterém jsem obsah nahradil za #include <a_samp> main(){} Zkompilujeme a tím jsme hotoví s jazykem pawn Server.cfg by měl vypadat přibližně následovně. echo Executing Server Config... lanmode 0 rcon_password changedfdfme maxplayers 50 port 7777 hostname SA-MP 0.3 Server gamemode0 bare filterscripts plugins samphp announce 0 chatlogging 0 weburl www.sa-mp.com onfoot_rate 40 incar_rate 40 weapon_rate 40 stream_distance 300.0 stream_rate 1000 maxnpc 0 logtimeformat [%H:%M:%S] language English Po nastartování serveru by jste měli v konzoli vidět pár printů ohledně toho jak programovat.
  18. Ewwe

    návod PHP II. Cykly

    Obsah: Cykly v rychlosti for foreach while 1. Cykly v rychlosti Já se budu zabývat jen třemi cykly které jsou zmíněny v obsahu. Podle mě je zbytečné zabývat se ostatními protože více-méně vycházejí z těchto základních ( především tedy z while ) 2. Cyklus for Cyklus for se hodí k procházení dat a opakování určité činnosti. Syntaxe cyklu je for( [index] ; [podmínka] ; [akce] ) V zásadě jsou dva druhy cyklu for a to inkrementační a dekrementační. Samozřejmě lze použít i násobení, dělení či jinou matematickou činnost $array = [ array(1,"Pes"),array(2,"Kočka"),array(3,"Křeček") ]; echo "<select>"; for( $i = 0; $i < sizeof( $array );$i++ ) { echo "<option value='".$array[$i][0]."'>".$array[$i][1]."</option>"; } echo "</select>"; Důležité je vědět , že for mění hodnotu indexu až jako poslední úkon. Tzn. $array = [ array(1,"Pes"),array(2,"Kočka"),array(3,"Křeček") ]; echo "<select>"; for( $i = 0; $i < sizeof( $array );$i++ ) { //0 echo "<option value='".$array[$i][0]."'>".$array[$i][1]."</option>"; // až tady se provede inkrementace } echo "</select>"; Osobně for používám málokdy. Většinou máte výstupy uložené asociačně a pro ty se hodí třeba právě foreach 3. Cyklus Foreach Foreach je zajímavější protože sním můžete krásně procházet associované pole Základní syntaxe foreach( naplnene_pole as polozka ) //nebo foreach( naplnene_pole as klic => polozka ) Rozdíl mezi těmito dvěma způsoby zápisu je jen v tom , že do promene klic se uloží asociace na indexu. Menší příklad $array = [ "Pes"=>1,"Kocka"=>2,"Krecek"=>3 ]; foreach( $array as $zvire ) { echo $zvire.","; } // Výstupem bude : 1,2,3 foreach( $array as $zvire => $hodnota ) { echo $zvire." ma hodnotu ".$hodnota.","; } // Výstupem bude : Pes ma hodnotu 1,Kocka ma hodnotu 2,Krecek ma hodnotu 3, 4. Cyklus while Cyklus while já osobně moc nepoužívám v podstatě jen k načtení výsledu z mysqli query ( dozvíme se příště ) Syntaxe cyklu while( podminka ) Doslovně syntaxe znamená "dokud platí podmínka" Příklad použití /* Predpokladejme ze máme připojenou databázi s tabulkou users a sloupcem username který obsahuje jméno uzivatele */ $result = $mysqli->query("SELECT * FROM users"); while( $row = $result->fetch_assoc() ) { echo $row["username"]; } Hodnota promenne $row je true pokud je do ni ulozeno pole s výstupem databáze. Tzn dokud je co číst tak cyklus vypisuje. Jakmile už není co číst tak není ani co psát Cyklus while má "derivát" do-while. Klasický while provede akci uzavřenou v bloku pokud podmínka platí. Tzn , že podmínka se kontroluje první a až poté je případně vykonána akce. U cyklu do-while se akce vykoná a až poté je kontrolována podmínka. Jen v rychlosti syntaxe do-while vypadá následovně $i = 0; do { $i++; echo $i; } while( $i<=25); // nejvyžší vypsaná hodnota bude 26 Osobně s do-while nemám moc zkušeností a ani si nepamatuji jestli jsem ho někdy použil.. Pokud nezapomenu tak bude následovat další díl. Pro tento je to momentálně všechno.
  19. Ewwe

    návod PHP III. Databáze

    Obsah: MariaDB MySQLi PDO Dibi 1. MariaDB MariaDB je fork klasického MySQL s vylepšeními ohledně výkonu. Pokud si můžete vybrat MariaDB by měla být jasná volba. Nejedno vývojové prostředí ( XAMMP nebo WAMP ) Vám dovolí si jednoduše vybrat mezi MySQL a MariaDB. 2. MySQLi MySQLi je náhrada za mysql co se týče PHP. Jelikož od verze 5.5 jsou funkce s prefixem mysql_ označené jako depreceated a od verze 7.0 jsou dokonce ostraněné. S MySQLi se dá pracovat buď procedurálně nebo objektovně. Připojení k DB ( procedurální ): $connection = mysqli_connect( "127.0.0.1","root","pwd", "konkretni_db" ); Připojení k DB ( objektové ): $mysqli = new mysqli( "127.0.0.1","root","pwd","konkretni-db"); Určitě si myslíte , že v tom momentálně není moc rozdíl. To přijde. V procedurálních funkcí je nutné doplňovat proměnnou $connection například $result = mysqli_query( $connection , "SELECT * FROM users" ); naproti tomu u objektového přístupu $result = $mysqli->query("SELECT * FROM users"); Prakticky to znamená , že do $mysqli je uložený objekt mysqli který obsahuje všechny potřebné informace vč. instance připojení Načítání výsledků z db je v obou případěch relativně stejné // procedurální while( $row = mysqli_fetch_assoc( $result ) ) { echo $row["user_name"]; } // objektové while( $row = $result->fetch_assoc() ) { echo $row["user_name"]; } Mě osobně přijde objektové využívání přehlednější než to procedurální. Ale v případě že budete při připojení používat mysqli tak je to jen na Vás. 3. PDO Já osobně PDO moc nefandím. Tak nějak mi nevyhovuje způsob zápisu a celý koncept. Ano chápu , že PDO je nové možná rychlejší , bezpečnější a propracovanější a nabízí několik nových možností jako například před-připravování queryn atd. Připojení k db pomocí PDO $pdo new PDO("mysql:host=127.0.0.1;dbname=konkretni_db;","root","pwd"); Vytvoření dotazu pomocí prepare: $statement = $pdo->prepare("SELECT * users WHERE user_name = ?"); $statement->execute(["Ewwe"]); $result = $statement->fetchAll(); Osobně se moc nechci pouštět do PDO jelikož mu tolik nerozumím. Raději nechám PDO na někoho povolanějšího. 4. Dibi Kde jsem ale naprosto jako doma je Dibi. Je to databázový layer vytvořený panem Davidem Grudlem , který stojí za jedním z nejpopulárnějších frameworků ( Nette ). Dibi bylo psáno za účelem ušetřit a ulehčit práci programátorům. Dibi přináší několik "featur" , které jsou podle mého názoru užasné a dnes bych si nedokázal představit pracovat s db bez Dibi. Dibi chci věnovat samostatný díl ( dnes , zítra ) protože ja tak natolik obsáhlé , že by se těžko slučovalo stímto návodem. To by bylo pro tento návod vše a v dalším se budu věnovat tady právě Dibi a Tracy
  20. Ewwe

    návod PHP Mini - Star Operator

    Dneska jsem se dočetl o novém operátoru , který nejspíše přidají v PHP 7.2 nebo v PHP 8. Je to operátor hvězdička hlavní využití podle vývojářů je to , že umožní aby časté operace pro escapování byli jednodužší. Syntaxe nového operátoru <?* $str ?> <?* $str, 'html' ?> <?* $str, $context ?> A jedná se o zkrácení následujícího kódu $thing['name'] = "dsfwčgevěv"; // Aktuálně <?= htmlspecialchars(urlencode($thing['name'])) ?> // Nový operátor <?* $thing['name']?> Není uplně potvrzené , že opravdu tento operátor přidají ale momentálně to tak vypadá. Uvidíme co bude dál
  21. Ewwe

    návod PHP II. Cykly - dodatek

    Obsah: continue break 1. Continue Continue je "funkce" pro přeskočení aktuálního indexu respektive pro přeskočení celého cyklu pro aktualní "průchod" cyklem. $var = [ "Pes" => 1, "Kocka" => 2, "Krecek" =>3 ]; foreach( $var as $zvire => $hodnota ) { if( $zvire == "Kocka" ) continue; echo $zvire." ma hodnotu ".$hodnota.","; } // Výstup bude : Pes ma hodnotu 1,Krecek ma hodnotu 3, Hodí se to pro vyloučení hodnot a pro urychlení průchodu cyklem. Protože když máme nějaký složitý cyklus ( hodne podmínek které by se museli kontrolovat atd ) ,který obsahuje třeba 500 indexů které chceme a 500 které nechceme tak si uděláme hned na začátku podmínku na nějaký společný znak a hodíme ho do continue tudíž se tyto indexy rovnou přeskočí a nemusíme je zbytečně testovat. 2. break Oproti tomu break celý cyklus zastaví. $var = [ "Pes" => 1, "Kocka" => 2, "Krecek" =>3 ]; foreach( $var as $zvire => $hodnota ) { if( $zvire == "Kocka" ) break; echo $zvire." ma hodnotu ".$hodnota.","; } // Výstup bude pouze : Pes ma hodnotu 1 Opět můžeme vymýšlet různé scénáře kdy je to potřeba. Tohle by bylo na téma cyklů zhruba tak vše.
  22. Ewwe

    návod PHP I. Základ

    Obsah : Open tagy Proměnné Operátory Open tagy : V zásadě používáme dva typy tagů prvním je klasický <?php ?> a <?= ?> Jaký je mezi nimi rozdíl ? První typ ja základní a používá se pro veškeré php programování. Ten druhý je takový tweak pokud například chcete do html vypsat obsah proměnné či funkce. //"plné tagy" <?php echo $_SERVER["REMOTE_ADDR"];?> //"tweak" tagy <?=$_SERVER["REMOTE_ADDR"]?> Existuje ještě tzv. krátke open tagy ( short open tags ) které musí být povolené webovým serverem. <? echo $_SERVER["REMOTE_ADDR"];?> Proměnné : PHP umí pracovat se skoro všemi standardními datovými type ale není přísně typový jako třeba C#. To znamená že do jedné proměnné lze uložit jakýkoliv datový typ. $var = 1337; $var = 13.37; $var = "1337"; $var = true; Nějaké základní typy jsou : integer,string,float,bool,array,object,null a resource Operátory : přidělovací porovnávací operátor kontroly chyb aritmetické tečkový operátor spaceship Přidělovací: Přidělovací operátor = ( rovnítko ). Přidělování hodnot proměným. $var = 1337; Porovnávací: Máme jich hned několik první skupině budeme říkat datové , druhé hodnotové a třetí šipkové. Nejsou to žádná oficiální pojmenování. Datové: Dvojité rovnítko ( == ). Porovná zda li jsou hodnoty na obou stranách podobné. 1 == 1 //true 1 == "1" //true 1 == true //true Hodnotové: Trojité rovnítko (===). Porovnává zda jsou hodnoty stejné 1 === 1 //true 1 === "1" //false 1 === true //false Šipkové: Klasické operátory > a = a Operátor kontroly chyb: Operátor kontroly chyb (@) slouží k potlačení chybové hlášky. $var = $array[$index]; // dostaneme hlášku , že $index neexistuje $var = @$array[$index];// ticho Aritmetické operátory: Klasické operátory které znáte z matematiky ( * , - , * , / , ++ , -- , += , -= , *= , /= ). První čtyři znáte a nebudu je rozebírat. Operátory inkrementace (++) a dekrementace (--) které hodnotě přidají nebo uberou jedničku. $var = 0; //0 $var ++; //1 $var --; //0 Poslední čtyři operátory slouží k přidání hodnoty. Tzn operátor += přidá k proměnné na levé straně hodnotu z pravé $var += 25; Ekvivalentem je delší zápis $var = $var + 25; Tečkový operátor: Slouží pro spojování řetězců. $number = 1337; $var = "Dnešní číslo je ".$number; $output = "| ".$var." |"; Operátor spaceship: Tento operátor byl přidán ve verzi PHP 7. Upřímně netuším jestli má obdobu v jiném jazyce. Hodí se například v sortění polí. Základní funkcí je , že při stejných hodnotách na obou stranách vrací nulu při levé nižší než pravé -1 a při pravé nižší 1 var_dump(1 <=> 1); // 0 var_dump(1 <=> 2); // -1 var_dump(2 <=> 1); // 1 var_dump(('a' <=> 'a')); // 0 var_dump(('a' <=> 'b')); // -1 var_dump(('b' <=> 'a')); // 1 Ohledně sortění pole pomocí funkce .. Před php7 jste museli zhruba takto $data = array( array('id' => 1, 'price' => 50), array('id' => 7, 'price' => 40), array('id' => 5, 'price' => 130), ); uasort($data, function ($a, $ { return ($a['key'] < $b['key']) ? -1 : (($a['key'] > $b['key']) ? 1 : 0); }); S příchodem php7 lze tento kód zkrátit následovně uasort($data, function ($a, $ { return $a['key'] <=> $b['key']; }); Pokud nezapomenu tak bude následovat další díl. Pro tento je to momentálně všechno.
  23. Zdravím Hledám někoho kdo by byl ochotnej mi nainstalovat PHP fusion + udělat první kunfiguraci. Nastavení mysql atp.. Odměna: Na odměně by jsme se domluvily, může být i finanční Prosím, aby se ozívali jen zájemci. Předem děkuji
  24. Ewwe

    php WorldofTrucks

    Zdravím, již před nějakou dobou jsem psal tuto třídu protože jsem chtěl dále pracovat se statistikami z webu https://worldoftrucks.com Včera jsem dopsal další verzi a troufám si říci, že je na mnohem lepší úrovni než ta předchozí Třída má dvojí použití 1. Fetch statistik pro konkrétního hráče. $wot = new WorldOfTrucks(96022); $wot->fetchData(); $stat = $wot->getData("GLOBAL"); //or $stat = $wot->getData("ATS"); //or $stat = $wot->getData("ETS"); kde proměnná $stat obsahuje pole array (size=5) 'TOTAL_JOBS' => int 98 'TOTAL_MASS' => string '1393 t' (length=6) 'TOTAL_DISTANCE' => string '62038 t' (length=7) 'AVERAGE_DISTANCE' => string '633 km' (length=6) 'TOTAL_TIME' => string '46 h 42 min' (length=11) dále je možné zavolat $wot->userName ve kterém je uložené jméno hráče 2. Porovnávání n hráčů $data = WorldOfTrucks::compare(96022,7825,386356,"GLOBAL"); //or $data = WorldOfTrucks::compare(96022,7825,386356,"ATS"); //or $data = WorldOfTrucks::compare(96022,7825,386356,"ETS"); kde n argumentů jsou uid hráčů/uživatelů na webu a posledním argumentem musí být z jaké hry se mají data porovnávat a proměnná $data obsahuje array (size=6) 0 => array (size=4) 0 => string 'Staty' (length=5) 1 => string 'Ewwe' (length=4) 2 => string 'SilverMind' (length=10) 3 => string 'Baumfalke73' (length=11) 1 => array (size=4) 0 => string 'TOTAL_JOBS' (length=10) 1 => int 98 2 => int 27 3 => int 57 2 => array (size=4) 0 => string 'TOTAL_MASS' (length=10) 1 => string '1393 t' (length=6) 2 => string '359 t' (length=5) 3 => string '800 t' (length=5) 3 => array (size=4) 0 => string 'TOTAL_DISTANCE' (length=14) 1 => string '62038 t' (length=7) 2 => string '14256 t' (length=7) 3 => string '26640 t' (length=7) 4 => array (size=4) 0 => string 'AVERAGE_DISTANCE' (length=16) 1 => string '633 km' (length=6) 2 => string '528 km' (length=6) 3 => string '467 km' (length=6) 5 => array (size=4) 0 => string 'TOTAL_TIME' (length=10) 1 => string '46 h 42 min' (length=11) 2 => string '14 h 35 min' (length=11) 3 => string '22 h 7 min' (length=10) CODE : https://github.com/Ewwe/WorldOfTrucks
  25. Zdravím komunitu Pawna. Toto téma je určeno spíše pro ty, co se vyznají ve Wampserveru (Wampserver zde) Mám problém ohledně zapisování dat z webu do MySql databáze. Nainstaloval jsem 32 bit MySql server na místo MySql 64 bit, protože ten zahlcoval a lagoval server. S tím jsem taky samozřejmě instaloval nejnovější wampserver 3 32 bit, předešlí byl 2.5 64 bit. Aktuální verze MySql je 5.7.14 32 bit. Předešlá byla 5.6.17 64 bit. Aktuální PHP je 5.6.25. Předešlé bylo 5.5.12 Aktuální Apache je 2.4.23 32 bit. Předešlé bylo 2.4.9 64 bit Abych vám popsal situaci: Server se neuvěřitelně lagoval a MySql využití CPU stoupalo až na 70 %. Takže jsem hledal všelijaké možnosti a nakonec jsem nainstaloval nejnovější Wampserver 3.0, ale 32 bit. Aktuálně je MySql v normálu a lagy pominuly. Jenže nám přestal zapisovat web do MySql databáze (připojené vše je, zas takovej vůj nejsem )např. fórum, novinky oznámení registrace apod. Prostě web nezapisuje do MySql. Uživatelský účet v MySql má veškerá práva a je použit na vše, tudíž jak k serveru, k TS3, Webu a Mail serveru. Na předešlé verzi MySql (nebo Wampu, kdo ví) šlo vše, jak mělo akorát s neuvěřitelnýma lagama, takže se nedalo hrát. Problém jsem vyřešil instalací novější verzi ve 32 bitovém provedení a dalších 50 problému se naskytne. Že by byl špatně psaný kód si nemyslím, pokud to už jednou fungovalo. Podle mě to zase blokuje nějaká debilní funkce navíc ve Wampserveru. Googlil jsem asi 2 hodiny ale nakonec jsem to vzdal a napsal sem. Snad se vám někomu podaří mi pomoci. EDIT / SOLVED Problém byl vyřešen úpravou kódu pro novější verzi MySql. Pořád dělají něco nového a nikde o tom ani slovo, šupáci ...
×