@extends('admin.layout') @section('title', 'HTTP-fout detail') @section('content')
← Serverfouten
@php $statusColor = match(true) { $log->status >= 503 => 'bg-yellow-100 text-yellow-700', $log->status >= 500 => 'bg-red-100 text-red-700', $log->status >= 429 => 'bg-orange-100 text-orange-700', $log->status >= 404 => 'bg-gray-100 text-gray-600', $log->status >= 400 => 'bg-amber-100 text-amber-700', default => 'bg-gray-100 text-gray-500', }; $explanations = [ 400 => ['titel' => 'Ongeldig verzoek', 'uitleg' => 'De server kon het verzoek niet verwerken omdat de invoer onjuist of onvolledig was. Waarschijnlijk een validatiefout of een misvormde request.'], 401 => ['titel' => 'Niet geauthenticeerd', 'uitleg' => 'De gebruiker is niet ingelogd of de sessie is verlopen. De server vereist een geldige login voor dit verzoek.'], 403 => ['titel' => 'Toegang geweigerd', 'uitleg' => 'De gebruiker is ingelogd maar heeft geen rechten voor deze actie. Controleer de autorisatieregels (Policy / Gate).'], 404 => ['titel' => 'Pagina niet gevonden', 'uitleg' => 'De gevraagde URL bestaat niet of het bijbehorende record is verwijderd. Kan ook duiden op een verkeerde link of een verwijderd object.'], 405 => ['titel' => 'Methode niet toegestaan', 'uitleg' => 'De HTTP-methode (GET, POST, …) is niet toegestaan op dit eindpunt. Vaak een fout in een formulier of API-aanroep.'], 408 => ['titel' => 'Verzoek verlopen', 'uitleg' => 'De server heeft te lang gewacht op de client. Kan duiden op een trage verbinding of een hangende upload.'], 419 => ['titel' => 'CSRF-token verlopen', 'uitleg' => 'Het beveiligingstoken in het formulier is verlopen (sessie te lang inactief of pagina te lang open). Gebruiker moest de pagina vernieuwen.'], 422 => ['titel' => 'Niet-verwerkbare invoer', 'uitleg' => 'De invoer is syntactisch correct maar semantisch ongeldig — typisch een mislukte validatie. De exacte validatiefouten staan hieronder als die beschikbaar zijn.'], 429 => ['titel' => 'Te veel verzoeken', 'uitleg' => 'De rate limiter heeft dit IP of deze gebruiker geblokkeerd wegens te veel aanvragen in korte tijd. Controleer of dit legitiem gebruik is of een aanval.'], 500 => ['titel' => 'Interne serverfout', 'uitleg' => 'Er is een onverwachte fout opgetreden in de applicatie. Controleer de App-fouten tab voor de bijbehorende exception en stack trace.'], 502 => ['titel' => 'Slechte gateway', 'uitleg' => 'Een tussenliggende server (proxy, load balancer) ontving een ongeldige respons. Vaak een tijdelijk probleem bij herstarts of overbelasting.'], 503 => ['titel' => 'Service niet beschikbaar', 'uitleg' => 'De server is tijdelijk niet beschikbaar — onderhoudsmodus, overbelasting of een gecrasht proces. Controleer of de applicatie nog draait.'], 504 => ['titel' => 'Gateway timeout', 'uitleg' => 'Een achterliggende dienst (database, externe API) reageerde te traag. Controleer de databaseverbinding of trage queries.'], ]; $explanation = $explanations[$log->status] ?? [ 'titel' => 'HTTP ' . $log->status, 'uitleg' => $log->status >= 500 ? 'Serverfout — de applicatie kon het verzoek niet voltooien door een interne fout.' : 'Clientfout — het verzoek kon niet worden verwerkt door een probleem aan de kant van de browser of gebruiker.', ]; @endphp {{-- Uitleg --}}
{{ $log->status }} — {{ $explanation['titel'] }}
{{ $explanation['uitleg'] }}
{{-- Linkerkolom: request-info --}}
{{ $log->status }} {{ $log->method }}
Pad
{{ $log->path }}
Datum/tijd
{{ $log->created_at->format('d/m/Y H:i:s') }}
{{ $log->created_at->diffForHumans() }}
Responstijd
{{ $log->duration_ms }} ms
{{-- Rechterkolom: client & gebruiker --}}
IP-adres
{{ $log->ip ?? '—' }}
Gebruiker
@if($user) {{ $user->name }}
{{ $user->email }} · ID {{ $log->user_id }}
@elseif($log->user_id) ID {{ $log->user_id }} (account verwijderd) @else Niet ingelogd @endif
@if($log->threat)
Dreigingstype
{{ $log->threat }}
@endif
Geblokkeerd
@if($log->blocked) Ja — voor controller afgevangen @else Nee @endif
{{-- Validatiefouten / exception --}} @if($log->exception)
{{ $log->status === 422 ? 'Validatiefouten' : 'Exception' }}
@if($log->status === 422) @php $errors = json_decode($log->exception, true); @endphp @if(is_array($errors)) @foreach($errors as $field => $messages) @endforeach
Veld Fout
{{ $field }} @foreach((array) $messages as $msg)
{{ $msg }}
@endforeach
@else
{{ $log->exception }}
@endif @else
{{ $log->exception }}
@endif
@endif
@endsection