Chyby v knize

Školení, která pořádám

Už je to čtvrt roku, co vyšla moje kniha, a je tedy na čase zveřejnit seznam chyb. Knihu jsem před vydáním velmi pečlivě kontroloval, ale kamarádi mi říkali: „Nepřeháněj to, stejně po vydání objevíš chybu na první stránce, na kterou se podíváš.“ To se naštěstí nepotvrdilo, stejně jsem ale časem na pár chyb přišel, na některé další mě upozornili čtenáři. Syntaktických chyb by měla být kniha prostá, ty jsem kontroloval automaticky, takže zbývají logické chyby, které se hledají nejhůř.

Zde je tedy seznam chyb v jednotlivých tipech:

Našli jste v knize také nějakou chybu? Já i ostatní čtenáři budeme vděční, když mě na ni upozorníte např. formou komentáře u tohoto článku.

Jakub Vrána, Osobní, 14.3.2011, diskuse: 22 (nové: 0)

Diskuse

SLR:

takze chyba je i v nazvu... 1000 tipu a triku :)

Tomáš Pavlacký:

tak daleko jsem ještě nestihl dojít :-)

Ján Jaďuď:

Ja by som ani tak netvrdil, ze ide o duplicitu tipov. Jeden ukazuje jeden sposob osetrenia mena, dalsi ukazuje druhy sposob. Rovnake je len to, ze vychadzaju z rovnakeho predpokladu, ze v poli $_FILES je len nazov suboru, nie cesta. Naviac tip 832 upozornuje este aj na to, ze tento udaj ide podvrhnut.

Oldřich Šálek:

A plánuješ vydat třeba 1001 druhé vydání, až se vyprodají vytištěné knihy. Případně než se vyprodají, bude se vkládat do knihy vložený papír s popisem chyb?

ikona Jakub Vrána OpenID:

Vkládat papír s popisem chyb je vzhledem k jejich počtu a závažnosti myslím zbytečné. Pokud se někdy bude chystat druhé vydání, tak se na možnost opravy zeptám u vydavatele.

Franta:

Dobrý den,
drobnosti a překlepy v knize:
676 - překlep v poznámce - "/kontaKty/"
682 - v returnu použití Regex (eregI) místo PCRE (dle 339 a dokumentace zastaralé)
711 - ajax je sice ze svého názvu asynchronní, ale lze použít i synchronní variantu (parametr v XMLHttpRequest.open), a bylo by dobré to zmínit
798 - kromě GET a POST by mělo být zmíněno i např. COOKIE
939 - překlep - "Pokud je kešování povolené, je možné HO"
990 - překlep - "Pro každou verzi je K dispozici"

ikona Jakub Vrána OpenID:

Díky za report, většinu jsem toho zaznamenal.

711 Synchronním AJAXovým požadavkům by bylo vhodné spíš věnovat samostatný tip, protože je lepší se jim zcela vyhnout.

798 GET a POST je uvedeno pouze jako ukázka, není podle mě nutné na tomto místě vyjmenovávat všechno, s čím je potřeba pracovat obezřetně.

939 Jde o chybu vzniklou při jazykové korektuře, sám jsem použil správnou formulaci :-).

Franta:

Ad ajax:
Kdyby prohlížeče používaly thready i na JavaScript, tak by to taky bylo o něčem jinym...
Ostatně, ten samej problém mají makra v MS Office atd. Skoro jako v sw pralese.

ikona Jakub Vrána OpenID:

Otázka je, co by při synchronním požadavku měl prohlížeč vlastně dělat – nevidím moc jiných možností, než zamrznout stránku.

Franta:

Především by se nemělo zaseknout/kousnout GUI. Což se děje jak u prohlížečů, tak u Office. Thread JS/VB neboli obecně skriptu nebo API by mělo bejt zcela oddělený od zbytku aplikace.

ikona Filip Oščádal:

„Nepřeháněj to, stejně po vydání objevíš chybu na první stránce, na kterou se podíváš.“ To se naštěstí >>nepotrvdilo<<<...

LOL

ikona Jakub Vrána OpenID:

Díky za upozornění :-), opravil jsem to.

Spidy:

Nevím, jestli je to opravdu chyba, nebo mi jenom něco uniklo, ale nemělo by v příkladu 302 (Jak na deserializaci objektů) být místo "$this->link = $this->connect();" jenom "$this->connect();"?

ikona Jakub Vrána OpenID:

Je to tak, díky za upozornění.

Jirka:

342 - Nemá být v prvním regulárním výrazu jen jedno zpětné lomítko? Takhle to neošetřuje závorku, ale zakazuje výskyt zpětného lomítka, nebo se pletu a je v tom něco víc?

ikona Jakub Vrána OpenID:

Příklad je vždycky lepší si nejprve vyzkoušet. Jedno zpětné lomítko požere PHP řetězec, takže preg_match dostane [^\(].

Stanislav Nechutny:

U tipu cislo 515 v zdrojovem kodu na radku 5 je konstruktoru tridy NotORM predavana promenna $structure, ktera neni pred tim definovana.

ikona Jakub Vrána OpenID:

Díky za upozornění, doplnil jsem to do seznamu a opravil ve zdrojácích.

omar:

Toz priste si to po sobe vic zkontroluj kemo!>]

Buriánek Ota:

nějak mi nefungují příklady, protože nemaká .htaccess
zkoušel jsem změnit konfiguraci appache - Allow Override z none na All - ale nic

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required '../connect.inc.php' (include_path='.;C:\php\pear') in Unknown on line 0

poradíte někdo!?

díky

Mirek:

263b.php:
místo
$randKey = $keys[mt_rand(0, count($array))];
má být
$randKey = $keys[mt_rand(0, count($array)-1)];

ikona Jakub Vrána OpenID:

Díky, doplnil jsem to.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.