Lav en simpel mailform i PHP

 

Den følgende artikel vil kort gennemgå opbygningen af en mailform via PHP’s mail()-funktion.


Stort set alle sider på www har en kontaktside hvorpå der findes en mailform, som gør det muligt for brugeren at indtaste noget tekst og sende det direkte til personen bag siden. Teknikken bag disse mailforms er meget simple, vi skal bruge PHP’s mail()-funktion samt en ganske almindelig form med nogle tekst felter.

PHP’s mail()-funktion er simpel:
mail("Mail", ”Emne”, "Besked", "Headers");

Blot ved at se på ovenstående skulle det være til at overskue hvad der gør hvad. Først angiver man hvor mailen skal sendes til. Emnet i mailen bliver defineret som nummer to og selve beskeden som nummer tre. Udover disse tre er der de såkaldte ’headers’. Her kan f.eks. defineres hvilken mail-adresse mailen kommer fra eller hvilken mail der kan svares tilbage på.
De fleste, hvis ikke alle, moderne editorer såsom Dreamweaver eller sågar Frontpage kan lave HTML-forms, hvilket også skal bruges for at lave denne mailform, da det er noget editorerne kan lave helt automatisk, vil jeg ikke komme nærmere end på dette.
Det følgende script er en funktionel mailform, hvor koden er kommenteret undervejs. Kommentarerne vil være indrammet af /*…*/

<?php
/* Først tjekker vi om der overhovedet er skrevet et navn i vores mailform efter der er blevet trykket udfør, man kan også tjekke om nogle af alle de andre felter er udfyldt, hvis denne if fjernes vil der blive sendt en mail hver gang siden bliver loaded. */
if(isset($_POST['navn'])){
/* Her kommer så den beskrevet mail()-funktion, i en normal plaintext mail laves linieskift med \n, som det kan ses er der som en ‘header’ tilføjet så der kan ses brugerens e-mail og navn */
mail("mail@udbyder.dk", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
/* Vi fortæller brugeren at e-mailen nu er sendt */
echo "Din mail er nu sendt";
}
?>

/* Her er så HTML-formen, det eneste som måske ikke virker bekendt er $_SERVER['PHP_SELF']; denne variabel indeholder simpelt stien til den side vi er på, dermed er det helt ligegyldigt om du kalder siden for hej.php eller kontakt.php */
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Navn: <input type="text" name="navn"><br>
Email: <input type="text" name="mail"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>

Hvis du ønsker at bruge PHP’s mail()-funktion til lidt mere kan du se nærmere i PHP-manualen:
http://dk.php.net/manual/en/function.mail.php


Skrevet af: ahv@it.dk



Skrevet af: ahv@it.dk | Dato : 2004-02-18 11:4 | Læst : 15276 gange