473,396 Members | 2,011 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Feedback Email setup

Hello all

I am trying to setup a feedback form on my webpage using some script
provided by my ISP. I really don't know a lot about PHP and it's syntax
etc.

The feedback form only has 4 fields. These are UserName, UserEmail,
UserCountry & Comments. It works well with all of those fields
appearing in the body of an email that is sent to me. What I would now
like is for the UserEmail field to appear in the "From:" field in the
header rather than only in the body of the email.

There is a line in the script that says:-
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";

I suspect I need to somehow place the UserEmail string in here somehow
but I don't know how to do it. Is it possible to do what I want?

Here is the script of the formmail.php file I am using. I have inserted
my email address at the point where it says to and I have created a
"confirm.htm" webpage.

<?
# Adam Internet PHP Form Mailer v1.3
# By John Edwards, Copyright September 2005.
# Mail all variables to:

$to='em***@yourbusiness.com.au'; ###I have inserted my email address
here ####
$domain = 'yourbusiness.com.au'; ### I don't have a business domain
name ####

while(list($key,$val) = each($HTTP_POST_VARS))
{

$val = str_replace(chr(10),"",$val);
$val = str_replace(chr(13),"",$val);
$formmessage .= "$key = $val\n";
}

if(

$formmessage # If we have content
&& 'POST' == $_SERVER['REQUEST_METHOD'] # If the message is being
posted
&& strstr(strtolower($_SERVER['HTTP_USER_AGENT']),'mozilla') # If the
user agent contains mozilla
&& strstr($_SERVER['HTTP_REFERER'], $domain) # If the referrer is us
&& !strstr($formmessage,"Content-Type") # Don't send XSS attempt
)
{

# Message is ok!
}
else
{

die("This request looked like a XSS attempt. Stopped");
}

# Reset the From: address for a neater look
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";
# If there's an email element, use it for reply-to
if ($email)
{

$header .= "Reply-To: $email\n";
}

# Log the IP Address of the sender.
if($HTTP_X_FORWARDED_FOR)
{

$header .= "X-Originating-IP: $HTTP_X_FORWARDED_FOR via
$REMOTE_ADDR\n";
}
else
{

$header .= "X-Originating-IP: $REMOTE_ADDR\n";
}

mail($to,"Web Form Details",$formmessage,$header);
header("Location: confirm.htm"); ## I have inserted the full URL for my
confirm page here ##

?>

Sep 18 '06 #1
4 2204
ia*******@adam.com.au wrote:
Hello all

I am trying to setup a feedback form on my webpage using some script
provided by my ISP. I really don't know a lot about PHP and it's syntax
etc.

The feedback form only has 4 fields. These are UserName, UserEmail,
UserCountry & Comments. It works well with all of those fields
appearing in the body of an email that is sent to me. What I would now
like is for the UserEmail field to appear in the "From:" field in the
header rather than only in the body of the email.

There is a line in the script that says:-
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";

I suspect I need to somehow place the UserEmail string in here somehow
but I don't know how to do it. Is it possible to do what I want?
No, you want to put there the from address.
Since this script automatically sends the email, you'll have to tell it what
the from-field is.
Most probably you can put in there any valid emailaddress you own, like:
in**@adam.com

>
Here is the script of the formmail.php file I am using. I have inserted
my email address at the point where it says to and I have created a
"confirm.htm" webpage.

<?
# Adam Internet PHP Form Mailer v1.3
# By John Edwards, Copyright September 2005.
# Mail all variables to:

$to='em***@yourbusiness.com.au'; ###I have inserted my email address
here ####
$domain = 'yourbusiness.com.au'; ### I don't have a business domain
name ####
Use the one of your ISP.
For example, if you host your site at: www.xs4all.nl/~adam you are in domain
x4all.nl, or maybe www.xs4all.nl
>
while(list($key,$val) = each($HTTP_POST_VARS))
{

$val = str_replace(chr(10),"",$val);
$val = str_replace(chr(13),"",$val);
$formmessage .= "$key = $val\n";
}
This part cleans up some header-injection hackattack.
It also removes any newlines from the content of the mail.

