Avatar billede andersblarsen Nybegynder
23. december 2003 - 00:52 Der er 14 kommentarer og
1 løsning

Simpel mailformular i PHP

Hejsa,

Jeg søger en simpel mailformular i PHP, hvor man skal have mulighed for at indtaste site navn, sin e-mail og så ellers et tekstfelt til selve beskeden.

Når man trykker "Send" skal indtastningerne sendes direkte til en e-mailadresse.

//Anders
Avatar billede andersblarsen Nybegynder
23. december 2003 - 00:55 #1
Glemte jeg at skrive, at jeg skal have mulighed for at ændre på formularens "desig" -- hvordan gør jeg i øvrigt det :S
Avatar billede andersblarsen Nybegynder
23. december 2003 - 00:55 #2
desig = design
Avatar billede Slettet bruger
23. december 2003 - 00:58 #3
Prøv at se her: http://www.webcafe.dk/artikler/php/mail/

Du kan sagtens tilføje flere felter.
Avatar billede Slettet bruger
23. december 2003 - 00:59 #4
Og selve formularens design er fuldstændigt uafhængigt af PHP. Det er bare at lave en passende HTML og CSS kode.
Avatar billede andersblarsen Nybegynder
23. december 2003 - 01:01 #5
mjaaa...Jeg har været forbi webcafe'en, men jeg søger bare at se noget kildekode som jeg kan smide ind i min egn PHP-fil....Kan du/I hjælpe med det?
Avatar billede Slettet bruger
23. december 2003 - 01:31 #6
Her er to filer:

1: mail.html

<html>
<head>
<title>Send mail</title>
</head>
<body>
<form action="mail.php" method="post">
Navn: <input type="text" name="navn" size="30"><br>
Email: <input type="text" name="adr" size="30"><br>
  <textarea name="besked" rows="10" cols="20"></textarea><br>
  <input type="submit" value="Send simpel hilsen">
</form>
</body>
</html>


2: mail.php
<?php

$besked = $_REQUEST["besked"];
$adr=$_REQUEST["adr"];
$navn=$_REQUEST["navn"];
$epost="din@adresse";

mail($epost,
    "Mail fra web-formular",
    $besked,
    "From: $adr\r\nReply-to: $epost");

echo "Mail er sendt til $epost";
echo "<p>Tilbage til <a href=\"./\">artiklen</a>";

?>
Avatar billede andersblarsen Nybegynder
23. december 2003 - 01:58 #7
Ved du hvad Sandbox...Det virker fandme....Helt i orden....Takker makker!!!
Avatar billede andersblarsen Nybegynder
23. december 2003 - 01:59 #8
I øvrigt....hvordan får jeg den bekræftelsesmeddelse der kommer frem, til at stå under <textarea>?
Avatar billede Slettet bruger
23. december 2003 - 02:06 #9
Så skal du slå dem sammen til en fil, som vi kalder mail.php. Den kunne se således ud:

<?php

if (isset($_REQUEST['besked']) && isset($$_REQUEST["adr"]) && isset($_REQUEST["navn"])){
  $besked = $_REQUEST["besked"];
  $adr=$_REQUEST["adr"];
  $navn=$_REQUEST["navn"];
  $epost="din@adresse";

  mail($epost,
    "Mail fra web-formular",
    $besked,
    "From: $adr\r\nReply-to: $epost");

  $beskedsendt="<p>Mail er sendt til $epost.</p>";

} else {$beskedsendt='';}
?>

<html>
<head>
<title>Send mail</title>
</head>
<body>
<form action="mail.php" method="post">
Navn: <input type="text" name="navn" size="30"><br>
Email: <input type="text" name="adr" size="30"><br>
  <textarea name="besked" rows="10" cols="20"></textarea><br>
  <input type="submit" value="Send simpel hilsen">
</form>
<?php echo $beskedsendt; ?>
</body>
</html>
Avatar billede Slettet bruger
23. december 2003 - 02:08 #10
I den linie i toppen med if kontrollerer jeg, at de krævede felter er udfyldt.
Avatar billede andersblarsen Nybegynder
23. december 2003 - 02:19 #11
Ser fint ud - mange tak!....i øvrigt lige mens jeg har dig...css-kode til styling af "forms"...har du dem liggende til en gang copy/paste :P
Avatar billede Slettet bruger
23. december 2003 - 02:23 #12
Nej, ikke noget der ser smart ud. Jeg er ikke specielt CSS-haj.
Avatar billede andersblarsen Nybegynder
23. december 2003 - 02:30 #13
Lige en sidste ting:

Jeg skal have hele mailformen smidt ind i en tabel som har 2 kolonner og 2 rækker....Hvordan sætter jeg min mailform ind i den??

Desuden skal jeg have to ekstra inputs. En til "Virksomhed" og en til "Telefon"....Hvis du gider, vil du så ikke smide dem ind i den form?
Avatar billede andersblarsen Nybegynder
23. december 2003 - 02:32 #14
Det skal dog KUN være et krav at man har indtastet sit navn og sin mail......Ved godt det er meget at spørge om, men det lyder som om du har styr på-ed :P
Avatar billede Slettet bruger
23. december 2003 - 02:47 #15
Jeg går ud fra at selve besked-feltet skal være udfyldt?
Hvis ikke, skal if-linien rettes til
if (isset(isset($_REQUEST["adr"]) && isset($_REQUEST["navn"])){

Her er den direkte til at smide i en tabelcelle. Hvis den skulle fordeles i flere celler, må du fortælle mere præcist. Desuden kommer du til at vente til efter jul, for jeg smutter i seng nu og får ikke tid til internet imorgen.

<?php

if (isset($_REQUEST['besked']) && isset($_REQUEST["adr"]) && isset($_REQUEST["navn"])){

  $adr=$_REQUEST["adr"];
  $navn=$_REQUEST["navn"];
  $epost="din@adresse";
  $besked="Navn: $navn\n";
  $besked.="Virksomhed: {$_REQUEST["virksomhed"]}\n";
  $besked.="Telefon: {$_REQUEST["tlf"]}\n\n";
  $besked.=$_REQUEST["besked"];
  mail($epost,
    "Mail fra web-formular",
    $besked,
    "From: $adr\r\nReply-to: $epost");

  $beskedsendt="<p>Mail er sendt til $epost.</p>";

} else {$beskedsendt='';}
?>

<form action="mail.php" method="post">
Felter markeret med * skal udfyldes.<br>
Navn: *<input type="text" name="navn" size="30"><br>
Email: *<input type="text" name="adr" size="30"><br>
Virksomhed: <input type="text" name="virksomhed" size="30"><br>
Telefon: <input type="text" name="tlf" size="30"><br>
  *<textarea name="besked" rows="10" cols="20"></textarea><br>
  <input type="submit" value="Send besked">
</form>
<?php echo $beskedsendt; ?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester