Can anyone help a n00b alter this?

Soldato
Joined
25 Oct 2002
Posts
4,198
Location
Derbyshire
I'm part of a scuba club and as a way of keeping everyone up to date we have a mailer on the website. The one at the moment is crude and not so good (frontpage extensions)

I've found a nice php script and its just what we need.....

Apart from a couple of things...

Can anyone alter this so it as a box for phone numbers?

I'd like the message to start with the Name and contact details if possible.

Current scripts

PHP:
<?php
/* 
	BELLonline PHP MAILER SCRIPT v1.5
	Copyright 2006 Gavin Bell 
	http://www.bellonline.co.uk 
	[email protected]

	Set up an email form on your website within minutes - see readme.txt for installation.
*/

extract($_POST);

if (!file_exists("config.php")) 
	{
$host = $_SERVER[HTTP_HOST ];
$path = pathinfo($_SERVER['PHP_SELF']);
$file_path = $path['dirname'];
print "<h1>BELLonline PHP mailer script</h1>
	<h2>There is a problem with your PHP mailer script installation</h2>
	<p>The config.php file seems to be missing!</p>
	<p>For this script to work, you need to upload the config.php file that came with the download of the BELLonline <a href=\"http://www.bellonline.co.uk/web-services/free/scripts/php-mailer-script/\">PHP mailer script</a>.</p>
	<p>The file must be in the following directory of your website:</p>
	<p>$host<span style=\"font-weight: bold; font-size: 150%;\">$file_path/</span></p>
	<p>If you need help installing the script, then feel free to email me at <a href=\"mailto:[email protected]\">[email protected]</a></p>";
exit;
	}
include "config.php";


if ($sendto_email == "[email protected]")
	{
print "<h1>BELLonline PHP mailer script</h1>
	<h2>Installation nearly complete!</h2>
	<p>Thank you for downloading the <a href=\"http://www.bellonline.co.uk/web-services/free/scripts/php-mailer-script/\" title=\"free PHP mailer script\">free PHP mailer script</a> from <a href=\"http://www.bellonline.co.uk\">BELLonline web services</a>. </p>
	<p>To start using the script, open config.php in a text editor and change the <b>$sendto_email</b> variable to your email address.</p>
	<p>If you did not get a config.php file with this script, then go to the <a href=\"http://www.bellonline.co.uk/web-services/free/scripts/php-mailer-script/\">PHP mailer script page</a> and download the full script.</p>
	<p>If you need help installing the script, then feel free to email me at <a href=\"mailto:[email protected]\">[email protected]</a></p>";
exit;
	} 
if (empty ($senders_name)) 
	{
	$error = "1";
	$info_error .= $lang_noname . "<br>"; 
	}
if (empty ($senders_email)) 
	{
	$error = "1";
	$info_error .= $lang_noemail . "<br>";  
	}
if (empty ($mail_subject)) 
	{
	$error = "1";
	$info_error .= $lang_nosubject . "<br>";  
	}
if (empty ($mail_message))  
	{
	$error = "1";
	$info_error .= $lang_nomessage . "<br>";  
	}
if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $senders_email))
	{
	$error = "1";
	$info_error .= $lang_invalidemail . "<br>"; 
	}
if (empty ($security_code))  
	{
	$error = "1";
	$info_error .= $lang_nocode . "<br>";  
	}
elseif ($security_code != $randomness)  
	{
	$error = "1";
	$info_error .= $lang_wrongcode . "<br>";  
	}
if ($showlink != "no")
	{
	$link = "<br><span style=\"font-size: 10px;\">Powered by <a href=\"http://www.bellonline.co.uk/web-services/free/scripts/php-mailer-script/\" title=\"free PHP mailer script\">BELLonline PHP mailer script</a></span>";
	}