>
if(

$formmessage # If we have content
&& 'POST' == $_SERVER['REQUEST_METHOD'] # If the message is being
posted
&& strstr(strtolower($_SERVER['HTTP_USER_AGENT']),'mozilla') # If the
user agent contains mozilla
&& strstr($_SERVER['HTTP_REFERER'], $domain) # If the referrer is us
&& !strstr($formmessage,"Content-Type") # Don't send XSS attempt
)

This is a really old and bad piece of code.
It uses $formmessage and I expect that it is NOT filled before like:
$formmessage = $_POST["formmessage"];

If you are new to PHP, this is difficult to explain.
I just say it is old and will not work on a modern PHP install.

{

# Message is ok!
}
else
{

die("This request looked like a XSS attempt. Stopped");
}

# Reset the From: address for a neater look
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";
# If there's an email element, use it for reply-to
if ($email)
{

$header .= "Reply-To: $email\n";
}

# Log the IP Address of the sender.
if($HTTP_X_FORWARDED_FOR)
{

$header .= "X-Originating-IP: $HTTP_X_FORWARDED_FOR via
$REMOTE_ADDR\n";
}
else
{

$header .= "X-Originating-IP: $REMOTE_ADDR\n";
}

mail($to,"Web Form Details",$formmessage,$header);
That is the actual mailfunction.
Go to www.php.net and look up mail for more information.
header("Location: confirm.htm"); ## I have inserted the full URL for my
confirm page here ##

?>

I don't like the script at all. It is probably published years ago.
Just go to www.php.net and look up the mail function.

Regards,
Erwin Moller
Sep 18 '06 #2
Thanks Erwin for your reply.

I know nothing about PHP but since I started this exercise I have
become a little, just a little more familiar with this particular
function. Unfortunately I wouldn't know enuff to know whether it is
good or bad code so I will have to take your word for that.

In your reply you state "No, you want to put there the from address.
Since this script automatically sends the email, you'll have to tell it
what the from-field is. Most probably you can put in there any valid
emailaddress you own, like: in**@adam.com"

The email address that I want to put in there is that which is supplied
in the feedback form field I have titled "UserEmail" The trouble is I
don't know what the syntax is to do this. I have tried many variations
(eg)

$header .= "From: Web Form <UserEmail>\n";
$header .= "From: <UserEmail>\n";
$header .= "From: 'UserEmai'l>\n";
$header .= "From: <$UserEmail>\n";
$header .= "From: $UserEmail\n";

Am I trying to do something that just isn't possible in PHP. I have
done this in ASP on another webpage but I can't get it to work here.

Regards

Erwin Moller wrote:
ia*******@adam.com.au wrote:
Hello all

I am trying to setup a feedback form on my webpage using some script
provided by my ISP. I really don't know a lot about PHP and it's syntax
etc.

The feedback form only has 4 fields. These are UserName, UserEmail,
UserCountry & Comments. It works well with all of those fields
appearing in the body of an email that is sent to me. What I would now
like is for the UserEmail field to appear in the "From:" field in the
header rather than only in the body of the email.

There is a line in the script that says:-
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";

I suspect I need to somehow place the UserEmail string in here somehow
but I don't know how to do it. Is it possible to do what I want?

No, you want to put there the from address.
Since this script automatically sends the email, you'll have to tell it what
the from-field is.
Most probably you can put in there any valid emailaddress you own, like:
in**@adam.com


Here is the script of the formmail.php file I am using. I have inserted
my email address at the point where it says to and I have created a
"confirm.htm" webpage.

<?
# Adam Internet PHP Form Mailer v1.3
# By John Edwards, Copyright September 2005.
# Mail all variables to:

$to='em***@yourbusiness.com.au'; ###I have inserted my email address
here ####
$domain = 'yourbusiness.com.au'; ### I don't have a business domain
name ####

Use the one of your ISP.
For example, if you host your site at: www.xs4all.nl/~adam you are in domain
x4all.nl, or maybe www.xs4all.nl

while(list($key,$val) = each($HTTP_POST_VARS))
{

$val = str_replace(chr(10),"",$val);
$val = str_replace(chr(13),"",$val);
$formmessage .= "$key = $val\n";
}

