PHP Debug Template
Kategori
debug
Status
Guld
Bruges til
Denne prompt bruges når TuxCore skal fejlfinde PHP/MySQL-projekter, især på Simply.com eller andre klassiske webhoteller.
Den er god til:
- Blank side
- PHP fatal errors
- Include/require path fejl
- Databaseforbindelse fejler
- PDO-fejl
- Login/session problemer
- Headers already sent
- PHPMailer fejl
- Upload-fejl
.htaccessproblemer- 500 Internal Server Error
Prompt
$php $debug
Jeg har et PHP-problem.
## Problem
[Beskriv hvad der ikke virker]
## Fejlbesked
Indsæt fejl her:
[indsæt fejl/log]
## Filstruktur
[indsæt relevant filstruktur]
## Relevant kode
[indsæt relevant PHP-kode]
## Hosting/miljø
- Hosting: [Simply.com / Apache / Nginx / lokal / Docker]
- PHP-version: [hvis kendt]
- Database: [MySQL/MariaDB/SQLite/ingen]
- Mail: [PHPMailer / SMTP / ingen]
## Det jeg vil have
Svar med:
1. Hvad fejlen betyder.
2. Mest sandsynlige årsag.
3. Hvilke filer/linjer der sandsynligvis er problemet.
4. Konkrete testtrin.
5. Præcis rettelse.
6. Kode der kan copy/pastes.
7. Hvad jeg skal teste bagefter.
Regler:
- Brug dansk forklaring.
- Gør svaret copy/paste-klar.
- Brug PDO/prepared statements ved databasekode.
- Gentag ikke passwords, tokens eller secrets.
- Undgå frameworks medmindre projektet allerede bruger det.
- Antag Simply.com-venlig PHP når intet andet er nævnt.
Eksempel på brug
$php $debug
Jeg får blank side efter login.
Her er login.php, includes/db.php og fejl fra error_log.
Forventet output
Et godt svar bør indeholde:
- Kort og præcis forklaring
- Sandsynlig root cause
- Konkrete linjer/filer der skal rettes
- Minimal ændring først
- Testkode eller debug-linje hvis nødvendigt
- Sikkerhedsnoter hvis input, login eller database er involveret
Standard debug-trin
Aktivér midlertidigt fejlvisning i toppen af en testfil:
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
Tjek PHP syntax:
php -l index.php
php -l includes/db.php
Tjek filer:
ls -la
find . -maxdepth 3 -type f | sort
Tjek logs hvis adgang findes:
tail -n 100 error_log
Typiske fejl
Blank side
Mulige årsager:
- Fatal PHP error
- Forkert include path
- Manglende
vendor/autoload.php - Databaseforbindelse fejler
- Fejlvisning er slået fra
Fix:
- Slå midlertidigt fejlvisning til.
- Tjek
error_log. - Tjek alle
require_oncestier. - Kør
php -lpå relevante filer.
Headers already sent
Mulige årsager:
- Output før
header() - Mellemrum før
<?php - BOM i filen
- Debug echo før redirect
- Afsluttende
?>med whitespace efter
Fix:
- Fjern output før redirects.
- Fjern afsluttende
?>i rene PHP-filer. - Flyt
session_start()og redirects øverst.
Database connection failed
Mulige årsager:
- Forkert host
- Forkert database/user/password
- Forkert charset
- Manglende databasebrugerrettigheder
- Config-fil læses ikke korrekt
Fix:
- Lav minimal PDO-testfil.
- Tjek at config-filen faktisk indlæses.
- Vis aldrig password i browseren.
Undefined variable / array key
Mulige årsager:
- Variabel er ikke sat
$_POST/$_GETnøgle mangler- Databasefelt findes ikke
- Forkert kolonnenavn
Fix:
- Brug null coalescing:
$value = $_POST['field'] ?? '';
- Tjek databasekolonner.
- Valider input før brug.
Session virker ikke
Mulige årsager:
session_start()mangler- Output før session start
- Cookie-problem
- Redirect sker før session gemmes
- Forkert path/domæne
Fix:
- Start session tidligt.
- Brug
session_regenerate_id(true)efter login. - Tjek at
$_SESSIONsættes korrekt.
Include path fejl
Mulige årsager:
- Fil ligger ikke hvor koden tror
- Relativ sti er forkert
- Projektet ligger i undermappe
__DIR__bruges ikke
Fix:
Brug altid __DIR__:
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/../mail_config.php';
Sikkerhedsregler
- Gentag aldrig passwords/secrets fra brugerinput.
- Brug prepared statements.
- Escape output med
htmlspecialchars. - Brug CSRF på forms der ændrer data.
- Hash passwords med
password_hash. - Vis ikke tekniske fejl til slutbrugere i produktion.
- Log tekniske fejl server-side.
Tags
php, debug, simply, mysql, pdo, sessions, headers, blank-side, tuxcore