JanKoWeb: Tvorba webu - PHP - nejčastější omyly a překlepy
jankoweb.wz.cz
Den Slunce a světový den svobody tisku.


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 | 2280x

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

"Každý je ochoten udělat nesmírné množství práce, pokud se nejedná o práci, kterou by měl udělat teď hned."

R. Benchley