if ($error == "1") 
	{
	$info_notice = "<span style=\"color: " . $error_colour . "; font-weight: bold;\">" . $lang_error . "</span><br>"; 
	
	if (empty ($submit)) 
		{
		$info_error = "";
		$info_notice = $lang_notice;
		}	

	function Random() 
		{
		$chars = "ABCDEFGHJKLMNPQRSTUVWZYZ23456789";
		srand((double)microtime()*1000000);
		$i = 0;
		$pass = '' ;
		while ($i <= 4) 
			{
			$num = rand() % 32;
			$tmp = substr($chars, $num, 1);
			$pass = $pass . $tmp;
			$i++; 
			} 
		return $pass; 
		}
	$random_code = Random();
	$mail_message = stripslashes($mail_message);

	print "<form name=\"BELLonline_email\" method=\"post\" style=\"margin: 0;\" action=\"\">
  <table  border=\"0\" cellspacing=\"2\" cellpadding=\"2\">
    <tr align=\"$title_align\" valign=\"top\">
      <td colspan=\"2\"><span style=\"$title_css\">$lang_title</span></td>
    </tr>
    <tr align=\"left\" valign=\"top\">
      <td colspan=\"2\">$info_notice$info_error</td>
    </tr>
    <tr valign=\"top\">
      <td align=\"right\">$lang_name</td>
      <td align=\"left\"><input name=\"senders_name\" type=\"text\" class=\"mailform_input\" id=\"senders_name\" style=\"width: $input_width;\" value=\"$senders_name\" maxlength=\"32\"></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_youremail</td>
      <td align=\"left\"><input name=\"senders_email\" type=\"text\" class=\"mailform_input\" id=\"senders_email\" style=\"width: $input_width;\" value=\"$senders_email\" maxlength=\"64\"></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_subject</td>
      <td align=\"left\"><input name=\"mail_subject\" type=\"text\" class=\"mailform_input\" id=\"mail_subject\" style=\"width: $input_width;\" value=\"$mail_subject\" maxlength=\"64\"></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_message</td>
      <td align=\"left\"><textarea name=\"mail_message\" cols=\"36\" rows=\"5\" style=\"width: $input_width;\" class=\"mailform_input\">$mail_message</textarea></td>
    </tr>
    <tr align=\"left\" valign=\"top\">
      <td width=\"100\">$lang_confirmation</td>
      <td><input name=\"security_code\" type=\"text\" id=\"security_code\" size=\"5\"> 
        &nbsp;&nbsp;&nbsp;&nbsp;<b>$random_code</b></td>
    </tr>
    <tr valign=\"top\">
      <td colspan=\"2\" align=\"right\"><input name=\"randomness\" type=\"hidden\" id=\"randomness\" value=\"$random_code\">
      <input name=\"submit\" type=\"submit\" id=\"submit\" value=\"$lang_submit\" class=\"mailform_button\"></td>
    </tr>
  </table>
</form>";
	}
else
	{
	
	
	
	if ($checkdomain == "yes") 
		{
		$sender_domain = substr($senders_email, (strpos($senders_email, '@')) +1);
		$recipient_domain = substr($sendto_email, (strpos($sendto_email, '@')) +1);
		if ($sender_domain == $recipient_domain)
			{
			print "Sorry, you cannot send messages from this domain ($sender_domain)";
			exit;
			}		
		}
		
		
	$info_notice = $lang_sent;
	$mail_message = stripslashes($mail_message);
	$senders_email = preg_replace("/[^a-zA-Z0-9s.@-_]/", "-", $senders_email);
	$senders_name = preg_replace("/[^a-zA-Z0-9s]/", " ", $senders_name);
	$headers = "From: $senders_name <$senders_email> \r\n";
	$headers .= "X-Mailer: BELLonline.co.uk PHP mailer \r\n";
	mail($sendto_email, $mail_subject, $mail_message, $headers);
	print "  <table  border=\"0\" cellspacing=\"2\" cellpadding=\"2\">
    <tr align=\"$title_align\" valign=\"top\">
      <td colspan=\"2\"><span style=\"$title_css\">$lang_title</span></td>
    </tr>
    <tr align=\"$title_align\" valign=\"top\">
      <td colspan=\"2\">$info_notice</td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_name</td>
      <td align=\"left\"><b>$senders_name</b></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_youremail</td>
      <td align=\"left\"><b>$senders_email</b></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_subject</td>
      <td align=\"left\"><b>$mail_subject</b></td>
    </tr>
    <tr valign=\"top\">
      <td width=\"100\" align=\"right\">$lang_message</td>
      <td align=\"left\"><b>$mail_message</b></td>
    </tr>
  </table>";
	}
