JanKoWeb: Tvorba webu - PHP - nejčastější omyly a překlepy

PHP - nejčastější omyly a překlepy

Při programování v PHP se mi občas stane, že se strašně podivuji nad nefunkčností skriptu, který byla způsobena nějakou drobnou chybkou či překlepem v názvu proměnné a podobně. Sepsal jsem ty nejčastější omyly...

Proměnné obecně

PHP je case-senzitivní. To znamená, že je rozdíl mezi proměnnou $tmp a $TMP.

Zatímco klíčové slovo pro globální proměnnou ve funkci je global (bez "s"), superglobální proměnná je $GLOBALS (s "s").

Zatímco většina serverových proměnných je s podtržítkem ($_GET, $_POST, $_SESSION, $_SERVER), u globální proměnné podtržítko není. Správně je tedy $GLOBALS["nazev"], nikoli $_GLOBALS["nazev"].

Praktické proměnné

$_SERVER["HTTP_REFERER"] - obsahuje url stránky, ze které uživatel přišel na aktuální. Referer nemá žádná zdvojená písmena (občas se spletu a píši chybně REFFERER.

$_SERVER["REQUEST_URI"] - obsahuje url stránky, kterou uživatel požadoval před vstupem na aktuální stránku (tedy nejčastěji url aktuální stránky). Občas se mi povede napsat REQUEST_URL. Na konci je správně "i".

Nejčastější omyly kolem PHP

V XHTML není </br>, ale <br />. Zatímco Opera schroustne obojí, Firefoxu se první (chybný) zápis nelíbí neinterpretuje ho jako zalomení.

Konfigurační soubor není .htacces, ani .httpaccess, nýbrž .htaccess (tedy dvě "c" a dvě "s" a na začátku pouze "ht"; access je anglicky přístup).

Při vkládání skriptu např. s funkcemi je dobré používat include_once. Pokud skript vkládáte na více míst, načte pouze jednou. Při použití "obyčejného" include se v takovém případě dle mých zkušeností podivně jen občas vyskytuje chyba s redeklarací.

Funkce

Funkce pro práci s polem mají obráceně parametry.

explode("oddelovac",$string) (rozděl v místech oddělovače řetězec)

implode($pole,"oddelovac") (sluč pole, položky odděl).

Include a Header

Header (úprava HTTP požadavku; např. přesměrování apod.) lze volat pouze před jakýmkoli výstupem na obrazovku (echo apod.). Jinak hlásí chybu "cannot modify header...".

Jestliže máte skript, který includujete do mateřského a v mateřském až potom voláte Header, může se Vám stát, že ač v includovaném skriptu nemáte žádný výstup, vyskočí chyba "cannot modify header...". Váš includovaný skript nesmí obsahovat vně značek pro PHP úsek () žádné prázdné řádky. Jedná se totiž o výstup, i když prázdný.

Rubrika Tvorba webu | Tagy Php, Omyly, Proměnné | Ne 08.11.2009 | 2281x

Náhodné články

Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.

Aktuální věci publikuji kvůli úspoře času na Twitter.

Honza

"Nejlepší myšlenka je ta, která ponechává vždy určitou skulinu pro možnost, že všechno je současně úplně jinak."

V. Havel