I looked through your scripts and found the attachment section:
$message .= "Content-Type: application/octet-stream;\r\n";
$message .= " name=\"{$_POST["attach"]}\"\r\n";
$message .= "Content-Transfer-Encoding: quoted-printable\r\n";
$message .= "Content-Disposition: attachment;\r\n";
$message .= " filename=\"{$_POST["attach"]}\"\r\n";
$message .= "\r\n";
$message .= $fileContent;
$message .= "\r\n";
The dynamic variable $fileContent is loaded into the attachment, but I can find no other reference to $fileContent defining the value of this variable. I'd guess that's why you are getting a blank attachment. Try:
$message .= "\r\n";
$message .= "This is a test file attachment."; //this is where it would have $fileContent.
$message .= "\r\n";
If this gives you an attachment with content then you know the problem is with the $fileContent variable.
Hope that helps.