Jump to content

Using $_SERVER['HTTP_REFERER'] as a variable to echo in an email??


rltabork

Recommended Posts

Hi,

 

I'm trying to create an "email this page" function, but it's a little more complicated than just that I can't figure out a workaround.

 

I have a web gallery system set up, and I'd like users to be able to click "email this" from any page and have them fill out a form with their address, their friend's address and a short message. Their friend would get an email with their message and a link to the page they wanted to share (let's say http://gallery/user).

 

Normally this wouldn't be a problem, I'd just stick the form on each page and tell it to echo $_SERVER['HTTP_REFERER'] into the email it sends. However, I don't actually have full control over this gallery - it's running on another company's server with their software. I have enough control to place a link on each page, but that's about it.

 

My (theoretical) solution was to direct the "email this" link to a page on my own server with the email form (let's say http://myserver/form.php), and use $_SERVER['HTTP_REFERER'] to stick the link in the email. But when I do this, it sends an email with http://myserver/form.html, not http://gallery/user. I suppose this is because the script sees form.php as the referrer after it's sent the mail, but I don't know how to work around that.

 

If I just try to echo $_SERVER['HTTP_REFERER'] somewhere in form.php it works fine and gives me http://gallery/user, but I can't get it to stick that in an email anywhere. I guess I'd have to save REFERER as a variable somehow, but I'm not exactly sure how. Any ideas?

 

Here's the script as I got it from the web, without any of my attempted edits:

<?php

//minimum characters allowed in the message box

$msg_min_chars = "10";

 

//maximum characters allowed in the message box

$msg_max_chars = "250";

 

$errors = array();

 

function validate_form_items()

{

  global $msg_min_chars, $msg_max_chars;

  $msg_chars = "{".$msg_min_chars.",".$msg_max_chars."}";

 

  $form_items = array(

 

  "name"  => array(

  "regex" => "/^([a-zA-Z '-]+)$/",

  "error" => "Your name appears to be in improper format",

  ),

"email" => array(

  "regex" =>

"/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/",

  "error" => "email address is invalid",

  ),

  "message" => array(

  "regex" => "/.*/",

  "error" => "Your message is either too short or exceeds $msg_max_chars characters",

  ),

  );

 

  global $errors;

 

if(!preg_match($form_items["name"]["regex"], $_POST["your_name"]))

$errors[] = $form_items["name"]["error"];

 

if(!preg_match($form_items["email"]["regex"], $_POST["your_email"]))

$errors[] = "your ".$form_items["email"]["error"];

 

if(!preg_match($form_items["email"]["regex"], $_POST["friend_email1"]))

$errors[] = "Friend 1 ".$form_items["email"]["error"];

 

if(strlen(trim($_POST["message"])) < $msg_min_chars || strlen(trim($_POST["message"])) >  $msg_max_chars )

$errors[] = $form_items["message"]["error"];

 

if(trim($_POST["friend_email2"]) != "")

{

if(!preg_match($form_items["email"]["regex"], $_POST["friend_email2"]))

$errors[] = "Friend 2 ".$form_items["email"]["error"];

}

 

if(trim($_POST["friend_email3"]) != "")

{

if(!preg_match($form_items["email"]["regex"], $_POST["friend_email3"]))

$errors[] = "Friend 3 ".$form_items["email"]["error"];

}

 

  return count($errors);

}

 

function email($from, $from_name, $to, $message)

{

//header("Location: thankyou.html");return;

 

$headers .= "From: ".$from."\r\n";

$headers .= "Content-type: text/plain; charset=ISO-8859-1";

 

$your_domian_name = "www.yourdomain.com";

//edit what you want your vistors to see in their email here

$subject = $from_name." sent you an invitation to $your_domian_name";

$your_message = "Hi!\r\n";

$your_message.= ucfirst($from_name);

$your_message.= " wants you to check out $your_domian_name\r\n";

$your_message.= "Sender's Message:\n\r";

 

$message=$your_message.stripslashes($message);

 

if (mail($to,$subject,$message,$headers) ) {

return true;

} else {

return false;

}

}

 

function print_error($errors)

{

 

foreach($errors as $error)

{

$err.=$error."<br/>";

}

 

echo

"<div style=\"border:1px red solid; font-size:14px; font-weight:normal; color:red; margin:10px; padding:10px;\">

$err

<div>";

 

}

 

function form_process()

{

$from_name = $_POST["your_name"];

$from_email = $_POST["your_email"];

 

$to = $_POST["your_email"].",".$_POST["friend_email1"].",".$_POST["friend_email2"].",".$_POST["friend_email3"];

$message = $_POST["message"];

 

$error_count = validate_form_items();

 

if($error_count == 0)

{

if(email($from_email, $from_name, $to, $message))

header("Location: thankyou.html");

else

{

global $errors;

$errors[] = "Email coudn't be send at this time. <br>Please report the webmaster of this error.";

}

}

 

 

}

 

 

 

if(isset($_POST["submit"]))

form_process();

 

?>

 

<html>

<title>php-learn-it.com - Email Form Script</title>

<head>

 

</head>

 

<body>

  <form id="test" method="post" action="<?php echo $PHP_SELF?>" >

<table border="0">

 

 

  <tr>

  <td colspan="2" style="border-bottom:1px solid black;">

 

  <font size="+2"><b>Tell A Friend</b></font>

 

 

  </td>

  </tr>

 

 

<tr>

  <td colspan="2">

  <?php

global $errors;

if(count($errors) != 0){

print_error($errors);

}

?>

  </td>

  </tr>

 

  <tr>

  <td>

<b>Your Name:*</b>

  </td>

  <td>

<b>Your Email:*</b>

  </td>

  </tr>

 

  <tr>

  <td>

 

<input type="text" name="your_name" id="name" size="20" maxlength="25" value="<?php echo $_POST["your_name"]?>">

  </td>

  <td>

<input type="text" name="your_email" id="email" size="31" maxlength="80" value="<?php echo $_POST["your_email"]?>">

  </td>

  </tr>

 

<tr>

  <td colspan="2">

<b>Friend's Email:</b>*<br/>

<input type="text" name="friend_email1" id="name" size="56" maxlength="80" value="<?php echo $_POST["friend_email1"]?>">

  </td>

 

  </tr>

 

  <tr>

  <td colspan="2">

<b>Friend's Email:</b><br/>

<input type="text" name="friend_email2" id="name" size="56" maxlength="80" value="<?php echo $_POST["friend_email2"]?>">

  </td>

</tr>

 

<tr>

  <td colspan="2">

<b>Friend's Email:</b><br/>

<input type="text" name="friend_email3" id="name" size="56" maxlength="80" value="<?php echo $_POST["friend_email3"]?>">

  </td>

</tr>

 

  <tr>

  <td>

<b>Message:*</b>

  </td>

  <td>

<i>(max 250 characters allowed)</i>

  </td>

  </tr>

  <tr>

  <td colspan="2">

<textarea name="message" id="message" cols="42" rows="5"><?php echo $_POST["message"]?></textarea>

  </td>

  </tr>

  <tr>

  <td colspan="2" align="right">

<i>(* required fields)</i> <input type="submit" value="submit" name="submit" >

  </td>

  </tr>

</table>

</form>

</body>

</html>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.