Dagens datum: 2010-09-05 Adela, Heidi Kundzon Startsidan

Guide : E-postformulär med PHP

Med PHP:s mail()-funktion kan du skicka e-post direkt från ett formulär på din hemsida.

Rekommendera till en vän

Ett användbart skript är för rekommendation, där besökare på din hemsida kan fylla i ett formulär med e-postadressen till en kompis och skicka, så får kompisen ett meddelande via e-post med rekommendation om din sida.

Det fungerar såhär. En sida har formuläret för rekommendation. I vårt exempel ber vi om namnet på avsändaren (dvs personen som skickar formuläret), namnet på mottagaren och e-post till mottagaren. Sidan ser ut såhär:

minsida.html

<html>
<head></head>
<body>

<form action="skicka.php" method="POST">
Ditt namn <input type=text name="avs"><br>
Din väns namn <input type=text name="mottagare"><br>
Din väns e-post <input type=text name="epost"><br>
<input type=submit value="Skicka">
</form>

</body></html>

skicka.php

<html>
<head></head>
<body>

<?php
if ( !empty($_POST["epost"]) )
{
  $mottagare = $_POST["mottagare"] . " <" . $_POST["epost"] . ">";
  $amne = $_POST["avs"] . " har rekommenderat en sajt";
  $meddelande = "Här skriver du en rekommendation om din hemsida.";
  mail($mottagare, $amne, $meddelande);
  echo "Tack för att du skickade en rekommendation.";
}
else
  echo "Ingen e-postadress skickades";
?>

</body></html>

Såhär fungerar skriptet

minsida.html skickar informationen till PHP-sidan skicka.php. skicka.php tar informationen och utför vissa instruktioner, beroende på vilken information som skickas. Här är raderna i skriptet förklarade:

<?php

Här börjar PHP-skriptet på sidan.

if ( !empty($_POST["epost"]) )

Om det som står i if()-satsen värderas som sant, utförs instruktionerna mellan { och }. I if-satsen utvärderas om fältet "epost" skickats och inte är tomt. Det är enkel felsökning, ifall besökaren skulle ha utelämnat e-postfältet. Du bör alltid ha noggrann felsökning med, men i detta exemplet gör vi en enkel felsökning för att illustrera hur det fungerar.

$mottagare = $_POST["mottagare"] . " <" . $_POST["epost"] . ">";

Variabeln $mottagare sätts ihop av fältet med mottagarens namn och e-post. Värdet, om man skickar Jonas Jonsson och jonas@minsajt.se, blir "Jonas Jonsson <jonas$minsajt.se>". E-postadressen måste vara en korrekt formad adress, annars kan mailet inte skickas.

$amne = $_POST["avs"] . " har rekommenderat en sajt";
$meddelande = "Här skriver du en rekommendation om din hemsida.";

Ämnet, variabeln $amne, får värdet "Mats Matsson har rekommenderat en sajt", om avsändaren fyllts i som Mats Matsson. $meddelande, liksom $amne, kan vara vilken sträng som helst i PHP.

mail($mottagare, $amne, $meddelande);

Funktionen mail() skickar iväg meddelandet. Lägg märke till att ordningen på variablerna måste vara till-adress, ämne och meddelande.

echo "Tack för att du skickade en rekommendation.";

Funktionen echo skriver ut en rad till webbläsaren.

}
else
echo "Ingen e-postadress skickades";

Slut på if-satsen. Om inte if-satsen är sann, körs else. I detta fallet, om avsändaren inte hade fyllt i en e-postadress, hade denna raden skrivits ut.

?>

Slut på PHP-koden.

Testa själv. Mer information om kommandon i PHP finns under länkar. Där kan du bland annat hitta mer information om hur du använder mail().

Tipsa en vän om denna guiden

Ditt namn Din e-post
Mottagarens namn Mottagarens e-post