Page 1 of 1

PHP form - file submission

Posted: Fri Mar 16, 2012 1:48 pm
by after-hours
Hi,
I am a front end web designer but have recently started trying to add features to my websites that require a little PHP. However, I basically have NO knowledge of PHP what so ever. I am currently creating a form where the user has text input options and the ability to upload a file. I want the information to be sent via email to the administrator. So far, I successfully get the 3 input fields to be sent in the email, but I can't work out how to add the uploaded file as an attachment. I also want the code to only accept uploaded files in .doc and .docx format, and less than 200kb in size.
My style of coding is to use the absolute bare minimum, so please no long work-arounds or anything too complicated.

Thanks, below is my code so far:

Heres the PHP

Code: Select all

if(isset($_POST['email'])) {
 
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "name@mydomain.co.uk";
    $email_subject = "Article Submission";

    $email_from = $_POST['email']; // required
    $name = $_POST['name']; // required
    $category = $_POST['category']; // required
    
    $email_message = "Article attached for Little Spoon: \n\n";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string); }

    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Name: ".clean_string($name)."\n";
    $email_message .= "Website category: ".clean_string($category)."\n";
    

    // create email headers
    $headers = 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    @mail($email_to, $email_subject, $email_message, $headers); 

    header( 'Location: article-submission-success.php' ) ;
}
?>
Here's the HTML

Code: Select all

<form method="post" action="submitform.php" enctype="multipart/form-data">
      <table class="submit-form">
        <tr>
          <td>Name:</td>
          <td><input name="name" type="text" tabindex="1" class="submit-form-input"></td>
        </tr>
        <tr>
          <td>Email:</td>
          <td><input name="email" type="text" tabindex="2" class="submit-form-input"></td>
        </tr>
        <tr>
          <td>Category:</td>
          <td>
            <select name="category" tabindex="3" class="submit-form-input">
              <option value="Eating In">Eating In</option>
              <option value="Eating Out">Eating Out</option>
              <option value="Shopping Trolley">Shopping Trolley</option>
              <option value="News">News</option>
            </select>
          </td>
        </tr>
        <tr>
          <td colspan="2"> Select file to upload: <input type="file" name="file"></td>
        </tr>
        <tr>
          <td colspan="2">
            <input type="submit" value="submit" class="button" >
          </td>
        </tr>
      </table>
    </form>

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 2:34 pm
by Celauran

Code: Select all

<?php

$allowed_extensions = array('doc', 'docx');
$file_size_limit    = 200;
$upload_path        = 'files';

function clean_string($string)
{
    $bad = array("content-type", "bcc:", "to:", "cc:", "href");
    return str_replace($bad, "", $string);
}

$errors = array();
// Some rudimentary error checking
if (!empty($_POST))
{
    // As per your 'required' below
    if (empty($_POST['name']))
    {
        $errors[] = "Name cannot be blank.";
    }
    if (empty($_POST['email']))
    {
        $errors[] = "Email address cannot be blank.";
    }
    if (empty($_FILES))
    {
        $errors[] = "You haven't uploaded a file.";
    }
    if (!in_array(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION), $allowed_extensions))
    {
        $errors[] = "Incorrect file format.";
    }
    if (filesize($_FILES['file']['tmp_name']) > $file_size_limit * 1024)
    {
        $errors[] = "File exceeds maximum allowed size.";
    }
}

