Devlogy.cz » Seznam zdrojů » PHP triky
PHP triky
Základní informace o zdroji
| Podtitulek: | Weblog o elegantním programování v PHP pro mírně pokročilé |
|---|---|
| Domovská stránka: | http://php.vrana.cz/ |
| RSS export: |
Systémové informace o zdroji
| ID: | 26 |
|---|---|
| Jmenné ID: | jakubvrana |
| Články ručně přidává správce systému: | NE |
| Články jsou schvalovány správcem: | NE |
| Titulek zdroje stahován z RSS exportu: | ANO |
| RSS export je lineární: | ANO |
| Kontrola aktuálnosti proběhla: | dnes 20:47 |
| Návratový kód: | HTTP 304 |
| RSS export naposledy zpracován: | 4. února 2012 00:42 |
| Kontrola aktuálnosti naplánována na: | dnes 21:17 |
Common Mistakes in Securing Web Applications
I originally wrote this article for Smashing Magazine about a year ago but it hasn't found its way to publishing. However the ideas in the article are still valid so I am publishing it at least on my blog. Terms like XSS, SQL Injection or CSRF …
Představuji nové školitele
Má školení se za těch pět let, co je pořádám, stala velmi oblíbená a prošlo jimi několik set spokojených účastníků. Přišlo mi škoda je kvůli mému přesunu bez náhrady zrušit, proto jsem se domluvil s několika zkušenými vývojáři, ...
WebExpo 2011
Letošní WebExpo se podle mě mimořádně vyvedlo. Spokojený jsem byl i loni, protože jsem drobné organizační problémy považoval za detaily, ale letos se jich konference zbavila a musím říct, že byla opravdu profesionálně připravená a ...
Transakce v reálném světě
U některých operací v reálném světě bych docela uvítal, když by probíhaly v transakci: Vynesení smetí a vložení nového sáčku Vyprání osušky a pověšení čisté Vypotřebování toaletního papíru a instalace nového Sebrání nákupního ...
Záměna proměnných v řetězci
Pro vygenerování HTML kódu ve webové aplikaci obvykle používám šablony, konkrétně Latte. Někdy je to ale zbytečně těžký kalibr a úplně by mi stačilo v textu nahradit pár proměnných. Něco jako sprintf, ale s tím, že by proměnné ...
Připomínám poslední termíny svých školení
Jak už jsem psal, na září jsem kvůli svému odjezdu vypsal poslední termíny svých školení. Na většině školení je už jen několik volných míst, některá školení už se dokonce zcela zaplnila – u těch jsem vypsal náhradní termín. ...
Kdy v JavaScriptu nepoužít operátor typeof
Operátor typeof se v JavaScriptu nejčastěji používá pro zjištění, zda je proměnná definovaná. Jeho výsledek se tedy obvykle porovnává s hodnotou 'undefined': if (typeof x == 'undefined') { alert('Proměnná ...
OpenID na tomto blogu
Technologie OpenID se zatím moc populární nestala (a dost možná už ani nestane), já ji však mám v oblibě. Vyhovuje mi především to, co řadě kritiků vadí – identifikátorem je webová stránka, nikoliv e-mailová adresa. E-mail totiž ...
Kdy použít isset() a kdy NULL?
Na jazykové konstrukci isset mi nevyhovuje jedna věc: nerozlišuje, jestli je testovaná proměnná nenastavena nebo jestli je nastavena, ale obsahuje hodnotu null. Často se proto používá v druhém významu (a používal jsem ji tak dosud obvykle ...
Adminer – jak šel čas
První článek o Admineru vyšel na tomto blogu před čtyřmi roky. Udělal jsem proto malé shrnutí vývoje: VydánoVerzeJazykůVelikostMySQL-enHlavní novinka 2007-07-040.9236 kBPrvní zveřejnění 2007-07-111.0269 kBPrvní oficiální verze 2007-07-191.1291 ...
Finally
V diskusi o připravovaném PHP 5.4 se opět vynořila otázka, zda PHP bude podporovat blok finally. Jde o blok, který souvisí s ošetřováním výjimek – zavolá se na konci try-catch, ať už k výjimce dojde nebo ne. Důležité je, že se blok ...
Adminer 3.3.0
Nová verze Admineru nemá žádnou zásadní novinku, spíše spoustu menších drobností. Největší novinkou mělo být začlenění editoru se zvýrazňováním zdrojového kódu CodeMirror, s chováním jsem ale nebyl zcela spokojen, takže i když ...
Nízkoúrovňový dokonalý kód
Při čtení knihy Dokonalý kód si někdy připadám, jako kdyby programátor v C četl tipy pro asembler. Tabulky s indexovaným přístupem V knize je třeba tento příklad: Máme na skladě 100 položek, každá z nich má číslo v rozmezí 0 ...
Špatně čitelný dokonalý kód
U českého překladu knihy Dokonalý kód místy dost trpím. Čas od času si musím dělat zpětný překlad do angličtiny, abych pochopil, co měl původní autor nejspíš na mysli. Hlavně se ale v ukázkách kódu míchají české identifikátory ...
Ověření unikátnosti uživatele pomocí SMS
Zajistit unikátnost uživatele jde na webu mnoha různými způsoby: Nastavení cookie se dá obejít nejjednodušeji, řada uživatelů navíc používá víc prohlížečů. Kontrola IP adresy je nespolehlivá – jednak může jeden uživatel postupně ...
Výčtový typ
V MySQL používám výčtový typ s oblibou. Podle mně se ideálně hodí na označování speciálních hodnot. Příklad: v databázi máme jednotlivé webové stránky odkázané v navigaci. Některé z nich jsou ale speciální (např. podmínky ...
Traits a další novinky v PHP 5.4
Vyšlo PHP 5.4.0 alpha, takže je nejlepší čas se podívat na chystané změny. PHP 5.4 nepřinese tolik novinek jako PHP 5.3, změny mi ale povětšinou dělají radost. Článek vyšel na serveru Zdroják. Odstranění zastaralých obratů PHP ...
Zjištění názvu konstanty
Některé funkce a další obraty PHP vrací hodnotu konstant, např. $_FILES['']['error'], json_last_error nebo token_get_all. Pro zjištění významu těchto hodnot se dá někdy použít specializovaná funkce (např. token_name v posledním …
Dokumentační komentáře funkcí
Pro dokumentaci funkcí – jejich chování, parametrů a návratové hodnoty – je zvykem používat dokumentační komentáře: <?php /** Vrátí podřetězec v kódování UTF-8 * @param string * @param int pozice počátečního znaku počítaná ...
Vlastní Twitter export
V některých věcech jsem velmi konzervativní – třeba zprávy čtu od nejstarších a nechci ani zahlédnout něco, co už jsem četl. Možná proto mi moc nevyhovuje zeď Facebooku, protože tam se zprávy zobrazují od nejnovějších a přečtené ...
Dosazení odkazů do textu
API Twitteru v exportech nabízí tzv. entity – informace o aktivních částech textu, např. o URL adresách, uživatelích nebo haších. Aktivní části jsou označeny pomocí pozice svého začátku a konce. Jak postupovat, když chceme z textového ...
Dobře testovatelný špatný kód
Přečetl jsem si dokument Guide: Writing Testable Code, který shrnuje postupy používané v Google pro psaní testovatelného kódu, což dokumentu dodává jakýsi punc správnosti. Dokument je zajímavý, za přečtení rozhodně stojí, obsahuje ...
Fork PHP
Jak jsem nedávno poznamenal, tak jsem trochu zneklidněn tím, jak se tříští vývoj MySQL. Na totéž poukazuje i autor článku PHP Hacking, ovšem používá to jako argument pro uvedení vlastní verze PHP. Této verzi PHP nedávám moc šancí ...
Podřetězec v kódování UTF-8
PHP jak známo chápe řetězec jako posloupnost bajtů a nezohledňuje použité kódování. U dnes nejběžnějšího kódování UTF-8 jsou tedy funkce jako substr nebo strlen k ničemu. Alternativy pracující se znaky v různých kódováních jsou ...
Odpovědi v odběru diskusí
U diskusí na webu patří k dobrému mravu umožnit uživatelům přihlásit se k jejich odběru. Obvykle se k tomu používají dva odlišné přístupy: RSS nebo Atom E-mailové notifikace Zásadní výhoda prvního přístupu spočívá v tom, že ...
Může mít třída Image metodu resize?
U článku Práce s vlastnostmi pomocí metod se rozvinula zajímavá diskuse několika vynikajících teoretiků o tom, v čem vlastně spočívá objektově orientované programování. Přes několik příkladů jsme se dostali ke třídě Image, která ...
Alternativa ke knihovně cURL
Knihovna cURL je poměrně populární. Řada PHP aplikací ji používá v případě potřeby komunikace pomocí protokolu HTTP. Já jsem nikdy oblíbenost této knihovny nechápal a pokud vím, tak jsem ji snad ani nikdy nepoužil. PHP totiž nabízí ...
Práce s vlastnostmi pomocí metod
Další věc, se kterou nesouhlasím v knize Dokonalý kód, je doporučení pro čtení a zapisování vlastností objektu používat zásadně metody: login = $login; echo $db->login; // metody $db->setLogin($login); ...
Srovnání rychlosti Admineru a phpMyAdminu
Při běžném používání je Adminer opticky mnohem rychlejší než phpMyAdmin. Chtěl jsem tento rozdíl ale i změřit. Jedno srovnání rychlosti sice už existuje, ale to jednak bylo provedeno na starších verzích a jednak neuvádí metodiku, ...
Jak nedělat bezpečnost
Narazil jsem na funkci Kohana_Security::xss_clean. Je to opravdu lahůdková ukázka toho, jak se nepokoušet o bezpečnost. Co mi na funkci vadí? Navzdory svému názvu kód proti XSS neochrání – stačí zadat fragment jako mouseover=alert(1)>. ...
