Jump to content

Search the Community

Showing results for tags 'http'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

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 3 results

  1. Obtížnost: Obsah: Předmluva HTTP Type Chybové kódy( status kódy ) Callback Tipy/Triky Co stím ? Předmluva: Proč obtížnost 6 hvězdiček ? To je jednoduché pro práci respektive pro pokročilou práci s touto funkcí budete potřebovat znát další jazyk a to je PHP. Pro ještě pokročilejší ještě alepson SQL. Je to pouze jediná funkce ale pomocí ní lze realizovat mnoho věcí na které by jste potřebovali plugin. Například MySQL registrace, běžně je třeba plugin + lokální databáze ( lokální databází myslím , že db by měla být dosažitelná z módu pod loopbackem. Samozřejmě není to pravidlo některé hostingy podporují remote přístup. HTTP(index, type, url[], data[], callback[]): Nejdříve si vysvětlíme co jsou jednotlivé argumenty funkce. index - v podstatě něco čím odlišíte dvě různé funkce. Nejčastěji playerid( ID hráče ). type - mám celkem tři typy HTTP_GET ,HTTP_POST a HTTP_HEAD. Každý si rozeberem později. url[] - tak to je jasné je to url adresa ke scriptu a nebo souboru. Nesmí obsahovat http://. data[] - data pokud jako typ máme HTTP_POST callback[] - public ve kterém zpracujeme výsledek funkce. Funkce nám vrací true nebo false. True v případě úspěchu, false v opačném případě. Type: HTTP_GET - Základní požadavek. HTTP( index , HTTP_GET , "google.cz/#q=navod" , "" , "" ); Hodí se v podstatě třeba jen k načtení changelogu umístěného na webu nebo něco v podobném smyslu. Nic co bychom nechtěli aby někdo zneužil. HTTP_POST - Tento typ doporučuji používat na všechno. Script který přijímá POST requesty je obtížnější ohrozit než ten který čeká na GET. Dáno už jen tím že GET parametry s hodnotami jsou přímo url adrese. HTTP( index , HTTP_POST, "google.cz/#" , "q=navod" , "" ); HTTP_HEAD - Toto je v podstatě asi nejméně využitelný typ. Jediné použití například k zabránění spuštění módu ověřením existene souboru. Struktura je stejná jako u HTTP_GET rozdíl je pouze v tom že HEAD nepřijímá obsah ale jen chybový kód. Chybové kódy: Tyto kódy si rozdělíme na globální a sampové. Sampové: HTTP_ERROR_BAD_HOST 1 HTTP_ERROR_NO_SOCKET 2 HTTP_ERROR_CANT_CONNECT 3 HTTP_ERROR_CANT_WRITE 4 HTTP_ERROR_CONTENT_TOO_BIG 5 HTTP_ERROR_MALFORMED_RESPONSE 6 Z jejich definice je v podstatě patrný význam. V případě HEAD lze ignorovat ten poslední Globální: Těch je mnoho. Kompletní seznam si projděte zde. Vy chcete aby chybový kód byl vždycky 200. Protože jak je vidět v seznamu 200 je kód pro úspěch. Callback: Jeho jméno zavisí na vaší definici v argumentu funkce. Vysvětlím na následujícím příkladu. Řekněme že chci z webu pawno.cz stáhnout soubor banlist.txt kde mám napsané jedno jméno které nechci na server pustit. public OnPlayerConnect( playerid ) { HTTP( playerid , HTTP_GET , "pawno.cz/banlist.txt", "" , "PawnoCZBanlistTxt" ); return 1; } forward PawnoCZBanlistTxt(index, response_code, data[]); public PawnoCZBanlistTxt(index, response_code, data[]) { new name[21]; GetPlayerName( index , name , 21 ); if( response_code == 200 ) { if( data == name ) Kick( index ); } return 1; } /* Ano vím že vzhledem k datovým typům je data == name blbost, ale pro pochopení to napíšu takto */ Do proměnné data se uloží obsah souboru. Takže to v případě neúspěchu nebo nějaké chyby může být i apache error. Tipy/triky: Jak jsem již říkal doporučuji data posílat přes POST. Ne že by nešli zneužít nebo podstrčit. Ale je to složitější než u GET. Dále doporučuji udělat si ve scriptu nějakou definici do které si uložíte string který budete posílat spolu s daty. Viz https://github.com/Ewwe/Public-Pawn-Gamemode/blob/alpha/gamemodes/gm.pwn#L25 a https://github.com/Ewwe/Public-Pawn-Gamemode/blob/alpha/gamemodes/_core/server/action.pwn#L22. Dále doporučuji v php porovnávat IP adresu. Pokud přidáte podmínku , že if( $_SERVER["REMOTE_ADDR"] == "IP vašeho serveru" ) Tím v podstatě zamezíte veškerému nežádoucímu přístupu. Zase samozřejmě všechno jde nějak obejít. Co stím ? Jak jsem již říkal na začátku pomocí této funkce lze jednoduše udělat MySQL registraci propojenou s webem. Například lze jednoduše propojit PHP Fusion se serverem. Nebo jakýkoliv jiný CMS. Online banlist není problém. Je to omezeno pouze vaší fantaziíí. Můj první script využívající tuto funkci byl changelog vypsaný do dialogu a stažený z php fusion stránky. Registrace do MySQL není nijak pomalá nebo něco podobného jen je třeba brát v potaz , že pokud Vám někdo bude dosovat web tak se to odrazí i na serveru. Podle mého ale klady převyšují nad zápory. Jen je třeba znát alespon nějaký základ jazyků PHP a SQL. Což přece není na škodu naučit se něco nového ne ? Děkuji pokud jste tento návod pečlivě pročetli a ne jen zběžně prolétli. Byl jsem úspěšný pokud jsem Vás něco naučil. Případně dotazy směřujte sem do tématu. Pokud jsem někde udělal nějakou chybu napište mi PM. Váš Ewwe
  2. Dobrý den, rád bych updaty svého gamemode automaticky distribuoval přes web. Moje idea je, že bych na apache server (mám) (pro ty co neví, web server) měl soubor gm_ver.ini a onGamemodeInit by si pawn tento soubor stáhl a zkontroloval, zda má nejnovější. A teď k hlavnímu problému: (koukni na EDIT) Můžu pawnem přepsat filterscript/gamemode samotný? Samozřejmě, funkčnost až po reloadu nebo restartu srv... Za odpověď moc děkuji. hoschi EDIT: ano, přepsat ho můžu. Ovšem problém je, jak ho stáhnout v amx formě v pawnu bez nějakého zničení převodem na řetězec
  3. Dobrý den, rád bych updaty svého gamemode automaticky distribuoval přes web. Moje idea je, že bych na apache server (mám) (pro ty co neví, web server) měl soubor gm_ver.ini a onGamemodeInit by si pawn tento soubor stáhl a zkontroloval, zda má nejnovější. A teď k hlavnímu problému: Můžu pawnem přepsat filterscript/gamemode samotný? Samozřejmě, funkčnost až po reloadu nebo restartu srv... Za odpověď moc děkuji. hoschi
×
×
  • Create New...