Als je denkt dat ik moe en afgepeigerd was na mijn dagje Motorbeurs van gister, heb je het helemaal mis. ‘s Avonds ben ik nog druk in de weer met WordPress geweest, omdat er iets raars aan de hand was en ik dat tot op de bodem uit wilde zoeken. Uiteindelijk resulteerde dat erin dat binnen 5 minuten het administratiegedeelte van WordPress ‘out’ was. Oeps!

Nu heb ik voor hetere vuren gestaan wat betreft het oplossen van, meestal code-gerelateerde, problemen met websites. Zowel de WordPress variant als de ouderwetse hand coded HTML / PHP sites die ik jarenlang zelf bouwde.

Het vreemde eraan is dat ik me aan de ene kant kapot erger aan het feit dat er iets niet meer werkt, maar ik het aan de andere kant ook enorm spannend en leuk vind en ik er letterlijk niet vanaf kan blijven totdat het weer normaal werkt. Ik heb het al vaker gezegd: Ik hou wel van een goeie uitdaging! En dat geldt overigens niet alleen voor WordPress en websites 🙂

Waar het allemaal om begon? Ik ontdekte onlangs dat er sinds een tijdje een rare code achter alle links van mijn website geplakt werd, iets met een hekje en dan de code axzz1n, gevolgd door een willekeurig gegenereerde code.

Ik vertrouwde die code niet. Mijn site heeft al eerder een soort virusinfectie gehad, wat ervoor zorgde dat er een reclame pop-up verscheen na het verlaten van mijn website. Een simpele handeling waarbij ik het serverbestand overschreef met een virusvrije kopie van mijn lokale back-up, loste dat probleem op. Maar dit was heel wat anders!

Ik besloot eerst hetzelfde toe te passen en de bestandjes van mijn inmiddels virusvrij verklaarde lokale kopie over de serverbestanden heen te zetten. Dat ging goed, totdat ik het bestandje update.php in de wp-includes map overschreef en mijn site zelf nog toegankelijk was, maar van het admin gedeelte was niets anders over dan een lege pagina met PHP fout.

Ik wist al snel waar ‘t aan lag, dat update bestandje was de boosdoener. Out of all bestandjes! Ik had serieus gedacht dat de web-versie identiek was aan de lokale versie, maar dat was hij dus niet en nu was het te laat. Een andere back-up had ik niet en omdat het 1 uur ‘s nachts was kon ik de hoster ook niet meer bereiken om te vragen alsjebliehieft even dat bestandje vanuit hun eigen back-ups terug te zetten voor me.

Toch moest het opgelost worden. Ongeacht het feit dat ik beter naar bed kon gaan en ik het admin gedeelte niet dringend nodig had. Daar heb je die uitdagingsfactor weer, ik móet en zal ermee bezig blijven, net zo lang tot het werkt zoals ik het wil.

Vervolgens het update bestandje uit de originele installatie naar de server gekopieerd. Geen verschil, daarna een update.php van internet geplukt (via Google gevonden) en die erop gezet. Geen foutmelding meer, wel een zwaar uitgeklede versie van de normaal redelijk stijlvolle WordPress admin zonder JavaScript ondersteuning. Halleluja!

Vervolgens kwam ik stukje bij beetje verder, onder meer nadat iemand op Twitter schreef dat hij WordPress versie 3.3.1. had, terwijl ik eigenlijk zeker wist dat ik ook de nieuwste versie had ondanks dat er toch echt versie 3.2.1 stond.

Ik merkte gelijk dat mijn gedachten een andere richting op gingen. Ik downloadde het WordPress 3.3.1. pakket van de WP website en uploadde het kakelverse update.php bestandje naar de server. Wederom een uitgeklede versie van de admin, maar één die er al wel iets beter uitzag.

Toen viel mijn oog op de notificatie dat er een update was. Ik kon bijwerken naar WordPress 3.3.1, waarvan ik hoopte dat het zou werken, en dat deed het! Zomaar ineens had ik mijn administratiegedeelte weer terug en ook weer WordPress 3.3.1.

Achteraf gezien had ik die dus inderdaad al gehad, maar het verkeerd geüploade update.php bestandje moet nog uit de 3.2.1 versie geweest zijn, waardoor er een conflict ontstond. Voordat ik de PHP foutmelding had gekregen, werd eerst nog gevraagd de database bij te werken. Zeer waarschijnlijk heeft ie toen een downgrade naar 3.2.1 gedaan en later, toen het weer goed kwam en ik opnieuw de database moest bijwerken, weer een upgrade naar 3.3.1.

Eind goed, al goed. Alleen had ik nog steeds die stomme code achter al mijn links staan! Weer in de broncode gedoken en dit keer iets tegengekomen waar ik meer aan had. Ik vond een HTTP push en wist gelijk dat het daar mee te maken had, aangezien ik zoiets al vanaf het begin dacht.

Even in normaal Nederlands. Een HTTP push is een commando dat in werking gesteld wordt op het moment dat het http protocol herkend wordt en daarbij wordt geforceerd, dus zeg maar eerste prioriteit heeft en alle eventuele andere parameters overschrijdt. Oké, dat klinkt nog steeds vrij nerdy, maar ik kan het niet anders uitleggen. Ik bén tenslotte een nerd. 🙂

In het scriptje waarin de HTTP push vermeld stond, zag ik ook het woord tynt staan en toen wist ik het! Ik heb me onlangs aangemeld voor de sort-of statistieken service van Tynt, waar je onder meer kunt zien wat voor content er vanaf je website gekopieerd wordt.

De scriptcode voor Tynt had ik, zoals gevraagd, direct in het header-bestand van mijn template geplakt, wat ook verklaarde dat het geen verschil maakte als ik mijn plug-ins uitschakelde (waarin je normaal alle content invoert die je op je site wilt gebruiken).

Vervolgens het bestandje met de desbetreffende code opgesnord, de code eruit gekieperd en voilà! Ik had weer mooie links zonder rare code. Vervolgens Tynt ook gelijk opgezegd, ik vond de service vanaf het begin al niet echt geweldig en de helft werkte niet, dus weg ermee. Opgelost!

Eind goed al goed. Het was uiteindelijk iets van half 3 eer ik tevreden en wel in horizontale positie verkeerde, maar stiekem was ik ook wel een beetje trots op mezelf dat ik alles toch maar weer even in m’n eentje en zonder de hulp van good old Google (over beide problemen niets zinnigs te vinden) had weten op te lossen en ook nog in een tijdsbestek van iets meer dan een uur. Het bewijst maar weer dat nerd zijn best wel eens zijn voordelen kan hebben!