Hello all, I am very new to PHP and have cobbled together some script from various internet sources to get a form working. I have run into an issue that I can't solve. The form I created allows the user to submit their data in fields, plus an image attachment (validation: .EPS or .JPG format).
The script works fine in Firefox and Safari, but not in Internet Explorer. In IE, whether or not you attach an image of the correct type, it returns the error for incorrect file type. So for some reason it seems IE is not validating the file type as the PHP is asking it to do.
THANKS IN ADVANCE FOR ANY HELP OR SUGGESTIONS!
HTML FORM
<form name="cscrequestform" action="submit.php" enctype="multipart/form-data" method="post">
<p>name</p>
<input type="text" name="user_name" id="user_name" style="width:540px" maxlength="100" />
<p>phone</p>
<input type="text" style="width:240px" maxlength="30" name="user_phone" id="user_phone" />
<p>email</p>
<input type="text" style="width:230px" maxlength="100" name="user_email" id="user_email" />
<p>Attach Prospect/Client Company Logo (EPS file format preferred, JPG also acceptable):</p>
<input type="file" name="prosp_client_logo" id="prosp_client_logo" size="40" />
<input name="Submit" type="submit" id="Submit" value="Submit Request" onClick="return validate();">
<input type="button" value="Reset Form" onClick="this.form.reset()" />
PHP (submit.php):
<?php
$user_name = $_REQUEST["user_name"] ;
$from = $_REQUEST['user_email'] ;
// File Data
$filename=$_FILES["prosp_client_logo"]["name"];
$filetype=$_FILES["prosp_client_logo"]["type"];
$filesize=$_FILES["prosp_client_logo"]["size"]/1024;
$filetemp=$_FILES["prosp_client_logo"]["tmp_name"]
// CONNECT TO DB + NEW ENTRY
mysql_connect ("localhost", "xxxxx", "xxxxx") or die (mysql_error());
mysql_select_db ("xxxxx") or die (mysql_error());
$newentry="INSERT INTO TestTable (id, user_name, user_email, prosp_client_logo) VALUES ('NULL','$user_name', '$user_email', '$filename')";
mysql_query($newentry) or die ('Error updating database');
// SUBMIT EMAIL BUILD
$to="brianchicago76@yahoo.com";
$subject = "SUBMISSION FROM: ".$user_name.".";
$requestid = mysql_insert_id();
$message= '
<h1>Submission</h1>
<p>Request Number '.$requestid.'</p>
<p>Name '.$user_name.'</p>
<p>Email '.$user_email.'</p>
';
// REQUIRED FIELD VALIDATION
if($user_email == '') {
mysql_query("UPDATE TestTable SET error = 'no email' WHERE id = '$requestid'");
{echo 'ERROR: EMAIL ADDRESS not entered. Please go back and enter YOUR EMAIL ADDRESS.';}
}
else {
if($user_name == '') {
mysql_query("UPDATE TestTable SET error = 'no name' WHERE id = '$requestid'");
{echo 'ERROR: NAME not entered. Please go back and enter YOUR NAME.';}
}
else {
// ATTACHMENT VALIDATION
// No Attachment
if($filetype=="") {
$headers = "From: $user_name<$from>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "Message-ID: <".$now." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
$send = mail($to, $subject, $message, $headers);
// No Attachment SEND VALIDATION
if($send)
{mysql_query("UPDATE TestTable SET error = 'none' WHERE id = '$requestid'");
echo 'MAIL SENT.';}
else
{mysql_query("UPDATE TestTable SET error = 'send error' WHERE id = '$requestid'");
echo 'ERROR: We encountered an error sending your mail. Please go back and try again.';}
}
// With Attachment
elseif($filetype=="application/postscript" or $filetype=="image/jpg" or $filetype=="image/jpeg") {
$max_file_size = 1000;
if($filesize > $max_file_size)
{mysql_query("UPDATE TestTable SET error = 'file too big' WHERE id = '$requestid'");
echo 'ERROR: ATTACHMENT must be less than 1MB. Reduce file size and resend.';}
else{
$fp = fopen($prosp_client_logo, "rb");
$file = fread($fp, $prosp_client_logo_size);
$file = chunk_split(base64_encode($file));
$num = md5(time());
$headers = "From: $user_name<$from>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=".$num."\r\n";
$headers .= "--$num\r\n";
$headers .= "Message-ID: <".$now." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
// Message Header Boundary
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "".$message."\n";
$headers .= "--".$num."\n";
// Attachment Header Boundary
$headers .= "Content-Type:".$prosp_client_logo_type." ";
$headers .= "name=\"".$prosp_client_logo_name."\"r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; ";
$headers .= "filename=\"".$prosp_client_logo_name."\"\r\n\n";
$headers .= "".$file."\r\n";
$headers .= "--".$num."--";
$send = mail($to, $subject, $message, $headers);
fclose($fp);
// Attachment SEND VALIDATION
if($send)
{mysql_query("UPDATE TestTable SET error = 'none' WHERE id = '$requestid'");
echo 'MAIL SENT.';}
else
{mysql_query("UPDATE TestTable SET error = 'send error' WHERE id = '$requestid'");
echo 'ERROR: We encountered an error sending your mail. Please go back and try again.';}
}
}
else
{mysql_query("UPDATE TestTable SET error = 'wrong file type' WHERE id = '$requestid'");
echo 'ERROR: ATTACHMENT is wrong file type. Select an EPS or JPG file and resend.';}
}
}
?>
Please let me know if you need any clarification.
Brian