What would be the code for a basic form that asks a persons: name: email address and comments and then sends this info to a designated email recipient?
A little help
Started by
Guest_priorityone_*
, Jan 20 2007 05:26 PM
6 replies to this topic
#1
Guest_priorityone_*
Posted 20 January 2007 - 05:26 PM
Guest_priorityone_*
|
|
|
#2
Posted 21 January 2007 - 02:13 AM
PHP Tutorial: Writing Your First PHP Script: A Feedback Form (a FormMail Script) (thesitewizard.com)
Visit that link and there's a complete tutorial on this.
Visit that link and there's a complete tutorial on this.
Quote
HTML Code
<form method="post" action="sendmail.php">
Email: <input name="email" type="text" /><br />
Message:<br />
<textarea name="message" rows="15" cols="40">
</textarea><br />
<input type="submit" />
</form>
<form method="post" action="sendmail.php">
Email: <input name="email" type="text" /><br />
Message:<br />
<textarea name="message" rows="15" cols="40">
</textarea><br />
<input type="submit" />
</form>
Quote
The Feedback Form PHP Script
Now all that remains is to code "sendmail.php". This is made extremely easy by the facilities available in PHP. Type the following code into a file named "sendmail.php". Do not put anything else into that file, ie, don't put in any other HTML tags or headers, etc.
<?
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
mail( "yourname@example.com", "Feedback Form Results",
$message, "From: $email" );
header( "Location: http://www.example.com/thankyou.html" );
?>
When the form is submitted to sendmail.php, the contents of the "email" field in the form is put into a PHP variable called $_REQUEST['email']. Likewise the contents of the "message" field is put into the variable $_REQUEST['message'].
If you had named the fields in your form "emailofsender" and "contentsofmessage", then the information submitted in those fields would have been available to your script in the variables $_REQUEST['emailofsender'] and $_REQUEST['contentsofmessage'] respectively. I think you get the idea.
The first thing we do in our PHP script is to make the information that is submitted easily accessible to the rest of the program.
Firstly, we made a copy of the contents of $_REQUEST['email'] in a variable we call $email. This was done in the line
$email = $_REQUEST['email'] ;
Note that we don't really have to call this new variable $email - we could have called it $thingamajig if we wished, but it makes sense to name a variable with some meaningful name.
Likewise, in the next line, we made a copy (assigned) of $_REQUEST['message'] in a variable $message.
$message = $_REQUEST['message'] ;
Again, we could have named the new variable anything we wanted - but it's easier for us to understand the program if the variable name reflects what it does.
The real workhorse of this script is in the line beginning with "mail".
mail( "yourname@example.com", "Feedback Form Results",
$message, "From: $email" );
mail is a special function in PHP that sends mail. The first parameter to mail is supposed to contain the email address you want the form contents to be sent to, such as your own email address. The second parameter is the "Subject" of the email message. The last two parameters are the content of the message and the headers you want sent, respectively. We want a "From" header so that we know who is sending the email to us and can reply to him/her if we need to.
Notice that, like many other programming languages, strings (sequences of characters) are enclosed in double quotes, such as "Feedback Form Results".
Variables like $message can be used as-is. Note also that you can also interpolate (introduce) the contents of the variable $email into a string, like "From: $email", so that if your $email string contained an address like "william@shakespeare.com", the final string that is passed to the mail function will be "From: william@shakespeare.com".
You can also use single quotes (such as those in 'Hi there') to quote strings, but when you do so, the variables included are not expanded. This is useful if, for some reason, you really want to pass the string 'From: $email' to mail without PHP translating that to "From: william@shakespeare.com".
You can't interpolate variables like $_REQUEST['email'] and $_REQUEST['message'] in the same way, which is why we assigned their contents to $email and $message. The latter are also easier to read anyway.
Finally, it is appropriate to thank the visitor for his message. This is done with the line
header( "Location: http://www.example.com/thankyou.html" );
This line causes PHP to send an HTTP header back to the visitor's browser telling it to load the URL "http://www.example.com/thankyou.html". The "header" function allows us to send any HTTP header to the browser.
You will of course have to create such a file called "thankyou.html" with some sort of message to thank your visitor for his efforts, otherwise your visitor will be greeted with an unfriendly "404/File Not Found" error after he sends his message. You should also replace the URLs and email addresses with the correct ones if you want to use that script on your site.
By the way, the script has to be enclosed within the "<?" and "?>" tags because the PHP processor treats all input as HTML code unless otherwise specified. On some systems, you may need to use "<?php" and "?>" as the opening and closing tags to get the script to work.
Now all that remains is to code "sendmail.php". This is made extremely easy by the facilities available in PHP. Type the following code into a file named "sendmail.php". Do not put anything else into that file, ie, don't put in any other HTML tags or headers, etc.
<?
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
mail( "yourname@example.com", "Feedback Form Results",
$message, "From: $email" );
header( "Location: http://www.example.com/thankyou.html" );
?>
When the form is submitted to sendmail.php, the contents of the "email" field in the form is put into a PHP variable called $_REQUEST['email']. Likewise the contents of the "message" field is put into the variable $_REQUEST['message'].
If you had named the fields in your form "emailofsender" and "contentsofmessage", then the information submitted in those fields would have been available to your script in the variables $_REQUEST['emailofsender'] and $_REQUEST['contentsofmessage'] respectively. I think you get the idea.
The first thing we do in our PHP script is to make the information that is submitted easily accessible to the rest of the program.
Firstly, we made a copy of the contents of $_REQUEST['email'] in a variable we call $email. This was done in the line
$email = $_REQUEST['email'] ;
Note that we don't really have to call this new variable $email - we could have called it $thingamajig if we wished, but it makes sense to name a variable with some meaningful name.
Likewise, in the next line, we made a copy (assigned) of $_REQUEST['message'] in a variable $message.
$message = $_REQUEST['message'] ;
Again, we could have named the new variable anything we wanted - but it's easier for us to understand the program if the variable name reflects what it does.
The real workhorse of this script is in the line beginning with "mail".
mail( "yourname@example.com", "Feedback Form Results",
$message, "From: $email" );
mail is a special function in PHP that sends mail. The first parameter to mail is supposed to contain the email address you want the form contents to be sent to, such as your own email address. The second parameter is the "Subject" of the email message. The last two parameters are the content of the message and the headers you want sent, respectively. We want a "From" header so that we know who is sending the email to us and can reply to him/her if we need to.
Notice that, like many other programming languages, strings (sequences of characters) are enclosed in double quotes, such as "Feedback Form Results".
Variables like $message can be used as-is. Note also that you can also interpolate (introduce) the contents of the variable $email into a string, like "From: $email", so that if your $email string contained an address like "william@shakespeare.com", the final string that is passed to the mail function will be "From: william@shakespeare.com".
You can also use single quotes (such as those in 'Hi there') to quote strings, but when you do so, the variables included are not expanded. This is useful if, for some reason, you really want to pass the string 'From: $email' to mail without PHP translating that to "From: william@shakespeare.com".
You can't interpolate variables like $_REQUEST['email'] and $_REQUEST['message'] in the same way, which is why we assigned their contents to $email and $message. The latter are also easier to read anyway.
Finally, it is appropriate to thank the visitor for his message. This is done with the line
header( "Location: http://www.example.com/thankyou.html" );
This line causes PHP to send an HTTP header back to the visitor's browser telling it to load the URL "http://www.example.com/thankyou.html". The "header" function allows us to send any HTTP header to the browser.
You will of course have to create such a file called "thankyou.html" with some sort of message to thank your visitor for his efforts, otherwise your visitor will be greeted with an unfriendly "404/File Not Found" error after he sends his message. You should also replace the URLs and email addresses with the correct ones if you want to use that script on your site.
By the way, the script has to be enclosed within the "<?" and "?>" tags because the PHP processor treats all input as HTML code unless otherwise specified. On some systems, you may need to use "<?php" and "?>" as the opening and closing tags to get the script to work.
#3
Guest_priorityone_*
Posted 25 January 2007 - 09:10 AM
Guest_priorityone_*
Xtraze thanks..If I copy this into the html format this will enable people to fill out a form and the information will be sent to my email? I am very grateful to you..thanks.
#4
Posted 25 January 2007 - 12:16 PM
Or you can use our tutorial http://forum.codecal...l-function.html ...
#5
Guest_priorityone_*
Posted 25 January 2007 - 12:32 PM
Guest_priorityone_*
Would this be suitable: (mail function) for a website that wants just the name email and comments ?
#6
Posted 25 January 2007 - 06:33 PM
Yes, a believe that is the simplest thing you can use, except for of course the mailto: function in HTML which doesn't provide you with a form
#7
Guest_priorityone_*
Posted 28 January 2007 - 03:47 AM
Guest_priorityone_*
Oh, ok..thanks for all the advice. I will look at both the coding given here and the other info and see which one is going to work best for me.


Sign In
Create Account

Back to top










