5. 8. 2007

Už fungují komentáře

Zařazen do: Ostatní­, Programování, IT — Hans @ 7:03

Pár týdnů mi tu nefungovalo komentování článků. Souviselo to zřejmě s přesunem serveru z Windows na Linux, protože se problém objevil zhruba současně s tímto přesunem.

Ve snaze vyřešit jej elegantně, nainstaloval jsem nový Wordpress. Chvíli to ještě asi potrvá, než se mi bude chtít piplat se s nahozením obvyklého designu. Bohužel, zmíněný problém tím vyřešen nebyl.

Inu pustil jsem se do analýzy a zjistil, že formulář posílaný pomocí metody POST dorazí na server (resp. ke skriptu, který ho zpracovává) s proměnnou prostředí REQUEST_METHOD nastavenou na GET a všemi obvyklými vstupními poli ($_GET, $_POST, $_REQUEST) prázdnými. Wordpress v nové verzi už měl tento stav dokonce ošetřený a posílal HTTP chybu 405 (method not allowed).

Dopátral jsem se, že by to mohlo být způsobeno typicky zpracováním skriptu jako obyčejný text, ale ostatní php skripty fungují v pohodě a stav se nezměnil, i když jsem v .htaccess explicitně vynutil skriptové zpracování pro dotyčný soubor. Nakonec jsem zjistil, že většina formulářů třeba v adminu Wordpressu funguje dobře. Metodou pokusu a omylu jsem došel ke zjištění, že fungují jen formuláře s vyplněnou akcí ve stylu action=“soubor.php“, nikoliv action=“http://hansuv.net/soubor.php“.

Na problém jsem tedy zatím aplikoval pouze jakýsi work-around (změna akce problémového formuláře); pokud někdo tuší, které nastavení Apache by mohlo zmíněný problém řešit, dejte mi prosím vědět.

Kdyby byly další problémy s komentáři, napište to do komentářů.

Komentáře: 2 »

  1. Jen strilim od boku, ale neni v php.ini nastaveno safe_mode=on ?

    Komentář od Kumpa — 6. 8. 2007 @ 14:03

  2. Není. Ale i kdyby bylo, už dlouho programuju safe_mode=on-solid kód :)
    Nastavení safe-mode na on neovlivní práci s proměnnými v poli $_POST. Navíc, některé formuláře fungovaly v pohodě.

    Komentář od Hans — 6. 8. 2007 @ 14:17

RSS komentářů k tomuto příspěvku. TrackBack URL

Napsat komentář

Tento web je provozován s využitím systému WordPress. (Česká lokalizace)