Mailform der også indsætter i database.
HejJeg har har lavet en mail form der skal sende en mail men også putte data i en database.
Men den virker ikke. Den sender ikke mail og indsætter ikke noget i databasen.
Scriptet består af to filer: selve mailformen og php-koden
Mailform:
----------------
<script language="JavaScript">
<!--
function valider () {
switch ("") {
case document.tilmeld.name.value:
window.alert ("Du har glemt at indtaste dit navn");
return false;
break;
case document.tilmeld.aargang.value:
window.alert ("Du har glemt at indtaste din årgang");
return false;
break;
case document.tilmeld.liniefag.value:
window.alert ("Du har glemt at indtaste dit liniefag");
return false;
break;
case document.tilmeld.email.value:
window.alert ("Du har glemt at indtaste din email-adresse");
return false;
break;
}
}
-->
</script>
Da julefrokosten er for alle tidligere elever på Højskolen og ikke kun medlemmer af elevforeningen og tidligere elever med adgang til forummet, så er det lavet sådan at du skal indtaste navn, årgang, liniefag og email selvom du er logget ind.
Se de tilmeldte nederst på siden.
<div class="style3" id="formular">
<form name="tilmeld" method="post" action="viewpage.php?page_id=2">
<p><strong>Husk at udfylde alle felter med *</strong></p>
<label for="t1">*Navn: </label>
<br />
<input id="t1" type="text" name="name" />
<br />
<br />
<label for="t7">*Årgang: </label>
<br />
<input id="t7" type="text" name="aargang" />
<br />
<span class="style4">F.eks.: <em>Forår 2003</em> eller hvis du har gået på to hold <em>Efterår 2002 og Forår 2003</em>.</span></p>
<!--
<form id="t8" name="jubilar" method="post" action="sender.php">
-->
<!--
</form>
!-->
<label for="t9">*Liniefag:</label>
<br />
<input id="t9" type="text" name="liniefag" />
<br /><br />
<label for="t2">*Email:</label>
<br />
<input id="t2" type="text" name="email" />
<br /><br />
<input id="t3" type="hidden" name="subject" value="Tilmelding til Julefrokosten 2006"/>
<label for="t4">Skriv en bemærkninger (det kan f.eks. være en hilsen eller om du er vegetar):</label>
<br />
<textarea id="t4" name="message" rows="7" cols="47"></textarea>
<br />
<label for="t5">Ønsker du en kvitering (kopi af de intastede informationer) tilsendt?</label>
<input type="checkbox" id="t5" name="customer_copy" checked="checked" />
<label for="t6"> </label> <br /><br />
<input id="t6" type="submit" name="submit" value=" Send Tilmelding "
onClick="java script:return valider()" />
<input type="reset" value=" Slet alt " />
</form>
<p>Ovenstående informationer sendes til Marianne på højskolens kontor.</p>
</div>
----------------
PHP-Koden:
-----------------------
<?php
include 'dbforbindelse.inc.php';
if (isset($_POST['submit']))
{
//Data fyldes i databasen
$name = $_POST['name'];
$email = $_POST['email'];
$besked = $_POST['message'];
$aargang = $_POST['aargang'];
$liniefag = $_POST['liniefag'];
$sql = "INSERT INTO tilmeldte SET
navn='$name',
email='$email',
besked='$besked',
liniefag='$liniefag',
ankomst='$ankomst',
dato=LOCALTIMESTAMP()";
if (@mysql_query($sql)) {
if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
!empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse
!empty($_POST['subject']) && // tjek, at der er skrevet et subject
!empty($_POST['aargang']) && // tjek, at der er skrevet en argang
!empty($_POST['liniefag']) && // tjek, at der er skrevet et liniefag
// her følger sikringen mod spambotter
!strpos($_POST['name'], "stovringhojskole.dk") && // tjek, at dit domæne ikke er skrevet i feltet "navn"
//!strpos($_POST['email'], "stovringhojskole.dk") && // tjek, at dit domæne ikke er skrevet i feltet "email"
!strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
!eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i "navn"
!eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i "navn"
!eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i "email"
!eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i "email"
$mail_body="
Hej Marianne.
Jeg vil gerne tilmelde mig til Julefrokosten 2006.
Med venlig hilsen
$name
$aargang
Liniefag: $liniefag
Evt. bemærkning:
$besked";
$headers="From: ".$_POST['name']."<".$_POST['email'].">\r\nContent-Type: text/plain; charset=iso-8859-1\r\nContent-Disposition: inline\r\nContent-Transfer-Encoding: 8bit";
if (@$_POST['customer_copy'])
{
$headers .= "\r\nBcc: ".$_POST['email'];
}
if (@mail("jost@dicksmock.dk", strip_tags($_POST['subject']),
stripslashes(strip_tags($mail_body
/*'message' . 'aargang' . 'jubilar' . 'liniefag' . 'ankomst'*/)), $headers))
//Er det den rigtige måde at kombinere flere ting i en mail?
{
echo '<p>Du er nu tilmeldt sommerfesten. Du kan se <a href="viewpage.php?page_id=1">her</a> hvem der også er tilmeldt. Hvis du alligevel ikke kan komme så skynd dig at skrive en mail til Marianne på marianne@stovringhojskole.dk, så Christa ikke laver for meget mad.<br />' ;
} else {
echo '<p>Der skete en fejl, <a href="tilmeld.php">prøv igen</a> <br />FEJL: ' . mysql_error() . '</p>';
}
}
}
?>
---------------
Er der nogen der har et bud?
Mvh
Jost
