Dnes se podíváme na syntaktické chyby při parsování PHP skriptu, které se mohou u WordPress občas vyskytnout. Většinou při neodborném zásahu přímo do zdrojového kódu.

Chyba Parse error: syntax error znamená, že při parsování (zpracování) PHP (programovací jazyk v kterém je WordPress napsaný) došlo k syntaktické chybě. Ve valné většině případů je to překlep, nevhodný znak anebo bylo něco smazáno.

PHP řeší pouze to, co se děje mezi <?php a ?> Pokud dojde k chybě, hledejte jí právě mezi těmito značkami. Lidé, kteří se rozhodnou upravit si nějakou drobnost v pluginu či šabloně mohou omylem vložit nějaký text mezi tyto značky a pak dojte k této chybě. Problém je, že pokud si vyberete opravdu špatný soubor, tak tím můžete celý WordPress rozbít a přestane fungovat. V takovém případě je nutné připojit se přes FPT a vše vrátit do původního stavu. A to:

  • V případě souboru jádra WordPress – stáhněte si originální instalaci. Musí to být stejná verze jakou používáte. Najděte v ní soubor, který byl editován a teď hlásí chybu. Nahraďte jej originálem. Mimochodem do jádra WordPress nikdy nezasahujeme.

  • V případě pluginu/šablony – postup je v podstatě stejný. Jen v případě, že víte co jste pokazili a chcete to napravit, tak si soubor stáhněte k sobě a proveďte opravu. K editaci ale nepoužívejte Word a podobné editory. Místo toho zvolte obyčejný poznámkový blog (notepad) anebo specializovaný editor PSPad. Editory jako Word totiž často automaticky nahrazují některé znaky. Například uvozovky.

  • Jestliže jste si stáhly plugin na vkládání PHP do souboru a mezi značky vložili co tam nepatří – tady stačí většinou vypnout plugin. Pokud to nejde z administrace, připojte se přes FTP a adresář s názvem pluginu přejmenujte. Najdete jej ve (wp-content/plugins/).

Pokud se vám podobná chyba začala objevovat bez zjevného důvodu (do kódu jste nezasahovali, nespustili jste nový plugin/šablonu anebo nic neaktualizovali) může se také jednat o pokus o útok. Útočníkovi se podařilo propašovat do vaše WordPress kus svého kódu. Jeho pokus však nedopal podle představ a kód byl vložen špatně. Zde je dobré být velice obezřetný i po odstranění škodlivého kódu. Útok už dříve mohl být úspěšný, například máte někde backdoor, ovšem další část se nepovedla.

S touto chybou jsem se setkal ještě u cachovacího pluginu, kterému se nějaký jiný plugin pletl do cesty. Může se tedy jednat i o kolizi.

Závěr

Pokud nemáte zkušenosti s programováním radši nikdy nezasahujte mezi <?php a ?>. Nezapomeňte že tyto značky od sebe mohou být velmi vzdálené. Nepište mezi ně nic, dokud si nenastudujete alespoň základy PHP.

Oprava probíhá většinou přes PHP, kde je nutné si poškozený soubor stáhnout k sobě do počítače, zazálohovat a opravit. Popřípadě nahradit původní verzí.

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInBuffer this page