if (!empty($_POST) && empty($errors))
{
    $attachment = $upload_path . DIRECTORY_SEPARATOR . $_FILES['file']['name'];
    $moved = move_uploaded_file($_FILES['file']['tmp_name'], $attachment);

    if ($moved)
    {
        // EDIT THE 2 LINES BELOW AS REQUIRED
        $email_to       = "someone@somewhere.com";
        $email_subject  = "Article Submission";

        $email_from     = $_POST['email']; // required
        $name           = $_POST['name']; // required
        $category       = $_POST['category']; // required

        $boundary = base64_encode(microtime());

        // create email headers
        $headers = 'From: ' . $email_from . "\r\n" .
                   'Reply-To: ' . $email_from . "\r\n" .
                   'X-Mailer: PHP/' . phpversion() . "\r\n" .
                   'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . "\r\n";

        // Read the attachment
        $handle   = fopen($attachment, 'rb');
        $contents = fread($handle, filesize($attachment));
        $attach   = chunk_split(base64_encode($contents));
        fclose($handle);

        // Create email body
        $email_message  = "--{$boundary}\n";
        $email_message .= "Content-Type: text/plain\n";
        $email_message .= "Content-Transfer-Encoding: 7bit\n";
        $email_message .= "Content-Disposition: inline\n\n";

        $email_message .= "Article attached for Little Spoon: \n\n";
        $email_message .= "Email: " . clean_string($email_from) . "\n";
        $email_message .= "Name: " . clean_string($name) . "\n";
        $email_message .= "Website category: " . clean_string($category) . "\n";

        $email_message .= "--{$boundary}\n";
        $email_message .= "Content-Type: application/msword\n";
        $email_message .= "Content-Transfer-Encoding: base64\n";
        $email_message .= "Content-Disposition: attachment; filename={$_FILES['file']['name']}\n\n";
        $email_message .= "{$attach}\n\n";
        $email_message .= "--{$boundary}--\n";

        @mail($email_to, $email_subject, $email_message, $headers);
        unlink($attachment);

        header('Location: article-submission-success.php');
    }
    else
    {
        // Provide an alternative if something goes wrong
    }
}
?>

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 2:51 pm
by after-hours
Celauran wrote:

Code: Select all

<?php

$allowed_extensions = array('doc', 'docx');
$file_size_limit    = 200;
$upload_path        = 'files';

function clean_string($string)
{
    $bad = array("content-type", "bcc:", "to:", "cc:", "href");
    return str_replace($bad, "", $string);
}

$errors = array();
// Some rudimentary error checking
if (!empty($_POST))
{
    // As per your 'required' below
    if (empty($_POST['name']))
    {
        $errors[] = "Name cannot be blank.";
    }
    if (empty($_POST['email']))
    {
        $errors[] = "Email address cannot be blank.";
    }
    if (empty($_FILES))
    {
        $errors[] = "You haven't uploaded a file.";
    }
    if (!in_array(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION), $allowed_extensions))
    {
        $errors[] = "Incorrect file format.";
    }
    if (filesize($_FILES['file']['tmp_name']) > $file_size_limit * 1024)
    {
        $errors[] = "File exceeds maximum allowed size.";
    }
}

if (!empty($_POST) && empty($errors))
{
    $attachment = $upload_path . DIRECTORY_SEPARATOR . $_FILES['file']['name'];
    $moved = move_uploaded_file($_FILES['file']['tmp_name'], $attachment);

    if ($moved)
    {
        // EDIT THE 2 LINES BELOW AS REQUIRED
        $email_to       = "someone@somewhere.com";
        $email_subject  = "Article Submission";

        $email_from     = $_POST['email']; // required
        $name           = $_POST['name']; // required
        $category       = $_POST['category']; // required

        $boundary = base64_encode(microtime());

        // create email headers
        $headers = 'From: ' . $email_from . "\r\n" .
                   'Reply-To: ' . $email_from . "\r\n" .
                   'X-Mailer: PHP/' . phpversion() . "\r\n" .
                   'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . "\r\n";

        // Read the attachment
        $handle   = fopen($attachment, 'rb');
        $contents = fread($handle, filesize($attachment));
        $attach   = chunk_split(base64_encode($contents));
        fclose($handle);

        // Create email body
        $email_message  = "--{$boundary}\n";
        $email_message .= "Content-Type: text/plain\n";
        $email_message .= "Content-Transfer-Encoding: 7bit\n";
        $email_message .= "Content-Disposition: inline\n\n";

        $email_message .= "Article attached for Little Spoon: \n\n";
        $email_message .= "Email: " . clean_string($email_from) . "\n";
        $email_message .= "Name: " . clean_string($name) . "\n";
        $email_message .= "Website category: " . clean_string($category) . "\n";

        $email_message .= "--{$boundary}\n";
        $email_message .= "Content-Type: application/msword\n";
        $email_message .= "Content-Transfer-Encoding: base64\n";
        $email_message .= "Content-Disposition: attachment; filename={$_FILES['file']['name']}\n\n";
        $email_message .= "{$attach}\n\n";
        $email_message .= "--{$boundary}--\n";

        @mail($email_to, $email_subject, $email_message, $headers);
        unlink($attachment);

        header('Location: article-submission-success.php');
    }
    else
    {
        // Provide an alternative if something goes wrong
    }
}
?>
This looked promising, but unfortunately isn't working for me. When I click 'submit' on the form, the page tries to load the form php code rather than an error screen or the success screen. It doesn't send and simply loads a blank page. Is there something I need to do on the server like create a folder for uploads or something? Cheers.

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 2:54 pm
by Celauran
I tested it before posting; the code definitely works. $upload_path has to exist (relative to your document root) and be writeable. If the directory doesn't exist or isn't writeable, $moved will be FALSE and you'll end up in the empty else {} block at the bottom. You could display an error, redirect to a different page, or anything else you like.

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:00 pm
by after-hours
Celauran wrote:I tested it before posting; the code definitely works. $upload_path has to exist (relative to your document root) and be writeable. If the directory doesn't exist or isn't writeable, $moved will be FALSE and you'll end up in the empty else {} block at the bottom. You could display an error, redirect to a different page, or anything else you like.

