We leveren geen ondersteuning op de code van jouw site. We zijn verantwoordelijk voor de werking van het platform waar jouw site op draait en daarom beperkt onze support zich tot hosting(server)gerelateerde problemen. Hoe de site verder ingericht is en hoe het werkt is aan de technisch beheerder. Het kan zijn dat een script niet het gewenste resultaat levert. Dat kan omdat het script zich niet zo gedraagt als je verwacht, zoals hij dat op een andere server doet of zelfs foutmeldingen genereert.

Byte kan je hier bij helpen, maar alleen als je een zeer gerichte vraag hebt. Als je je script nader moet bekijken om je probleem/vraagstuk op te lossen, kan Byte geen ondersteuning bieden. Leg in dat geval je vraag aan een van onze partners voor. Zij hebben de tijd en expertise om het script te lezen, begrijpen en uit te pluizen en het probleem op te lossen

Om te helpen bij het werkend krijgen van een script, hebben we minimaal een van de volgende twee gegevens nodig:.

  • Een PHP Foutmelding
  • Een geïsoleerd script met alleen de functie waarop je script stuk loopt erin, zodat we het kunnen reproduceren

Mocht je niet over deze gegevens beschikken, verzamel je deze met behulp van onderstaande informatie.

Een PHP Foutmelding

Het is moeilijk om een probleem op te lossen als er geen foutmeldingen weergegeven worden. Los van of je ze wel of niet weergeeft, helpt het loggen van foutmeldingen enorm bij het debuggen van een probleem. Alleen al de wetenschap of er wel of geen foutmeldingen optreden is zeer waardevol. Je kan PHP error logging aanzetten vanuit het Byte Service Panel onder Instellingen > PHP. De error wordt weggeschreven in het bestand error.log dat in de /logs/php/ map van je webruimte staat.

Uit de foutmelding kan vaak de directe fout in het script gevonden worden. Of in ieder geval een sterke hint richting de oplossing. Mocht je er niet uit komen, dan kan je de melding doorsturen naar ons en kunnen we toelichten in waar je de oplossing kan vinden.

Een geïsoleerd script met alleen de functie waarop je script stuk loopt

Op het moment dat er geen foutmelding gegenereerd wordt door een script, werkt het zoals het geschreven is. Dat betekent natuurlijk niet altijd dat het script precies doet wat je in gedachte had. Als dat niet het geval is, is het belangrijk om er achter te komen waar je script precies een eigen weg in slaat.

Debugging

Om te achterhalen waar een script het spoor kwijt raakt, zal het op verschillende plekken uitvoer moeten genereren. Zo kan je zien of een script er vroegtijdig mee stopt of ergens een verkeerde berekening maakt en roet in je data gooit.

print()

De meest simpele manier om dit te doen is om print ’s aan je script toe te voegen. Met de functie print kan je gegevens naar de console of de browser sturen tijdens de uitvoer van het script. Zo kan je door op verschillende plekken bepaalde markers te maken, aantonen tussen welke twee print opdrachten een script de geest geeft, en het probleem tot een enkele functie beperken.

Het zelfde geldt voor informatie. Heb je bijvoorbeeld script hebt wat gegevens importeert en verwerkt? Waarbij het eindproduct weinig weg heeft van wat het zou moeten zijn? Dan kan je besluiten om de informatie waar het om gaat op verschillende plekken in het script te exporteren zodat je kan zien of het op het moment van exporteren nog in orde is (bijvoorbeeld met print_r).

Je kan de regels die je normaal zou printen ook eenvoudig wegschrijven naar een log file met de functie error_log, de volgende code…

<?phperror_log("Script succesvol gestart en logregel weggeschreven",3,"/home/users/bijvoftp/error.log");

…voegt de regel “Script succesvol gestart en logregel weggeschreven” toe aan het bestand /home/users/bijvoftp/error.log. De staat voor een enter. Wanneer je deze niet aan de tekst toevoegt zullen alle logregels die op deze manier aangemaakt worden op de zelfde regel geplaatst worden.

Op het moment dat je een probleem kan plaatsen in een enkele functie (of meerdere losse) die niet op een gewenste manier werkt, dan kijken we er graag naar. Het valt eigenlijk buiten support, maar als het probleem zo geïsoleerd is kunnen we meestal snel tot een oplossing komen.

12