Jump to content

super simple mail subscription thing


hypnoticvibe

Recommended Posts

I am PHP illiterate. I tried to write a little subscription form like this:
[code]<?php
$address = $_POST['email'];
if ($address) {
  $to = "hypnoticvibe@gmail.com";
  $subject = "Subscribe Me";
  $body = "This is a request to add someone to the mailing list.";
  mail($to, $subject, $body, "From: " . $address . "\r\nX-Mailer: Subscription Script\r\n");
  echo "You have been subscribed.";
}
else {
  echo "Unsuccessful. Please try again.";
}
?>[/code]
Here is the mark-up that corresponds:
[code]<form method="post" action="subscribe.php"> 
<label for="email"><strong>E-Mail:</strong></label>
<input id="email" type="text" size="30" name="email" tabindex="1" />
<input type="submit" value="Subscribe" tabindex="2" />
</form>[/code]
What happens is that the person's "name" is always:
[quote]Your name[/quote]
Unfortuntely, replaying and called people "Your name" tends to confuse people, ;)
Link to comment
Share on other sites

Grrrrrrr. My mind is scattered these days. Sorry for confusion. I figured out how to make the subscription form by referencing the E-Mail form a friend wrote for me so I mixed the 2 up. Here's the E-Mail form that's having the problem I described:
[code][<?php
/*
* SPRONKware E-mail Form Handler
*
* (c)2006 Keith Humm - SPRONKware
*
* This script may be used, unmodified or modified, with recognition in the form of:
* "This script originally written by Keith Humm - SPRONKware / firestudio.
*  www.spronkware.com, www.firestudio.co.nz" at the top of the comments.
*/

/*
* Import (required - break if it doesn't exist) the SPRONKware Form Validation Library
* which includes sw_botCheck() and sw_validateEmailAddress().
*/
require('sw_formvalid_v1.0.php');


/*
* Sends an e-mail formatted to the correct array specification:
* ['to']: valid e-mail address to send e-mail to
* ['subject']: Subject text of e-mail
* ['contents']: Message contents, can contain HTML.
* ['headers']: Additional headers as defined in email RFC. Should include 'From: Name <e-mail@email.com>' at minimum.
*/
function sendEmail($tfsc_array)
{
mail( $tfsc_array['to'], $tfsc_array['subject'], $tfsc_array['contents'], $tfsc_array['headers'] );
}


/*
* SCRIPT BODY
*
* - Checks fields are filled out and of acceptable size.
* - Runs Spam Bot Check
* - Checks for e-mail address validity
* - Sends e-mail
* - (COMMENTED OUT) Sends automatic reply.
*/

// Check fields are filled out
if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message']))
{
echo("<h1>Error</h1><p>Please fill out all fields. Press the back button to go back.</p>");
}
// Check name and e-mail for acceptable size.
if(strlen($_POST['name']) > 255 || strlen($_POST['email'] > 255))
{
echo("<h1>Error</h1><p>You have exceeded the maximum length for a name or e-mail address. Press the back button to go back.</p>");
}

// Validate user and user agent with botCheck from FormValid library.
sw_botCheck();

// Validate E-mail Address
if(sw_validateEmailAddress($_POST['email']))
{
// Validation passed, format e-mail array
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$userEmail['to'] = "hypnoticvibe@gmail.com";
$userEmail['headers'] = "From: Your Name <".$email.">";
$userEmail['subject'] = "E-mail form submission from ".$name." <".$email.">";
$userEmail['contents'] = html_entity_decode($message);

// Send e-mail.
sendEmail($userEmail);


// Now redirect user to thanks page.
  header( "Location: thanks.php" );
  }
  else
  {
  // E-mail address not valid.
  echo("<h1>Error</h1><p>We have detected that the e-mail address entered is invalid. Please press back and check this, otherwise send e-mail using the address noted on the <a href=\"contact.html\">contact details</a> page.");
  }
?>[/code]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.