Board index   FAQ   Search  
Register  Login
Board index php forum :: php coding PHP coding => Mail

e-mail validation

the mail() function

Moderators: macek, egami, gesf

e-mail validation

Postby vietboy505 » Thu Mar 02, 2006 7:27 pm

I need help on the e-mail form to work, can any one help me?

I want the form to check if everything is inputs correct such as an valid e-mail.

Code: Select all
<?php

function determineEmail($Purpose)
{
        if($Purpose == "General") {
                $mailTo="Name1 <name1@mail.com>, Name2 <name2@mail.com>";

        } elseif($Purpose == "Customer") {
                $mailTo="Name2 <name2@mail.com>, Name3 <name3@mail.com>";
        } else {
        //proably won't be in here
                $mailTo="name5@mail.com";
        }
}

if(!preg_match("/^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]
*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$/",$_POST["Email"])) {
//email address is invalid
die("Invalid Email");
}

if(!empty($message)){ // only send if the form has been filled out.
  $mailHeaders="From : $Name [$Email]";
  $mailSubject="$Purpose from $Name";
  $mailBody="Sent by $Name ($Email) on " . date('M j,Y h:i:s') . " \n\n";
  $mailBody.="Message : \n\n $message";

  mail($mailTo, $mailSubject, $mailBody, $mailHeaders);
  echo "<b>Your email has been sent!</b><br>";
}


echo('<form name="email_form" method="post">
<input type="hidden" name="require" value="Name,Email,Purpose,Comments">
<table>
<tr>
    <td align="right">Name:</td>
    <td><input name="Name" size="25"></td>
</tr>

<tr>
    <td align="right">E-mail:</td>
    <td><input name="Email" size="25"></td>
</tr>
<tr>
    <td align="right">Purpose:</td>
    <td><select name="Purpose">
    <option value="General">General
    <option value="Customer">Customer
    </select>
    </td>
</tr>

<tr>
    <td align="right">Comments:</td>
    <td><textarea name="Comments" rows="10" cols="40"></textarea>
    </td>
</tr>

<tr>
    <td colspan="2" align="center"><input type="submit" value="Submit" name="ema
il_form">
    <input type="reset" value="Reset" name="reset"></td>
</tr>
</table>
</form>');
?>

:help:
vietboy505
New php-forum User
New php-forum User
 
Posts: 9
Joined: Thu Mar 02, 2006 6:07 pm

Postby Coditor » Fri Mar 03, 2006 2:15 am

Hi,

A few issues:

• determineEmail is never called
• determineEmail doesn't return a value and cannot change the $mailTo variable because it's not global
• you're using $Name, $Email etc which only works if register_globals is on. Otherwise you have to use $_POST{"Name"} and $_POST{"Email"}
• I think the header should be "From: $Name <$Email>" - with <> instead of []

Coditor
Coditor
New php-forum User
New php-forum User
 
Posts: 243
Joined: Wed Feb 01, 2006 9:18 am
Location: Netherlands


Return to PHP coding => Mail

Who is online

Users browsing this forum: No registered users and 1 guest

Sponsored by Sitebuilder Web hosting and Traduzioni Italiano Rumeno and antispam for cPanel.

cron