Exemplen våra guider är testade och fungerar enligt de versioner av PHP och MySQL som anges i varje guide. I guiderna anges också vilka övriga förutsättningar som bör vara uppfyllda för att exemplen ska fungera. Att förutse och informera om alla eventuella fel som kan inträffa är inte möjligt och den här guiden samlar tips på tänkbara felorsaker som gör att dina PHP-filer inte fungerar korrekt.
Vår målsättning är att den här guiden förnyas med fler felsökningstips! Har du egna erfarenhetar av fel som uppstått och kan ge tips till andra så får du gärna dela med dig av tipsen genom att kontakta oss » så att vi kan uppdatera den här guiden med nya tips!
En tom vit sida i webläsaren beror oftast på att PHP-koden saknar vissa tecken (eller förekommer dubbelt) så att syntaxen blir felaktig. Resultatet blir oftast inget felmeddelande utan bara en tom sida...
Kontrollera din kod noga och leta efter tecken som saknas, angivits på fel plats eller förekommer dubbelt. Om du missat något av tecknen { } ( ) [ ] ' " . , fungerar inte din PHP-kod korrekt och resultat blir en tom vit sida när koden körs i webläsaren.
Om du använder en felaktigt kombination av 'fnuttar' och "dubbelfnuttar" i strängar så kan strängarna delas upp och även bli en del av själva koden. Här är några exempel:
echo "Det här är "fel" i en sträng";
echo 'Det här är "rätt" i en sträng';
echo "Det här är 'rätt' i en sträng";
Läs mer om 'fnuttar' och "dubbelfnuttar" i guiden Formmail - skicka formulär till epost » (avsnittet "GET_MAGIC_QUOTES_GPC").
Det är ofta svårt att hitta felen i koden och några metoder för att upptäcka felen kan vara att:



HTTP Headers innehåller information som skickas med en sida men som inte visas i själva sidan. Headers är meta-information som skickas före all annan HTML-kod och sidinnehållet.
Läs mer om "header" hos PHP.net »
Headers måste skickas före övrigt sidinnehåll och i PHP är ett vanligt förekommande fel att något ändå skickas före header-informationen. Det kan vara blankrader, mellanslag eller vanlig HTML och det felmeddelandet som visas är:
"Warning: Cannot modify header information - headers already sent by..."
Prova någon av åtgärderna nedan för att ta bort den information som skicka före header.
Ta bort alla blanksteg (mellanslag) och blankrader (radbrytningar) i början och slutet av dokumentet. Kolla också noga att inga blanksteg eller tomma rader finns före eller efter öppning och stängning av PHP-avsnitten <?php och ?>
OBS! Även om du själv varit noga kan det vara den editor du öppnar dina sidor med som lägger till extra rader i slutet av dokumentet när det öppnas men inte när det sparas. Kolla hur sidorna ser ut när du öppnat dem i din editor.
Ett vanligt fel är att ditt dokument innehåller osynliga tecken som används av den teckenuppsättning du sparat dokumentet med. De extra tecknen används som styrkod för olika ändamål och i PHP-dokument kan det vara just det som gör att din kod blir felaktig.
Teckenuppsättningen UTF-8 lägger till ett "byte-order-mark", kallas också för BOM, för att ange att koden använder 16-bitar (UTF-16) eller 32-bitar (UTF-32) men BOM fyller inte samma funktion i UTF-8. De webläsare och editorer som inte hanterar UTF-8 korrekt lägger till tecknet "" istället för BOM i början av sidans innehåll vilket innebär att det tecknet skickas före header-informationen.
Läs mer om UTF, Unicode och BOM här:
http://www.unicode.org/unicode/faq/utf_bom.html
http://en.wikipedia.org/wiki/Unicode
http://en.wikipedia.org/wiki/Byte_Order_Mark
Här är ett exempel där "login.php" sparats i Notepad som UTF-8 och ett extra tecken lagts till. I koden syns inte tecknet men det visas i webläsaren:

Exemplet med BOM ovan resulterade inte i att någon extra header skickades då det tolkades som ett vanligt tecken. Men då den här typen av tecken inte syns i din kod så kan de vara orsaken till att en header skickas före din PHP-header.
I vissa editorer kan du välja att spara" UTF-8 utan BOM" men om den möjligheten inte finns bör du undvika UTF-8 och spara som ANSI eller annan teckenuppsättning.
Notepad (Anteckningar) i Windows har detta problem och du kan alltså inte välja att spara som "UTF-8 without BOM". Se därför till att du aldrig sparar (eller öppnar) dokumenten som UTF-8.
FEL!

RÄTT!

Om du använder Dreamweaver kan du välja att spara dokumentet som UTF-8 men utan BOM i dialogrutan "Preferences" (Inställningar) med menyn "Edit/Preferences" eller snabbkommando CTRL+U. I kategorin "New Document" ser du till att valet är gjort enligt nedan (om du vill använda UTF-8):

Inställningen ovan ger teckenuppsättningen:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Vill du inte använda Unicode kan du använda "Västeuropeisk" teckenuppsättning:

Inställningen ovan ger teckenuppsättningen:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
När du använder andra editorer än exemplen ovan måste du kolla upp var du anger att UTF-8 ska sparas (och öppnas) utan BOM. Även om inte uttrycket "BOM" finns i din editor kan tex "autodetect UTF-8 file" ändå innebära att BOM används.
Informationen som hämtas från MySQL kan påverka PHP-koden om BOM (byte-order-mark) hämtas från tabellen. Om du har problem med headers kan du se till att du använder annan teckenuppsättning än UTF-8 i dina tabeller. Läs mer om teckenuppsättningar i guiden MySQL och databaser »
Kolla din teckenuppsättning i Kommandotolken:

Kolla din teckenuppsättning i MySQL Table Editor:
