New to PHP Need Help

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
twinter3
Forum Newbie
Posts: 2
Joined: Sun Apr 25, 2010 8:07 pm

New to PHP Need Help

Post by twinter3 »

I am working on this project that requires long emails to be sent through a form. The email coming through had ! points and line breaks in weird places. I found some code to correct that...it encodes the message, I am not sure how to decode it. my code is:

Code: Select all

<?php
$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];
$base64contents = rtrim(chunk_split(base64_encode($contact_message)));
if( $contact_name == true )
{
$sender = $contact_email;
$receiver = "orders@retroletters.com";
$receiver2 = "twinter3@gmail.com";

$client_ip = $_SERVER['REMOTE_ADDR'];

$email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $base64contents\n IP: $client_ip \nFlash Contact Form provided by http://www.flashmo.com";
$email_body_auto_reply = "Hello $contact_name, \nThis is the auto reply message. Thank you. \nAdmin – http://www.flashmo.com \n$base64contents";

$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" .  "X-Mailer: PHP/" . phpversion();
$extra_auto_reply = "From: $receiver\r\n" . "Reply-To: $receiver \r\n" . "X-Mailer: PHP/" . phpversion();


mail( $sender, "Your order at retroletters.com $subject", $email_body_auto_reply, $extra_auto_reply . "Content-Transfer-Encoding: base64\n\n");	// auto reply mail to sender
if( mail( $receiver, "Order from retroletters.com $contact_subject", $email_body, $extra))
if( mail( $receiver2, "Order from retroletters.com $contact_subject", $email_body, $extra))
{
echo "success=yes";
}
else
{
echo "success=no";
}
}
?>
and the email that comes through looks like this:

Hello good night,
This is the auto reply message. Thank you.
Admin – http://www.flashmo.com
UHJvc3BlY3RpdmUgRW1wbG95ZXI6DQ1JIGhhdmUga25vd24gVHJhY3kgR3JhZHVhdGUgdGhyb3Vn
aCBoZXIgd29yayBleHBlcmllbmNlIHdpdGggb3VyIGZpcm0gZHVyaW5nIHRoZSBwYXN0IHN1bW1l
ciwgd2hlbiBzaGUgc2VydmVkIGFzIGFuIEF1ZGl0b3IgSW50ZXJuIGluIG91ciBOZXcgWW9yayBv
ZmZpY2UuDQ1UcmFjeSBiZWNhbWUgaW1tZWRpYXRlbHkgaW52b2x2ZWQgaW4gdGhlIGFubnVhbCBh
dWRpdCBvZiBaZXBoeXIgTWVnYWxpdGhpYywgY29uZHVjdGluZyBtdWNoIG9mIHRoZSBhY2NvdW50
aW5nIHJlc2VhcmNoIHJlcXVpcmVkIGZvciB0aGUgYXVkaXQuIEluIGFkZGl0aW9uIHRvIGdhdGhl
cmluZyB0aGUgZmluYW5jaWFsIGluZm9ybWF0aW9uLCBUcmFjeSB3YXMgaW5zdHJ1bWVudGFsIGlu
IHRoZSBkZXZlbG9wbWVudCBvZiB0aGUgZmluYWwgY2VydGlmaWNhdGlvbiByZXBvcnQuIFRyYWN5
IGFsc28gcGFydGljaXBhdGVkIGluIHNldmVyYWwgb3RoZXIgc21hbGxlciBhdWRpdHMsIGluY2x1
ZGluZyBoZXIgaW5zdHJ1bWVudGFsIHJvbGUgaW4gdGhlIHF1YXJ0ZXJseSBhdWRpdCBvZiBBbHBo
YSBCYW5rLCB3aGVyZSBzaGUgZGV2ZWxvcGVkIHNldmVyYWwgRXhjZWwgbWFjcm9zIHRvIGF1ZGl0
IHRoZSBpbnB1dHMuIFNoZSBsYXRlciBmdXJ0aGVyIGRldmVsb3BlZCB0aGVzZSBtYWNyb3MgZm9y
IHVzZSBpbiBmdXR1cmUgYXVkaXRzLCB3aGljaCB3ZSBoYXZlIGludGVncmF0ZWQgaW50byBvdXIg
QXVkaXRvcnMgVG9vbGtpdC4gVHJhY3kgYmVjYW1lIGltbWVkaWF0ZWx5IGludm9sdmVkIGluIHRo
ZSBhbm51YWwgYXVkaXQgb2YgWmVwaHlyIE1lZ2FsaXRoaWMsIGNvbmR1Y3RpbmcgbXVjaCBvZiB0
aGUgYWNjb3VudGluZyByZXNlYXJjaCByZXF1aXJlZCBmb3IgdGhlIGF1ZGl0LiBJbiBhZGRpdGlv
biB0byBnYXRoZXJpbmcgdGhlIGZpbmFuY2lhbCBpbmZvcm1hdGlvbiwgVHJhY3kgd2FzIGluc3Ry
dW1lbnRhbCBpbiB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIGZpbmFsIGNlcnRpZmljYXRpb24gcmVw
b3J0LiBUcmFjeSBhbHNvIHBhcnRpY2lwYXRlZCBpbiBzZXZlcmFsIG90aGVyIHNtYWxsZXIgYXVk
aXRzLCBpbmNsdWRpbmcgaGVyIGluc3RydW1lbnRhbCByb2xlIGluIHRoZSBxdWFydGVybHkgYXVk
aXQgb2YgQWxwaGEgQmFuaywgd2hlcmUgc2hlIGRldmVsb3BlZCBzZXZlcmFsIEV4Y2VsIG1hY3Jv
cyB0byBhdWRpdCB0aGUgaW5wdXRzLiBTaGUgbGF0ZXIgZnVydGhlciBkZXZlbG9wZWQgdGhlc2Ug
bWFjcm9zIGZvciB1c2UgaW4gZnV0dXJlIGF1ZGl0cywgd2hpY2ggd2UgaGF2ZSBpbnRlZ3JhdGVk
IGludG8gb3VyIEF1ZGl0b3JzIFRvb2xraXQuIFRyYWN5IGJlY2FtZSBpbW1lZGlhdGVseSBpbnZv
bHZlZCBpbiB0aGUgYW5udWFsIGF1ZGl0IG9mIFplcGh5ciBNZWdhbGl0aGljLCBjb25kdWN0aW5n
IG11Y2ggb2YgdGhlIGFjY291bnRpbmcgcmVzZWFyY2ggcmVxdWlyZWQgZm9yIHRoZSBhdWRpdC4g
SW4gYWRkaXRpb24gdG8gZ2F0aGVyaW5nIHRoZSBmaW5hbmNpYWwgaW5mb3JtYXRpb24sIFRyYWN5
IHdhcyBpbnN0cnVtZW50YWwgaW4gdGhlIGRldmVsb3BtZW50IG9mIHRoZSBmaW5hbCBjZXJ0aWZp
Y2F0aW9uIHJlcG9ydC4gVHJhY3kgYWxzbyBwYXJ0aWNpcGF0ZWQgaW4gc2V2ZXJhbCBvdGhlciBz
bWFsbGVyIGF1ZGl0cywgaW5jbHVkaW5nIGhlciBpbnN0cnVtZW50YWwgcm9sZSBpbiB0aGUgcXVh
cnRlcmx5IGF1ZGl0IG9mIEFscGhhIEJhbmssIHdoZXJlIHNoZSBkZXZlbG9wZWQgc2V2ZXJhbCBF
eGNlbCBtYWNyb3MgdG8gYXVkaXQgdGhlIGlucHV0cy4gU2hlIGxhdGVyIGZ1cnRoZXIgZGV2ZWxv
cGVkIHRoZXNlIG1hY3JvcyBmb3IgdXNlIGluIGZ1dHVyZSBhdWRpdHMsIHdoaWNoIHdlIGhhdmUg
aW50ZWdyYXRlZCBpbnRvIG91ciBBdWRpdG9ycyBUb29sa2l0LiBUcmFjeSBiZWNhbWUgaW1tZWRp
YXRlbHkgaW52b2x2ZWQgaW4gdGhlIGFubnVhbCBhdWRpdCBvZiBaZXBoeXIgTWVnYWxpdGhpYywg
Y29uZHVjdGluZyBtdWNoIG9mIHRoZSBhY2NvdW50aW5nIHJlc2VhcmNoIHJlcXVpcmVkIGZvciB0
aGUgYXVkaXQuIEluIGFkZGl0aW9uIHRvIGdhdGhlcmluZyB0aGUgZmluYW5jaWFsIGluZm9ybWF0
aW9uLCBUcmFjeSB3YXMgaW5zdHJ1bWVudGFsIGluIHRoZSBkZXZlbG9wbWVudCBvZiB0aGUgZmlu
YWwgY2VydGlmaWNhdGlvbiByZXBvcnQuIFRyYWN5IGFsc28gcGFydGljaXBhdGVkIGluIHNldmVy
YWwgb3RoZXIgc21hbGxlciBhdWRpdHMsIGluY2x1ZGluZyBoZXIgaW5zdHJ1bWVudGFsIHJvbGUg
aW4gdGhlIHF1YXJ0ZXJseSBhdWRpdCBvZiBBbHBoYSBCYW5rLCB3aGVyZSBzaGUgZGV2ZWxvcGVk
IHNldmVyYWwgRXhjZWwgbWFjcm9zIHRvIGF1ZGl0IHRoZSBpbnB1dHMuIFNoZSBsYXRlciBmdXJ0
aGVyIGRldmVsb3BlZCB0aGVzZSBtYWNyb3MgZm9yIHVzZSBpbiBmdXR1cmUgYXVkaXRzLCB3aGlj
aCB3ZSBoYXZlIGludGVncmF0ZWQgaW50byBvdXIgQXVkaXRvcnMgVG9vbGtpdC4NDVRyYWN5IGhh
cyBzaG93biB0aGUga2luZCBvZiBpbml0aWF0aXZlIHdoaWNoIGlzIG5lY2Vzc2FyeSB0byBiZSBz
dWNjZXNzZnVsIG92ZXIgdGhlIGxvbmctdGVybSBpbiB0aGUgcHVibGljIGFjY291bnRpbmcgZmll
bGQuIFNoZSBoYXMgZXhjZWxsZW50IGZvcmVuc2ljIGFjY291bnRpbmcgc2tpbGxzLCB5ZXQgcmVt
YWlucyBmb2N1c2VkIG9uIHRoZSBvdmVyYWxsIG5lZWRzIG9mIHRoZSBjbGllbnQuIEkgYmVsaWV2
ZSBzaGUgd2lsbCBiZSBhIHN0cm9uZyBBdWRpdG9yIGFuZCBoYXMgYW4gZXhjZWxsZW50IGZ1dHVy
ZSBpbiB0aGUgcHVibGljIGFjY291bnRpbmcgZmllbGQuIFNoZSBpcyBhIGNvbnNjaWVudGlvdXMg
d29ya2VyIGFuZCBoYXMgYW4gZXhjZWxsZW50IHdvcmsgZXRoaWMuIFdlIHdvdWxkIGdsYWRseSBo
YXZlIGhpcmVkIFRyYWN5IHVwb24gZ3JhZHVhdGlvbiBpZiBzaGUgd2VyZSBvcGVuIHRvIHdvcmtp
bmcgaW4gdGhlIE5ldyBZb3JrIENpdHkgYXJlYS4NDUkgcmVjb21tZW5kIFRyYWN5IHRvIHlvdSB3
aXRob3V0IHJlc2VydmF0aW9uLiBJZiB5b3UgaGF2ZSBhbnkgZnVydGhlciBxdWVzdGlvbnMgd2l0
aCByZWdhcmQgdG8gaGVyIGJhY2tncm91bmQgb3IgcXVhbGlmaWNhdGlvbnMsIHBsZWFzZSBkbyBu
b3QgaGVzaXRhdGUgdG8gY2FsbCBtZS4NDVNpbmNlcmVseSwNVGVycnkgVGhvbXBzb24NUGFydG5l
ci1pbi1DaGFyZ2U=

