prepare('UPDATE users SET avatar = NULL WHERE username = ?')->execute([$username]); redirect_ok($back, 'avatar_saved'); } $up = handle_upload($_FILES['avatar'] ?? [], [ 'allowed' => UPLOAD_TYPES_IMAGES, 'dir' => $dir, 'naming' => 'plain', 'max_bytes' => 3 * 1024 * 1024, 'messages' => [ 'missing' => 'Bitte ein Bild auswählen.', 'upload' => 'Fehler beim Hochladen des Bildes.', 'ext' => 'Nur Bilder erlaubt (JPG, PNG, GIF, WebP).', 'mime' => 'Nur Bilder erlaubt (JPG, PNG, GIF, WebP).', 'size' => 'Bild ist zu groß (max. 3 MB).', 'move' => 'Fehler beim Speichern des Bildes.', ], ]); if (!$up['ok']) { redirect_error($back, $up['error']); } $safe_name = $up['filename']; // Delete old avatar after successful upload if (!empty($user['avatar'])) { $old = $dir . basename($user['avatar']); if (is_file($old)) { unlink($old); } } db()->prepare('UPDATE users SET avatar = ? WHERE username = ?')->execute([$safe_name, $username]); redirect_ok($back, 'avatar_saved');