PHP tell a friend script to send URL of a page to an email address

We often want to send address or URL of a page to our friend or peers to visit (check) the page. How to send the URL without using any mail program or by going out and preparing an email with the URL? Here is a simple script to do that. You must have seen in many pages in different sites. This script is popularly known as Tell a friend script. This script uses two parts one is to display the html form and the other part is to process the script and sending back the visitor to the original page.

This script uses server side php form validation to check the user inputs and give proper error messages to the user.

If all form validations are passed then the details of the form submitted by the user is posted to the friend's email address using the php mail function.

The URL of the page is dynamically collected by using the php HTTP_REFERER function which collects the referrer of the page. This is done to maintain the portability of the script. This way the code can be used in any page or the form can be placed in any page and one common form processing page can be used to handle forms used in different pages. In such a case the form submit path is to be modify to take care the directory levels of the page relative to the main processing script.
Here is the code for the form. You can use the form shown at the end of this page to send this page url to your friend. Check once ...

<form method=post action=tellck.php>
<table border="0" cellpadding="0" cellspacing="0" align=center>
<tr bgcolor='#f1f1f1'><td colspan=2 align=center><font face='Verdana' size='2' ><b>TELL A FRIEND</b></font></td></tr>
<tr><td width=100><font face='Verdana' size='2' >Your Name</font></td><td width=200><input type=text name=y_name></td></tr>
<tr bgcolor='#f1f1f1'><td><font face='Verdana' size='2' >Your Email</font></td><td><input type=text name=y_email></td></tr>
<tr ><td><font face='Verdana' size='2' >Your Friend's Name</font></td><td><input type=text name=f_name></td></tr>
<tr bgcolor='#f1f1f1'><td><font face='Verdana' size='2' >Friend's Email</font></td><td><input type=text name=f_email></td></tr>
<tr ><td><font face='Verdana' size='2' >Your Message</font></td><td><textarea name=y_msg rows=5 cols=20></textarea></td></tr>
<tr bgcolor='#f1f1f1'><td colspan=2 align=center><font face='Verdana' size='2' ><input type=submit value='Send'></font></td></tr>
</table>
</form>
You can see this from submits the details to tellck.php page. Here is the code to post the details to friends email address. Use the form at the end of this page to test the script.

You can keep the textarea of the form as not editable and keep a standard message. This will prevent spamers from using it to send their messages. Here it is kept as fixed message and a fixed string for $y_msg variable. You can change this as per your requirement.

Script is modified to add better email validation

The script is modified to add IP address of the visitor at the form and at the end of the outgoing email.

Script is further modified to add one if condition to mail function to check and display message if mail function gave some problem to send the mail out.

Not Sending Referrer ( URL ) ?

Some time your script may not get the referrer value ( the url of the page ) which the form will be sending. Read on how to change the referrer setting of Firefox & read more on how to get referrer by using PHP

If your script is not dependent on referrer then you can directly hard code or write the url of the page to the variable $ref.

$ref=@$HTTP_REFERER; // Change this line to
$ref="https://www.plus2net.com/php_tutorial/tell_friend.php"; // Add your URL here
tellck.php
<?Php
$status = "OK";
$msg="";
$y_email=$_POST['y_email'];
$y_name=$_POST['y_name'];
$f_email=$_POST['f_email'];
$f_name=$_POST['f_name'];
$y_msg=$_POST['y_msg'];

if (strlen($y_name) <2 ) { // checking your name
$msg .="Please enter your name<BR>"; 
$status= "NOTOK";}

if(!filter_var($y_email,FILTER_VALIDATE_EMAIL)){ // Your email validation
$msg .="Your email address is not valid<BR>"; 
$status= "NOTOK";
}

if (strlen($f_name) <2 ) { // checking freinds name
$msg .="Please enter your friend's name<BR>"; 
$status= "NOTOK";}

if(!filter_var($f_email,FILTER_VALIDATE_EMAIL)){ // Friends email validation
$msg .="Your Friends Email address is not correct<BR>"; 
$status= "NOTOK";
}

if (strlen($y_msg) <2 ) { // checking Message details
$msg .="Please enter your message details<BR>"; 
$status= "NOTOK";}

if($status=="OK"){ // all validation passed
/////////// Sending the message starts here //////////////
$ip=$_SERVER['REMOTE_ADDR']; // Collect the IP address of visitor

$ref=@$HTTP_REFERER; 
/////Message at the top of the page showing the url////
$header_message = "Hi $f_name n Your friend $y_name requested you to visit the page at n $ref n";
/// Body message prepared with the message entered by the user ////
$body_message =$header_message."n".$y_msg."n";
// IP address of visitor is added to message, you can remove it if not required.//
$body_message .="n n $ip n This is a free script from https://www.plus2net.com";

//// Mail posting part starts here /////////

$headers="";
//$headers = "Content-Type: text/html; charset=iso-8859-1n".$headers; 
 // Un comment the above line to send mail in html format
$headers4=$y_email;         // Change this to change from address
$headers.="Reply-to: $headers4n";
$headers .= "From: $headers4n"; 
$headers .= "Errors-to: $headers4n"; 

$subject="Request to visit URL";

mail($f_email,$subject,$body_message,$headers);

////// Mail posting ends here ///////////
echo "<center><font face='Verdana' size='2' color=green>Thank You, Your message posted to $f_name</font></center>";

//////////// Sending the message ends here /////////////
}else{// display the error message
echo "<center><font face='Verdana' size='2' color=red>$msg <br><br><INPUT TYPE='button' VALUE='Back' onClick='history.go(-1);'></font></center>";
}
?>

To send BCC you can add these modifications
Modify the header part to add
$headers .= "bcc:siteadmin@sitename.com, admin@sitename.com\n";
Or you can use one more line of mail function with site admin address.

Download the ZIP file here for tell a friend script

Use this form below to post the url of this page to your friend
<?Php
$ip=$_SERVER['REMOTE_ADDR'];
if(strlen($ip) > 3){
echo "Your IP address=$ip";
}
 ?>
We have stopped the demo of this script. You can download and try at your end.

TELL A FRIEND
Your Name
Your Email
Your Friend's Name
Friend's Email
Your Message
(Editing of text area is disabled. You can use it after downloading the script)

You can also read
PHP Mail
PHP GuestBook
Subscribe to our YouTube Channel here


Subscribe

* indicates required
Subscribe to plus2net

    plus2net.com




    sanzeev

    12-03-2010

    really nice script thanks for this
    sheepiboy

    31-05-2010

    Dears, how to modify the tell a friend script because the ref ulr is not linked, just only a simple text, thank you.
    Very good!!!

    17-11-2012

    Thanks m8! This helped me alot! Great tutorial

    27-02-2023

    How can I use this script with the function so it forces visitors to refer 5 friends no bypass? That would be Great

    27-02-2023

    A redirection to choosen page after submission would also be great

    Post your comments , suggestion , error , requirements etc here .




    We use cookies to improve your browsing experience. . Learn more
    HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
    ©2000-2024 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer