plodos Posted June 25, 2008 Share Posted June 25, 2008 I have a form like that ( email form with attachment) <?php $name = $_POST[name]; $surname = $_POST[surname]; $email = $_POST[email]; $msg_title = "alert"; $to="alert@xxx.com"; $message= ' <table width="522" height="235" border="1"> <tr> <td>Name Surname </td> <td>'.$name.' '.$surname.'</td> </tr> </table>'; // Obtain file upload variables $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $headers = "From: $email \n"; //upload file type $FILE_EXTS = array('.txt'); $file_name = $_FILES['fileatt']['name']; $file_ext = strtolower(substr($file_name,strrpos($file_name,"."))); if (!in_array($file_ext, $FILE_EXTS)){ include 'problem.html'; exit(); } // if($_FILES['fileatt']['size'] > 0) if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "MIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the message $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; }else echo "File error! "; if(mail($to,$msg_title,$message,$headers)) { include'ok.html'; } else { include 'problem.html'; } //} ?> I need to control if <input name="fileatt" type="file" id="fileatt" size="60"> "fileatt" is posted empty or not... if "fileatt" is empty or null send email without upload... but if fileatt has some value send it with attachment... I dont know how many if else combination I tested....like $a = $_POST[fileatt]; if($a=="" | $a==NULL) send email without attachment else send with attachment I want to do this...Pls help :s Quote Link to comment https://forums.phpfreaks.com/topic/111758-php-check-empty-string/ Share on other sites More sharing options...
bluejay002 Posted June 25, 2008 Share Posted June 25, 2008 firstly, you can check whether there are sent information using isset(). secondly, you can check if a variable is empty using empty() but is best when used in conjunction with trim() to remove unnecessary whitespaces. cheers, Jay Quote Link to comment https://forums.phpfreaks.com/topic/111758-php-check-empty-string/#findComment-573714 Share on other sites More sharing options...
plodos Posted June 25, 2008 Author Share Posted June 25, 2008 of course I used trim and empty...but problem is, I didnt write the code maybe conditions has problem .. this is another one... original script is working..but when I want to seperate..its not working :s who can help me for the coding part... <?php $name = $_POST[name]; $surname = $_POST[surname]; $email = $_POST[email]; $msg_title = "alert"; $to="alert@xxx.com"; $file = $_POST[fileatt]; $check = trim($file); if (empty($check)) { just send email........ mail(); } else { $message= ' <table width="522" height="235" border="1"> <tr> <td>Name Surname </td> <td>'.$name.' '.$surname.'</td> </tr> </table>'; // Obtain file upload variables $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; $headers = "From: $email \n"; //upload file type $FILE_EXTS = array('.txt'); $file_name = $_FILES['fileatt']['name']; $file_ext = strtolower(substr($file_name,strrpos($file_name,"."))); if (!in_array($file_ext, $FILE_EXTS)){ include 'problem.html'; exit(); } // if($_FILES['fileatt']['size'] > 0) if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "MIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the message $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; }else echo "File error! "; if(mail($to,$msg_title,$message,$headers)) { include'ok.html'; } else { include 'problem.html'; } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/111758-php-check-empty-string/#findComment-573718 Share on other sites More sharing options...
cngodles Posted June 25, 2008 Share Posted June 25, 2008 I've always used something like: if($_POST['do'] != ''){ //do whatever... } Quote Link to comment https://forums.phpfreaks.com/topic/111758-php-check-empty-string/#findComment-573746 Share on other sites More sharing options...
sasa Posted June 25, 2008 Share Posted June 25, 2008 change if (empty($check)) to if ($_FILES[''fileatt]['error'] > 0) Quote Link to comment https://forums.phpfreaks.com/topic/111758-php-check-empty-string/#findComment-574090 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.