Aaah right I'm making progress. I hadn't created the folder "files" in my root directory. I've done that now and made it read/writable etc.
The email is now received with the information, but the file is not included as an attachment. Instead there's a long stream of forward slashes and letters after the main email information.
Am I still doing something wrong?

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:05 pm
by Celauran
Does the email source look something like this?

Code: Select all

Article attached for Little Spoon:

Email: xxx@xxx.xxx
Name: Foo
Website category: Eating In
--MC4xMzQ4NjAwMCAxMzMxOTI4MTk3
Content-Type: application/msword
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=resume.doc

PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IHN0eWxlPSJmb250LWZhbWlseTogVmVyZGFuYTsgZm9u
dC1zaXplOiAxMnB4OyI+PHRhYmxlPjx0cj48dGQ+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBi
b2xkOyI+QWxleGFuZGVyIFVsYW5jaDwvc3Bhbj48YnIgLz4yMjcwIEhhcnJvZHMgUG9pbnRlIFRy
YWNlPGJyIC8+TGV4aW5ndG9uPGJyIC8+S1k8YnIgLz40MDUxNDxiciAvPjMwNC02MzQtOTQ0NTxi
ciAvPmFkdmVudHVyZXNlZWtlcjEwNEB5YWhvby5jb208L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0i
Ym9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAw
OyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyBwYWRkaW5nOiAxMHB4IDA7Ij48cD5JIGFtIGEgc2luY2Vy
ZSwgbG95YWwgYW5kIGRlZGljYXRpb24gaW5kaXZpZHVhbCB3aG8gaGFzIGEgZ3JlYXQgZGVhbCBv
ZiBhbWJpdGlvbi4gQWx0aG91Z2ggSSBoYXZlIGV4cGVyaWVuY2UgaW4gdGhlIGZhc3QtZm9vZCBp
bmR1c3RyeSwgSSBsb3ZlIHRvIGxlYXJuIGFuZCBhbSBhbHdheXMgdXAgdG8gYSBjaGFsbGVuZ2Uu
IEkgZ2V0IGFsb25nIHdlbGwgd2l0aCBvdGhlcnMsIHdoaWxlIGFsc28gd29ya2luZyBlZmZpY2ll
bnRseSBvbiBteSBvd24uIGkgYW0gc2Vla2luZyBhIHBvc2l0aW9uIHdoZXJlIEkgY2FuIGRldmVs
b3AgYW5kIGV4Y2VsIHdoaWxlIGdpdmluZyBteSBiZXN0IHRvIHlvdS48L3A+PC90ZD48L3RyPjx0
cj48dGQ+PGgyPkVtcGxveW1lbnQ8L2gyPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsg
bWFyZ2luLWxlZnQ6IDI1cHg7Ij5DcmV3IE1lbWJlcjwvc3Bhbj48YnIgLz48c3Bhbj4yMDExIC0g
UHJlc2VudDwvc3Bhbj48YnIgLz48c3Bhbj5NY0RvbmFsZHM8L3NwYW4+PGJyIC8+PHNwYW4+Mzc2
NSBQYWxvbWFyIENlbnRyZSBEcml2ZSwgTGV4aW5ndG9uPC9zcGFuPjxwIHN0eWxlPSJtYXJnaW4t
bGVmdDogNDVweDsiPkF0IE1jRG9uYWxkJ3MsIEkgd2FzIHJlc3BvbnNpYmxlIGZvciB0aGUgZnJv
bnQgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgRHJpdmUtdGhyb3VnaC4gV2hlbiBJIGRpZG4ndCBo

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:10 pm
by after-hours
Celauran wrote:Does the email source look something like this?

Code: Select all

Article attached for Little Spoon:

