PHP formmail
Hejsa.Jeg håber der er en der kan hjælpe med dette lille, men irriterende problem.
Jeg har dette formmail script der kun giver mig lov til at have disee:
mail("$din_mail", "Subject: New Bunker enguiry", $name, "From: $email" );
Hvis jeg tilføjer flere, vil den enten ikke sende, eller skriver den ikke alle dataerne ud korrekt.
Hvad kan være galt?
Formularen:
<?php
if(empty($_GET["send"])) { }
elseif($_GET["send"] == "1") { echo "Din mail er nu sendt!"; }
elseif($_GET["send"] == "2") { echo "Din mail er ikke sendt!"; }
elseif($_GET["send"] == "3") { echo "Din e-mail er forkert!"; }
?>
<form method="post" action="send.php">
<p>Name:
<input type="text" size="18" name="name">
</p>
<p>Company name:
<input type="text" size="18" name="company">
</p>
<p>Email:
<input type="text" size="18" name="email">
</p>
<p>Phone:
<input type="text" size="18" name="phone">
</p>
<p>Vessel name:
<input type="text" size="18" name="vessel">
</p>
<p>Port:
<input type="text" size="18" name="port">
</p>
<p>Qty/Grade:
<input type="text" size="18" name="grade">
</p>
<p>ETA:
<input type="text" size="18" name="eta">
</p>
<p class="comments">Comments:
<textarea id="message" name="comments"></textarea>
</p>
<br>
<p>
<input type="submit" name="send" value="Send">
</form>
PHP:
<?php
// Ændre $din_mail til din egen kontakt mail
$din_mail = "kasper@highlight.dk";
// En funktion for at se om den indtastede e-mail er korrekt user@domain.tld
function IsValidEmail($email) {
if(ereg("^.+@.+\..+$", $email))
{
return TRUE;
}
else
{
return FALSE;
}
}
// En funktion for at se om et felt indeholder "to:" og "cc:" da det er sådan spammere sender mails fra forms som ikke er sikret korrekt.
function SpamCheck($field) {
if(eregi("to:",$field) || eregi("cc:",$field))
{
return TRUE;
}
else
{
return FALSE;
}
}
if (!isset($_REQUEST['email'])) {
header("Location: a-bunker-enquiry.php?send=3");
}
elseif (isset($_REQUEST['email'])) {
// Checker om emne, afsender ikke indeholder "to:" og "cc:".
$mailcheck_from = SpamCheck($_REQUEST['email']);
// Checker om afsender er user@domain.tld
$validmail = IsValidEmail($_REQUEST['email']);
if ($mailcheck_from==TRUE) {
header("Location: a-bunker-enquiry.php?send=2");
} elseif ($mailcheck_subject==TRUE) {
header("Location: a-bunker-enquiry.php?send=2");
} elseif ($validmail==FALSE) {
header("Location: a-bunker-enquiry.php?send=3");
} else {
$name = $_POST['name'] ;
$company = $_POST['company'] ;
$email = $_POST['email'] ;
$phone = $_POST['phone'] ;
$vessel = $_POST['vessel'] ;
$port = $_POST['port'] ;
$grade = $_POST['grade'] ;
$eta = $_POST['eta'] ;
$comments = $_REQUEST['comments'] ;
mail("$din_mail", "Subject: New Bunker enguiry", $name, "From: $email" );
header("Location: a-bunker-enquiry.php?send=1");
}
}
?>