Are there any potential pitfalls to be aware of when offering downloads in PHP?

One potential pitfall when offering downloads in PHP is not properly sanitizing user input, which can lead to security vulnerabilities such as directory traversal attacks. To avoid this, always validate and sanitize user input before using it to generate file paths.

$filename = isset($_GET['filename']) ? $_GET['filename'] : '';
$filename = basename($filename); // sanitize user input

// Rest of the code for downloading the file