Email: xxx@xxx.xxx
Name: Foo
Website category: Eating In
--MC4xMzQ4NjAwMCAxMzMxOTI4MTk3
Content-Type: application/msword
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=resume.doc

PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IHN0eWxlPSJmb250LWZhbWlseTogVmVyZGFuYTsgZm9u
dC1zaXplOiAxMnB4OyI+PHRhYmxlPjx0cj48dGQ+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBi
b2xkOyI+QWxleGFuZGVyIFVsYW5jaDwvc3Bhbj48YnIgLz4yMjcwIEhhcnJvZHMgUG9pbnRlIFRy
YWNlPGJyIC8+TGV4aW5ndG9uPGJyIC8+S1k8YnIgLz40MDUxNDxiciAvPjMwNC02MzQtOTQ0NTxi
ciAvPmFkdmVudHVyZXNlZWtlcjEwNEB5YWhvby5jb208L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0i
Ym9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAw
OyB0ZXh0LWFsaWduOiBqdXN0aWZ5OyBwYWRkaW5nOiAxMHB4IDA7Ij48cD5JIGFtIGEgc2luY2Vy
ZSwgbG95YWwgYW5kIGRlZGljYXRpb24gaW5kaXZpZHVhbCB3aG8gaGFzIGEgZ3JlYXQgZGVhbCBv
ZiBhbWJpdGlvbi4gQWx0aG91Z2ggSSBoYXZlIGV4cGVyaWVuY2UgaW4gdGhlIGZhc3QtZm9vZCBp
bmR1c3RyeSwgSSBsb3ZlIHRvIGxlYXJuIGFuZCBhbSBhbHdheXMgdXAgdG8gYSBjaGFsbGVuZ2Uu
IEkgZ2V0IGFsb25nIHdlbGwgd2l0aCBvdGhlcnMsIHdoaWxlIGFsc28gd29ya2luZyBlZmZpY2ll
bnRseSBvbiBteSBvd24uIGkgYW0gc2Vla2luZyBhIHBvc2l0aW9uIHdoZXJlIEkgY2FuIGRldmVs
b3AgYW5kIGV4Y2VsIHdoaWxlIGdpdmluZyBteSBiZXN0IHRvIHlvdS48L3A+PC90ZD48L3RyPjx0
cj48dGQ+PGgyPkVtcGxveW1lbnQ8L2gyPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsg
bWFyZ2luLWxlZnQ6IDI1cHg7Ij5DcmV3IE1lbWJlcjwvc3Bhbj48YnIgLz48c3Bhbj4yMDExIC0g
UHJlc2VudDwvc3Bhbj48YnIgLz48c3Bhbj5NY0RvbmFsZHM8L3NwYW4+PGJyIC8+PHNwYW4+Mzc2
NSBQYWxvbWFyIENlbnRyZSBEcml2ZSwgTGV4aW5ndG9uPC9zcGFuPjxwIHN0eWxlPSJtYXJnaW4t
bGVmdDogNDVweDsiPkF0IE1jRG9uYWxkJ3MsIEkgd2FzIHJlc3BvbnNpYmxlIGZvciB0aGUgZnJv
bnQgcmVnaXN0ZXIgYXMgd2VsbCBhcyB0aGUgRHJpdmUtdGhyb3VnaC4gV2hlbiBJIGRpZG4ndCBo

Yeh kind of. Here's the email I get through:

Code: Select all

--MC4wNTU0MTkwMCAxMzMxOTI4NTE2
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Article attached for Little Spoon: 