print $link;
?>

And

PHP:
<?php
/* 
	BELLonline PHP MAILER SCRIPT v1.5
	Copyright 2006 Gavin Bell 
	http://www.bellonline.co.uk 
	[email protected]

	Set up an email form on your website within minutes.
	Very simple to install and use, and fully customisable.

	All you need to edit to get the script working is $sendto_email
	but there are other options so that you can further customise the script.
*/

// Edit the following with the email address that you want the form to send to

$sendto_email = "[email protected]";


// The settings below should be fine but you can edit them anyway

// Disable email addresses from the same domain as your email from being sent? 
// This will often reduce spam but will not allow antone to send from anything@yourdomain. 
$checkdomain = "no";
// Language variables
$lang_title = "Send an email";
$lang_notice = "Fill in the form to contact members by email. All fields are required";
$lang_name = "Your name";
$lang_youremail = "Your email";
$lang_subject = "Subject";
$lang_message = "Message";
$lang_confirmation = "Enter validation code";
$lang_submit = "Send email";
// Error messages
$lang_error = "Your email has not been sent, the following errors were found:";
$lang_noname = "You did not enter your name";
$lang_noemail = "You did not enter your email address";
$lang_nosubject = "You did not enter a subject";
$lang_nomessage = "You did not enter a message";
$lang_nocode = "You did not the validation code";
$lang_wrongcode = "You entered the validation code incorrectly. Please note that it is case sensitive";
$lang_invalidemail = "The email address that you entered appears to be invalid";
// Success
$lang_sent = "Your email has been sent. The following message was submitted:";
// Width of form inputs. Must include unites, e.g px 
$input_width = "600px";
// How do you want the title aligned?
$title_align = "left"; // Can be left, center or right
// To format the title text. If you are not confident with css then probably best left as it is
$title_css = "font-weight: bold; font-size: 120%;";
// Colour of error message
$error_colour = "red"; // Must use HTML compatible colour
// You can choose whether to display Powered by BELLonline PHP mailer script at the bottom of the mail form
// I understand that some peopme might not want to show our link, but we would appreciate it if you could 
// Possible options are yes or no
$showlink = "no";
// Thanks for using the PHP mailer script, I hope you find it useful!
?>


My test page:- http://ccgi.theblue.plus.com/Mailer/Mailer.php
 
Not sure why you've used php as opposed to a css file to set the input width, but still :)

All you need to do is copy a tr tag:

Code:
[COLOR=#000000][COLOR=#dd0000]<tr valign=\"top\"> 
      <td width=\"100\" align=\"right\">$lang_subject</td> 
      <td align=\"left\">
             <input name=\"mail_tel\" type=\"text\" class=\"mailform_input\" id=\"mail_tel\" style=\"width: $input_width;\" value=\"$mail_tel\" maxlength=\"64\">
       </td> 
    </tr> [/COLOR][/COLOR]
and then collect the value when the form is submitted E.g.

PHP:
$tel = $_POST['mail_tel'];
and add that to your mail body.

EDIT: just noticed your using extract to collect all your post values (btw, you should have added a type to that too - EXTR_SKIP). Your telephone number will be a variable called $mail_tel (assuming you use my code above).
 
Last edited:
Back
Top Bottom