Er zit een fout in mijn script; wat nu? Ga je fouten niet direct op fora gaan stellen, je zult er amper wijzer van worden. Vergeet niet dat de computer altijd gelijk heeft en ga dus zelf op zoek naar welke verkeerde opdracht je de computer vroeg.
PHP zal je zeggen in welk bestand en op welke lijn deze fout voorkwam.
Vaak kan php dit niet precies zeggen, maar moet je de 5 lijnen ervoor en erna bekijken om zo de fout te vinden.
1.2 je krijgt geen foutmelding op het scherm
Hiermee bedoel ik dat je een volledig wit scherm krijgt.
Je kunt dan bovenaan in je script
error_reporting(E_ALL);
schrijven. Dit zorgt ervoor dat ALLE fouten en meldingen op het scherm afgedrukt zullen worden. Indien je nu plots wel fouten ziet, betekend dit dat je je php configuratie moet veranderen.
Indien dit niets helpt, controleer dan even of je wel iets afdrukt op het scherm. zet bovenaan
echo "testzin";
en doe hetzelfde onderaan nog eens. Als je dan plots wel de twee zinnen ziet, dan weet je dat je script niets naar het scherm uitvoert; maar enkel code op de server uitvoerd.
Als je wilt controleren of een functie wel een resultaat geeft kan je altijd iets dergelijks doen:
<?
$waarde = NULL; //maak een lege var
$uitvoer=trim($waarde) or die("Trim werkte niet");
?>
Trim is geen perfecte functie hiervoor; maar wanneer de functie een negatief resultaat teruggeeft (NULL of -1) (niet een numeriek negatief getal) zal de executie van het script stoppen en de foutmelding geven. Voor je definitieve website zou je beter dergelijke dingen niet doen en voor een degelijke foutopvang moeten zorgen!
1.3 je krijgt niet het verwachte resultaat
Probeer regelmatig eens wat informatie af te drukken, zodat je exact kunt zien waar het foutgaat.
Heel handig hierbij is je arrays integraal af te drukken:
echo "<pre>";print_r($array);echo "</pre>";
de <pre> gebruik je om het goed leesbaar te maken; de print_r() om de hele array af te drukken
Maak een testpagina en zet maak opnieuw waarmee je bezig was. Het feit dat je al je opmaakcode of andere niet ziet zal je duidelijker laten denken.
1.4 Frequente fouten
Even kort fouten die vaak voorkomen; sommigen daaronder hebben veel mensen al uuuuuuren op een scherm doen staren om dan te bemerken dat het domweg een spatie ofzo was.
} vergeten
Wanneer je in een controlestructuur (while, if, switch, ...) een eindaccolade vergeet, dan zal je een error krijgen bij de allerlaatste accolade van je hele script, of als erna geen accolades meer komen op de laatste lijn van je script. Door je tekst te laten inspringen, kun je heel snel zien waar een accolade mankeert. (zie tut over netjes programeren).
; vergeten of een : getypt
Je moet het maar zien, het verschilt maar op shift te drukken, maar het verschil is bijna onzichtbaar!
" en ' mixen Van tijd tot tijd komen we dit nog tegen, mensen die een string met een dubbel aanhalingsteken beginnen en met een enkel eindigen. Dit werkt niet!
Onthoud ook dat binnen dubbele aanhalingstekens variabelen geparsed worden (door php begrepen) maar binnen enkele aanhalingstekens zullen ze als letterlijke tekst aanzien worden.
Er zijn nog een paar karakters die binnen dubbele aanhalingstekens niet de letterlijke waarde zullen krijgen van wat je typte (zie tut over variabelen).
Headers allready sent Dit betekend dat je al een karakterteken hebt laten afdrukken. Meestal zegt php je in de error op welke lijn en in welk bestand er al iets staat. Bij functies als header of cookie of andere mag er NIETS uitgevoerd worden, dit betekent dat je dus voor je <? geen spatie of een enter mag zetten.
typfouten in variabelenamen
Doordat je in php geen variabelen moet declareren, zal hij elke geldige string als variabele aanvaarden, en indien deze nooit eerder gebruikt werd, zal hij als leeg (NULL) aanzien worden.
Dus als je een schrijffout in een variabelenaam maakt, dan maak je in feite een nieuwe variabele in plaats van je 'oude' variabele te gebruiken.
> en < verwisselen Jah, daarmee moet je wat opletten, het kan gebeuren, hoewel dat meer een logica fout is dan een onnoplettendheidsfout.
fouten in array
Vaak maakt men fouten in subarrays, vb iets opvragen met $array[subarray] of $array['$i'].
Vergeet ook niet dat programeertalen bij 0 beginnen te tellen en niet bij 1! (zie tut over variabelen)
2MySQL foutenVaak heb je een fout in je php code die veroorzaakt wordt door een verkeerde sql query. Voor je een vraag gaat stellen; probeer dan eventjes je query in PHPMyAdmin (of dergelijke) om te zien of je wel de verwachte resultaten krijgt. Krijg je geen resultaten of verkeerde resultaten, dan weet je dat de fout niet aan je script zit maar aan je query. Blijf dan in je admin zoeken tot je de fout vindt en een juiste query kunt opstellen en gebruik die zeker juiste query dan in je script. Zit je fout in je Query? PhpMyAdmin geeft je wat info over waar je fout zou kunnen zitten; kijk eens wat hij zegt:
zitten je aanhalingstekens overal juist (gebruik voor SQL altijd enkele aanhalingstekens)
heb je geen kommas teveel of te weinig
zijn je haakjes consequent gesloten
is je query duidelijk geschreven (hoofd- en kleine letters)
3. Hulp vragenHiervoor heb je de forumregels, maar ik wil de belangrijkste dingen even herhalen. Sitemasters is een gratis dienst, en diegenen die antwoorden geven doen dit ook gratis. Toch hebben zij vaak andere dingen te doen.
Gebruik een passende titel.
Let op je taal.
Let op leestekens en andere die het lezen vergemakkelijken.
Herlees je post, en vraag je af of het begrijpbaar is.
Probeer moeite te doen met de reacties (niet "jamaar ik weet niet hoe ik die code moet invoeren" maar probeer!)
Toon interesse in je probleem, hoeveel moeite je ook doet, soms is het niet begrijpelijk. Kom dan zo snel mogelijk toelichten wat je vraagt.
Verwittig als het probleem opgelost is.
but once again: READ THE FORUMRULES als je ze niet volgt, moet je niet verbaasd zijn dat je geen antwoord krijgt.