This part cleans up some header-injection hackattack.
It also removes any newlines from the content of the mail.


if(

$formmessage # If we have content
&& 'POST' == $_SERVER['REQUEST_METHOD'] # If the message is being
posted
&& strstr(strtolower($_SERVER['HTTP_USER_AGENT']),'mozilla') # If the
user agent contains mozilla
&& strstr($_SERVER['HTTP_REFERER'], $domain) # If the referrer is us
&& !strstr($formmessage,"Content-Type") # Don't send XSS attempt
)


This is a really old and bad piece of code.
It uses $formmessage and I expect that it is NOT filled before like:
$formmessage = $_POST["formmessage"];

If you are new to PHP, this is difficult to explain.
I just say it is old and will not work on a modern PHP install.

{

# Message is ok!
}
else
{

die("This request looked like a XSS attempt. Stopped");
}

# Reset the From: address for a neater look
$header .= "From: Web Form <em***@yourbusiness.com.au>\n";
# If there's an email element, use it for reply-to
if ($email)
{

$header .= "Reply-To: $email\n";
}

# Log the IP Address of the sender.
if($HTTP_X_FORWARDED_FOR)
{

$header .= "X-Originating-IP: $HTTP_X_FORWARDED_FOR via
$REMOTE_ADDR\n";
}
else
{

$header .= "X-Originating-IP: $REMOTE_ADDR\n";
}

mail($to,"Web Form Details",$formmessage,$header);

That is the actual mailfunction.
Go to www.php.net and look up mail for more information.
header("Location: confirm.htm"); ## I have inserted the full URL for my
confirm page here ##

?>


I don't like the script at all. It is probably published years ago.
Just go to www.php.net and look up the mail function.

Regards,
Erwin Moller
Sep 19 '06 #3
ia*******@adam.com.au wrote:
Thanks Erwin for your reply.

I know nothing about PHP but since I started this exercise I have
become a little, just a little more familiar with this particular
function. Unfortunately I wouldn't know enuff to know whether it is
good or bad code so I will have to take your word for that.

In your reply you state "No, you want to put there the from address.
Since this script automatically sends the email, you'll have to tell it
what the from-field is. Most probably you can put in there any valid
emailaddress you own, like: in**@adam.com"

The email address that I want to put in there is that which is supplied
in the feedback form field I have titled "UserEmail" The trouble is I
don't know what the syntax is to do this. I have tried many variations
(eg)

$header .= "From: Web Form <UserEmail>\n";
$header .= "From: <UserEmail>\n";
$header .= "From: 'UserEmai'l>\n";
$header .= "From: <$UserEmail>\n";
$header .= "From: $UserEmail\n";

Am I trying to do something that just isn't possible in PHP. I have
done this in ASP on another webpage but I can't get it to work here.
Probably

$_REQUEST['UserEmail']

(or $_GET or $_POST instead of $_REQUEST if you know which HTTP method
is being used. But $_REQUEST will do for either.)

Colin
Sep 23 '06 #4
I finally got this all sorted out and it works fine. I have even gone
one step more and generate 2 emails, one to myself and another back to
the person who sent the feedback, providing they provide a valid email
address. This second part isn't necessary but I was "on a roll" so kept
going.

Here is my "contact.php" script. Remember that it has to be mentioned
in the Feedback form with a line
<form method="post" action="contact.php">

Thanks to all those who offered some assistance.
Ian

<?php
// Website Contact Form Generator

// get posted data into local variables ready for email to Ian
$EmailFrom = Trim(stripslashes($_POST['UserEmail']));
$Country = Trim(stripslashes($_POST['UserCountry']));
$EmailTo = "my own email address";
$Subject = "Web Site Feedback";
$Name = Trim(stripslashes($_POST['UserName']));
$Comments = Trim(stripslashes($_POST['Comments']));

