Hjälpte till med en hemsida åt ett rörmokarföretag

PHP fel

Blev nyligen kontaktad av rörmokare Västerås som behövde lite hjälp med sin hemsida där de säljer tjänster inom rörmokeri. Problemet var att hemsidan åkt ned och att inget numer fungerade. “Vad är felet med vår hemsida?”

Såhär gick jag till väga för att hitta felet och därefter klämma det.

Felsökning

Först och främst måste man hitta felet. Vad är det som felar med hemsidan då man utan att känna till detta inte heller kan lösa problemet. Därmed är det absolut första steget felsökning. Såhär gjorda jag.

Analysera felet med hemsidan

Så fort man besökte hemsidan så fick man felmeddelandet “500: Ett internt fel inträffade”.

Detta betyder att det är något med hemsidans interna delar som felar. Faktum att just detta 500-fel dyker upp innebär att servern inte vill visa det specifika felet åt externa användare utan istället helt enkelt meddelar dem om att ett intern fel inträffade och att hemsidan i dagsläget inte går att nås.

Så nu måste man veta vad som orsakar detta fel.

Jag började med att stänga ned åtgärden som endast visar det generiska felet utåt och istället visar det specifika felet.

Nu fick man ett fel om att det var någon bit i hemsidans PHP-kod som felar. Yes! Fel: Hittat. Nu gäller det att lösa felet.

Lösa felet

När PHP visar felmeddelanden så visar det även exakt var i koden som felet inträffade. Detta gör det enkelt för utvecklare så de inte behöver använda elimineringsmetoden för att hitta felet utan PHP säger istället exakt var ett fel inträffat och var koden inte kunde fortsätta.

Jag öppnade den fil där koden inträffade och det var en funktion som kallades och orsakade ett fel. Funktionen som kallades fanns i en annan fil.

Jag öppnade den andra filen. Fortsatte så tills att jag hittade felet djupt inne i koden några tusen linjer ned.

Felet inträffade när PHP försökte använda sig utav en gammal PHP funktion som inte längre stöds av den nyare PHP-versionen. Hemsidan hade alltså uppdaterats till en ny PHP-version men koden hade inte uppdaterats för att reflektera den nya PHP-versionen.

Nu meddelade jag företaget om vad felet var och hur mycket det skulle kosta att verkligen lösa. Hela koden behövde uppdateras så att koden och PHP-versionen var i fas.

Detta gör man oftast med hjälp av konsulter eller webbmasters om man har några anställda. Alternativt så sköts detta automatiskt om man använder sig utav en plattform som är välutvecklad och välskött, som WordPress eller Wix, m fl.

Företaget gav tummen upp och jag satte igång.

Uppdatering utav kod

Jag använde ett program som analyserar kod och hittar linjer som inte längre stöds av den senaste PHP-versionen. När programmet var klart så fick jag en rapport på samtliga linjer utav kod som inte längre stöds eller inte längre förstås av de senare PHP versionerna. Därefter satte jag igång med att ändra dessa linjer kod till den nyare versionen. Här är det bara en massa PHP funktioner som inte längre används i de nya versionerna PHP och behöver helt enkelt ändras så att koden skrivs på ett annat sätt.

När detta var gjort så säkerhetskopierade jag företagets gamla hemsida och laddade därefter upp den nya koden. Uppdaterade hemsidan på webbläsaren och vóila så fungerade det.

Fakturerade företaget och därefter var alla nöjda.

Slutord

Det viktiga med att hitta och lösa fel är att först förstå felet genom att felsöka det rätt och därefter lösa det på bästa möjliga sätt för att förhindra framtida fel.

Felet som beskrivs ovan kunde väldigt enkelt ha lösts genom att helt enkelt bara lösa felet som webbläsaren visade ursprungligen. Alltså inte att uppdatera all kod utan bara uppdatera den linje som gav felet i första början. Detta hade dock inneburit att företaget några veckor senare hade säkert stött på ett likadant fel och behövde nu börja om från början. Hemsidan hade åkt ned i några dagar och de hade därefter behövt hitta en ny konsult att lösa felet, om jag nu inte var tillgänglig.

Därför är det bra att lösa felet helt från första början så att det inte händer igen och detta kommer spara tid för alla parter. Företag som konsult. För mig så gör jag en kund nöjd och när de stöter på framtida problem så kommer de att kontakta mig. Och för företaget så sparar jag väldigt värdefull tid då de kommer att ha en bättre sida och denna kommer vara uppe mycket längre, vilket innebär fler kunder och mindre problem. Win/win för alla parter.