What potential pitfalls should be considered when using file paths in PHP scripts, especially in relation to user input?

When using file paths in PHP scripts, especially in relation to user input, it's important to sanitize and validate the input to prevent directory traversal attacks and other security vulnerabilities. Always validate user input before using it in file paths to ensure that it only contains allowed characters and does not allow access to sensitive files on the server.

// Sanitize and validate user input for file paths
$user_input = $_POST['file_path']; // Assuming this is user input

// Check if the input contains only allowed characters (e.g. alphanumeric, underscore, hyphen)
if (preg_match('/^[a-zA-Z0-9_-]+$/', $user_input)) {
    $file_path = 'uploads/' . $user_input; // Assuming uploads is the directory where files are stored
    // Use $file_path in your script
} else {
    // Handle invalid input error
    echo 'Invalid file path';
}