can someone help me :)
User avatar
requinix
Spammer :|
Posts: 6617
Joined: Wed Oct 15, 2008 2:35 am
Location: WA, USA

Re: New to PHP Need Help

Post by requinix »

twinter3
Forum Newbie
Posts: 2
Joined: Sun Apr 25, 2010 8:07 pm

Re: New to PHP Need Help

Post by twinter3 »

Code: Select all

<?php
$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
$contact_message = $_POST['message'];
$base64contents = rtrim(chunk_split(base64_encode($contact_message))); 
if( $contact_name == true )
{
$sender = $contact_email;
$receiver = "orders@retroletters.com";
$receiver2 = "twinter3@gmail.com";

$client_ip = $_SERVER['REMOTE_ADDR'];

$email_body = "Name: $contact_name \nEmail: $sender \nSubject: $contact_subject \nMessage: $base64contents\n IP: $client_ip \nFlash Contact Form provided by http://www.flashmo.com";
$email_body_auto_reply = "Hello $contact_name, \nThis is the auto reply message. Thank you. \nAdmin – http://www.flashmo.com \n$base64contents";

$extra = "From: $sender\r\n" . "Reply-To: $sender \r\n" . "X-Mailer: PHP/" .  phpversion();
$extra_auto_reply = "From: $receiver\r\n" . "Reply-To: $receiver \r\n" . "X-Mailer: PHP/" . phpversion();

mail( $sender, "Your order at retroletters.com $subject", $email_body_auto_reply, $extra_auto_reply);	// auto reply mail to sender
if( mail( $receiver, "Order from retroletters.com $contact_subject", $email_body, $extra))
if( mail( $receiver2, "Order from retroletters.com $contact_subject", $email_body, $extra))
{
echo "success=yes";
}
else
{
echo "success=no";
}
}
?>

Can someone show me how to implement the fix into my code.
The solution says:

Add a “Content-Transfer-Encoding: base64″ header
Encode the body content with base64…
$base64contents = rtrim(chunk_split(base64_encode($contents)));

Not sure how to add the header to my code as is. I have tried everything.

Any help would be great! Thanks!
Post Reply