Email: wwwwhhhy@why.com
Name: testing it
Website category: News
--MC4wNTU0MTkwMCAxMzMxOTI4NTE2
Content-Type: application/msword
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=test.doc

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAGAAAAAEAAAAA
EAAAGwAAAAEAAAD/////AAAAABwAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////s
pcEAcWAJBAAAABLBAAAAAAAAAAAAAAAABAAALgYAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAABYAABAAAAAAAAAAAAAADQAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMAAAAAAFwFAAAAAAAAXAUAAFwF
AAAAAAAAXAUAAAAAAABcBQAAAAAAAFwFAAAAAAAAXAUAABQAAABwBQAAAAAAAHAFAAAAAAAAcAUA
AAAAAABwBQAAAAAAAHAFAAA4AAAAqAUAABQAAAC8BQAADAAAAMgFAAAAAAAA+QUAAKoBAACjBwAA
AAAAAKMHAAAAAAAAowcAAAAAAACjBwAAAAAAAKMHAAAAAAAAowcAAAAAAACjBwAAAAAAAKMHAAAA
AAAAowcAAAAAAACjBwAAAAAAAKMHAAAAAAAAowcAAAAAAACjBwAAAAAAAKMHAAAAAAAAowcAAAAA
AACjBwAAaAIAAAsKAAAAAAAA5AUAABUAAAD5BQAAAAAAAPkFAAAAAAAA+QUAAAAAAAD5BQAAAAAA
APkFAAAAAAAA+QUAAAAAAAD5BQAAAAAAAPkFAAAAAAAA+QUAAAAAAAD5BQAAAAAAAPkFAAAAAAAA
+QUAAAAAAAD5BQAAAAAAAPkFAAAAAAAA+QUAAAAAAAD5BQAAAAAAAPkFAAAAAAAAyAUAABYAAADe
BQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4F
AAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUA
AAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAA
AAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAA
AAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAAAAAAAN4FAAAAAAAA3gUAAAAA
AADeBQAAAAAAAN4FAAAAAAAA3gUAAAAAAADeBQAABgAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAA
AOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAACwoAAAAAAADkBQAAAAAAAOQFAAAAAAAA
5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADk
BQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQF
AAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUA
AAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAA
AAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAA
AAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAA
AADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAA
AOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA
5AUAAAAAAADkBQAAAAAAAOQFAAAAAAAA5AUAAAAAAAACAAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AGUA
cwB0ACAAYQByAHQAaQBjAGwAZQANAA0ADQANAA0ADQANAA0ADQANAA0AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIYCEQAS
AAEAnAAPAAQAAAAAAAAAAAAEAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEA
AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA
AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB
AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEA
AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA
AQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB
AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEA
AAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAA
AQAAAAEAAAABAAAAAQAAAEAAAADx/wIAQAAAAAAAAAAAAAAABgBOAG8AcgBtAGEAbAAAAAIAAAAY
AENKGABzSAkEbUgJBHRICQRfSAEEYUoYAAAAAAAAAAAAAAAAAAAAAAAAAEQAQQDy/6EARAAAAQAA
AAAAAAAAFgBEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0AAAAAABk
AGkA8/+zAGQAAAEAAAAAAAAAAAwAVABhAGIAbABlACAATgBvAHIAbQBhAGwAAAAuAGH2AwAAF/YD
AAA01gYAAQEDAAA01gYAAQIDbAA01gYAAQQDAAA01gYAAQgDbAACAAsAAAAoAGsA9P/BACgAAAEA
AAAAAAAAAAcATgBvACAATABpAHMAdAAAAAIAAAAAAAAA4AD+D/H/8gDgAAAAAAAAAAAAAAAPAEgA
ZQBhAGQAZQByACAAJgAgAEYAbwBvAHQAZQByAAAATQAPAAUkAAYkAAckABOkAAAUpAApAAkwAgow
AB0wASOQbgQkkG4EF7DFAhiwUgMfsHwuILDIQSGwbgQisG4EAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAYBgAA
GgYAABwGAAAeBgAAIAYAACIGAAD/unX/MP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIg1CAA2CAA4CAA6CAA7CAA8CAA3CAA5CABY
CABUCABTKgBDShQAT0oAAFBKAABRSgAAQIgAAHBoAAAA/1JIZABzSAAEbUgABHRIAARfSAAASCoA
PioAS0gAAEVIAAB3aAAAAP8MKgBlaAAAAAByyggAAAD/AAAAAGZIAABxygoAAAD/AAAA/wAAAIg1
CAA2CAA4CAA6CAA7CAA8CAA3CAA5CABYCABUCABTKgBDShQAT0oAAFBKAABRSgAAQIgAAHBoAAAA
/1JIZABzSAAEbUgABHRIAARfSAAASCoAPioAS0gAAEVIAAB3aAAAAP8MKgBlaAAAAAByyggAAAD/
AAAAAGZIAABxygoAAAD/AAAA/wAAAIg1CAA2CAA4CAA6CAA7CAA8CAA3CAA5CABYCABUCABTKgBD
ShQAT0oAAFBKAABRSgAAQIgAAHBoAAAA/1JIZABzSAAEbUgABHRIAARfSAAASCoAPioAS0gAAEVI
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
FJABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASABlAGwAdgBlAHQAaQBjAGEA
AAAAAEgAZQBsAHYAZQB0AGkAYwBhAAAAYRSQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAANIw6TCuMM4w0om0MCAAUAByAG8AIABXADMAAAAAANIw6TCuMM4w0om0MCAAUAByAG8A
IABXADMAAAAjAAQAAAiIEAAA0AIAAGgBAAAAAGKEA6dihAOnAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAABAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AiMRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAEoAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSAG8AbwB0ACAARQBuAHQAcgB5AAAA1pMA
AAAAAABQlJz/1ZOwlAAAAAACZgJtAACzxgAAeMsAAAAAUAAAAAAQFgAFAP//////////AQAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAIA+1d6xnQEA4w0GmwPNARkAAABAAQAAAAAAADEAVABhAGIAbABl
AAAAfcsAAH3LcmRTQ///////////9QEUAAAAwEEDAAAAAAAAAP//////////AACtPhAAQIAOAAIB
AwAAAAIAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAA4w0GmwPNAQDjDQabA80BBAAAAAAQAAAA
AAAAVwBvAHIAZABEAG8AYwB1AG0AZQBuAHQAAAAgHCAuID8gSCBVIFsgYSBvII4gpyCuILUhBSEJ
IRchHSEiISchMhoAAgAGAAAABAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAADjDQabA80BAOMN
BpsDzQEAAAAAABAAAAAAAABEAGEAdABhAAAAAMUA0ADbAO8BAQEIAQ4BEwEgASQBLgEzATgBPAFB
AUUBSgFSAVYBXgFiAXoBfwGGAYsBjwGaCgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAA
AAAAAOMNBpsDzQEA4w0GmwPNARAAAAAAEAAAAAAAAP7/AAAFAAIAAAAAAAAAAAAAAAAAAAAAAAIA
AAAC1c3VnC4bEJOXCAArLPmuRAAAAAXVzdWcLhsQk5cIACss+a58AAAAOAAAAAMAAAABAAAAIAAA
ABAAAAAoAAAACwAAADAAAAACAAAAAAAAAAsAAAAAAAAACwAAAAAAAAAUAAAAAQAAAAAAAAAQAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/AAAF
AAIAAAAAAAAAAAAAAAAAAAAAAAEAAADghZ/y+U9oEKuRCAArJ7PZMAAAABgAAAABAAAAAQAAABAA
AAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQBTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBt
AGEAdABpAG8AbgAAAAAAAAAAAAAAayoAAAAAAACQnZz/1ZOAligAAgD/////BQAAAP////8AAAAA
AAAAAAAAAAAAAAAAAAAAAADjDQabA80BAOMNBpsDzQEDAAAASAAAAAAAAAAFAEQAbwBjAHUAbQBl
AG4AdABTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAAAAA9QEUAAAAOAACAP//
/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAOMNBpsDzQEA4w0GmwPNAQAAAACQAAAAAAAA
AE8AYgBqAGUAYwB0AFAAbwBvAGwAAAD///UBFAAAAMBBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAWAAEA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA4w0GmwPNAQDjDQab
A80B/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAA
AACAPtXesZ0BAIA+1d6xnQH/////AAAAAAAAAAABAAAAAgAAAP7///8EAAAA/v//////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////wEAAAACAAAAAwAAAAYAAAAFAAAACgAAAAcAAAAI
AAAACQAAAP7///8LAAAADAAAAA0AAAAOAAAADwAAAP7///8RAAAAEgAAABMAAAAUAAAAFQAAABYA
AAAXAAAA/v///xoAAAD+/////v////7////9////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////


--MC4wNTU0MTkwMCAxMzMxOTI4NTE2--

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:11 pm
by Celauran
I've now tested on my test machine and my live server, sending to different addresses, opening with different email clients, and I cannot duplicate your problem.

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:13 pm
by Celauran
after-hours wrote:Yeh kind of. Here's the email I get through:
Looks like something is going on with the encoding. I'd start by checking the output of fread() and work from there.

Re: PHP form - file submission

Posted: Fri Mar 16, 2012 3:15 pm
by after-hours
Celauran wrote:
after-hours wrote:Yeh kind of. Here's the email I get through:
Looks like something is going on with the encoding. I'd start by checking the output of fread() and work from there.
Oh wait, I just tried this but sending to a hotmail email address instead and it worked fine. Guess it was something to do with the choice of email account. How random! Thanks very much for your help, you're an absolute legend, couldn't of done this without you.