// validation
// not used as my Form has it's own validation
//$validationOK=true;
//if (Trim($EmailFrom)=="") $validationOK=false;
//if (Trim($Country)=="") $validationOK=false;
//if (Trim($Name)=="") $validationOK=false;
// if (Trim($Telephone)=="") $validationOK=false;
// if (Trim($Email)=="") $validationOK=false;
//if (Trim($Comments)=="") $validationOK=false;
//if (!$validationOK) {
// print "<meta http-equiv=\"refresh\" content=\"0;URL=index.htm\">";
// exit;
//}

// prepare email body text to Ian
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Country: ";
$Body .= $Country;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $EmailFrom;
$Body .= "\n";
$Body .= "Comments: ";
$Body .= $Comments;
$Body .= "\n";

// send email to Ian
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// get posted data into local variables ready for email to User
$EmailFrom = "";
$EmailTo = Trim(stripslashes($_POST['UserEmail']));
$Subject = "Web Site Feedback Comments";
$Comments = Trim(stripslashes($_POST['Comments']));

// prepare email body text to User
$Body = "";
$Body .= "Hello ";
$Body .= $Name;
$Body .= "\n";
$Body .= "\n";
$Body .= "Here is a copy of the Comments you sent to Ian's Website";
$Body .= "\n";
$Body .= "\n";
$Body .= "Comments: ";
$Body .= "\n";
$Body .= $Comments;
$Body .= "\n";

// send email to User
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=confirm.htm\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

Colin Fine wrote:
ia*******@adam.com.au wrote:
Thanks Erwin for your reply.

I know nothing about PHP but since I started this exercise I have
become a little, just a little more familiar with this particular
function. Unfortunately I wouldn't know enuff to know whether it is
good or bad code so I will have to take your word for that.

In your reply you state "No, you want to put there the from address.
Since this script automatically sends the email, you'll have to tell it
what the from-field is. Most probably you can put in there any valid
emailaddress you own, like: in**@adam.com"

The email address that I want to put in there is that which is supplied
in the feedback form field I have titled "UserEmail" The trouble is I
don't know what the syntax is to do this. I have tried many variations
(eg)

$header .= "From: Web Form <UserEmail>\n";
$header .= "From: <UserEmail>\n";
$header .= "From: 'UserEmai'l>\n";
$header .= "From: <$UserEmail>\n";
$header .= "From: $UserEmail\n";

Am I trying to do something that just isn't possible in PHP. I have
done this in ASP on another webpage but I can't get it to work here.
Probably

$_REQUEST['UserEmail']

(or $_GET or $_POST instead of $_REQUEST if you know which HTTP method
is being used. But $_REQUEST will do for either.)

Colin
Sep 26 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Andrew | last post by:
Where can i find a free feedback form in php script to download it and put it in my website? thanks in advance andreas
21
by: Raymond Hettinger | last post by:
I've gotten lots of feedback on the itertools module but have not heard a peep about the new sets module. * Are you overjoyed/outraged by the choice of | and & as set operators (instead of + and...
2
by: Mindful_Spirit | last post by:
I'm trying to set up a basic email feed back form like this, and was wondering about some basic configuration settings. I have used code from this website. I have it working just fine. I'm...
1
by: Norman Fritag | last post by:
Hi there I have avoided to use active x controls because I thought they are causing more problems then they are doing any good. I a new application I would want to use the tree and list view...
4
by: windandwaves | last post by:
Hi Folk Can you have a look at www.lakebrunner.co.nz/_n/ and tell me what you think? It is my latest creation. I am not responsible for the design so dont worry about that (font-sizes,...
9
by: gs | last post by:
the feedback for the install of c#2008 places 97 to 99% cpu load for way too long on athlon x64 3800+ PC. 3/4 an hour later its only about 80% complete, continuing with 98% CPU load! Next time...
15
by: nickyspace | last post by:
i have a code wherein it is asking email id and message from the user in the form named as feedback.html HTML CODE AS BELOW<html> <body> <form method="post" action="sendmail.php"> Email:...
0
by: Marcus.CM | last post by:
Hi, After some debugging, i found the solution is to :- import email import email.mime.text import email.iterators import email.generator import email.utils
3
by: David Thielen | last post by:
Hi all; Since everyone here is great about feedback - what do you think of this design for an XPath wizard? This is for people who span the gamut from barely know what an XML file is to...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.