Jump to content

Recommended Posts

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

Link to comment
https://forums.phpfreaks.com/topic/111758-php-check-empty-string/
Share on other sites

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';
            }
}
?>

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.