wordpress plugin megszakítja a php futását?
sziasztok,
adott egy 2.3.3-as wordpressre átültetett céges weboldal, amihez a már meglévő design alapján saját témát készítettem. az oldalon van egy-két űrlap, amivel hírlevélre, előadásra jelentkezhetnek, stb. az űrlapok feldolgozása a functions.php fájlban történik.
a problémám az, hogy a php futása néha - látszólag minden ok nélkül - megszakad. az űrlapot elküldi a felhasználó és utána egy fehér képernyőt lát, én pedig a három logolási pontból csak egynek az eredményét látom. amire eddig jutottam:
a három logolási pont:
még egy apróság, van olyan, hogy egymás után 5-ször is megjelenik az első logolás eredménye (feltételezem, hogy a felhasználó nyomkodja az f5-öt a böngészőben), és mind megszakad. tehát ha valaki egyszer megszakad, akkor onnantól kezdve mindig. ebből akár azt is hihetnénk, hogy maguk az adatok okozzák a hibát, de ha utána én felviszem az ő adatait, akkor minden rendben lefut.
a függvény az init hookhoz van kapcsolva.
minden ötletet és segítséget előre is köszönök!
■ adott egy 2.3.3-as wordpressre átültetett céges weboldal, amihez a már meglévő design alapján saját témát készítettem. az oldalon van egy-két űrlap, amivel hírlevélre, előadásra jelentkezhetnek, stb. az űrlapok feldolgozása a functions.php fájlban történik.
a problémám az, hogy a php futása néha - látszólag minden ok nélkül - megszakad. az űrlapot elküldi a felhasználó és utána egy fehér képernyőt lát, én pedig a három logolási pontból csak egynek az eredményét látom. amire eddig jutottam:
- nem történik php hiba, még egy átkozott kis notice sem jelenik meg a logban
- a négy űrlapból kizárólag egynél fordul elő a hiba, noha mind a négy űrlap feldolgozását ugyanaz a függvény végzi a submit gomb neve alapján
- kb minden tizedik alkalommal megszakad az űrlapfeldolgozás, szóval én a stop gomb használatát/internet megszakadását/egyéb kliens oldali problémát kizárnám
- a dev verzióban nem tudtam reprodukálni a hibát, sőt, ha az éles oldalon töltöm ki az űrlapot, nekem mindig minden tökéletesen lefut (éles oldalon nem tudok debugolni, dev verzióban viszont nem jön elő a hiba, 22-es csapdája)
a három logolási pont:
- a wordpress index.php fájljának elején a $_POST tömb
- az űrlap feldolgozására hivatott függvény elején a $_POST tömb (functions.php-ban)
- az űrlap feldolgozására hivatott függvény végén a mindenféle információk
ezekből az elsőnek van mindig eredménye, a másik kettő szokott hiányozni. a vicces az, hogy a wordpressbe beégetett eszképelést vizsgálva raktam be az elsőt, így derült ki a hiba.
még egy apróság, van olyan, hogy egymás után 5-ször is megjelenik az első logolás eredménye (feltételezem, hogy a felhasználó nyomkodja az f5-öt a böngészőben), és mind megszakad. tehát ha valaki egyszer megszakad, akkor onnantól kezdve mindig. ebből akár azt is hihetnénk, hogy maguk az adatok okozzák a hibát, de ha utána én felviszem az ő adatait, akkor minden rendben lefut.
a függvény az init hookhoz van kapcsolva.
minden ötletet és segítséget előre is köszönök!
Teszt...
Sajnos volt szerencsém szívni Wordpress-el, még FastCGI-n is, nem volt egy élvezet. Nem a hibakezelés jegyében született az a kód.
nem tudom reprodukálni a hibát
látszólag nincs hiba, de olyan sűrűn fordul elő, hogy mégis lennie kell valahol.
Durvább eszközök
esetleg
nincs adatbázisművelet
a wordpressben is lehetne valami pici kis bug, de akkor más űrlapoknál is előfordulna ez a hiba, nem? négy űrlapból kizárólag egynél van ez a probléma.
szerk: ja és a kérdésedre válaszolva, az űrlapokat leteszteltem spec karakterekkel is.
éles oldal
banális "hiba"
a régi oldalak mod_rewrite-tal át vannak irányítva az új oldalakra. az oldalra a tudtomon kívül mutatnak google adwords linkek, és az adwords hozzáad egy ?gclid=... paramétert a linkekhez. ezt a paramétert a mod_rewrite nem törli le, hanem hozzáfűzi az új oldal linkjéhez, ami nem is baj, mert ez kell az analyticshez. :)
mivel a wordpress init hookjában nem használható az is_page() függvény, én a query string alapján dolgoztam fel a $_POST tömböt, ami ezeknek a paraméterezett linkeknek hála meg sem történt. egyáltalán nem jutott eszembe, hogy nem azzal a request uri-val jönnek majd az emberek, amire én gondolok.
proclub és rrd köszönöm a tippeket! eddig azért nem írtam, mert most hétvégén egyik éjjel csináltam meg a logolást. kevesebb látogató volt, de így is összegyűlt jó pár kb log és még ki is kellett mazsolázni, hogy kinél és milyen hiba történik.
nem tudom mi a tanulság, de sem én nem lettem megfelelően tájékoztatva, sem a kódom nem készítettem fel mindenre, ráadásul a hibakeresést is elbénáztam. :D mégegyszer köszönöm!
Hiba...
nem a mod_rewrite a baj
viszont a cikket nem találom. kevés jó magyar cikket találtam wordpress berhelésről, szóval érdekelne.