Avatar billede henni80 Nybegynder
15. februar 2003 - 23:50 Der er 22 kommentarer og
1 løsning

Formmail

Hej Eksperter

Jeg ved ikke helt om dette spg. hører til denne kategori men nu prøver ejg alligevel.....

Hvordan laver man en formmail som den der er på denne side (nederst)? http://per.rasmussen.name/links

Er der evt. nogle der har et link til en demo side eller lignende?
Avatar billede stalle Nybegynder
16. februar 2003 - 00:01 #1
Avatar billede nicklasb Nybegynder
16. februar 2003 - 00:09 #2
har ikke lige testet den.. men vil da gerne ligge den op så du kan se den..
men evt sådan noget som dette??

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
</head>
<body>

<form name="email" method="post" action="<? echo "$PHP_SELF"; ?>">

<table style="width: 100%;">
<tr>
  <td style="width: 20%;">Fra:</td>
  <td style="width: 80%;"><input type="text" name="fra" style="width: 100%;"></td>
</tr>
<tr>
  <td style="width: 20%;">Emne:</td>
  <td style="width: 80%;"><input type="text" name="emne" style="width: 100%;"></td>
</tr>
<tr>
  <td style="width: 20%;">Besked:</td>
  <td style="width: 80%;"><textarea name="besked" rows="4" cols="20" style="width: 100%;"></textarea></td>
</tr>
<tr>
  <td style="width: 20%;">&shy;</td>
  <td style="width: 80%;"><input type="button" name="send" value="Send »"></td>
</tr>
</table>

</form>

<?php

if (isset($send)) {

$dinemail = "nicklas@bornstein.dk";
mail("$dinemail","$emne","$besked","From: $fra\nReply-to: $fra");
}
?>
</body>
</html>
Avatar billede nicklasb Nybegynder
16. februar 2003 - 00:15 #3
hov.. havde vist nuppet lidt for meget fra den side du linkede til, for at gøre det hurtigt og lettere.. sorry.. men her er en version der virker.. har lige testet den.. du skal bare skrifte $dinemail ud med din egen email.. altså den mailen skal sendes til..

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
</head>
<body>

<form method="post" action="<? echo "$PHP_SELF"; ?>" style="display:inline;">

<table style="width: 100%;">
<tr>
  <td style="width: 20%;">Fra:</td>
  <td style="width: 80%;"><input type="text" name="fra" style="width: 100%;"></td>
</tr>
<tr>
  <td style="width: 20%;">Emne:</td>
  <td style="width: 80%;"><input type="text" name="emne" style="width: 100%;"></td>
</tr>
<tr>
  <td style="width: 20%;">Besked:</td>
  <td style="width: 80%;"><textarea name="besked" rows="4" cols="20" style="width: 100%;"></textarea></td>
</tr>
<tr>
  <td style="width: 20%;">&shy;</td>
  <td style="width: 80%;"><input type="submit" name="send" value="Tilmeld mig" style="width: 100%;"></td>
</tr>
</table>

</form>

<?php

if (isset($send)) {

$dinemail = "nicklas@bornstein.dk";
mail("$dinemail","$emne","$besked","From: $fra\nReply-to: $fra");
echo "Email er sendt!!";
}
?>
</body>
</html>

kan evt ses på http://www.bornstein.dk/emailme.php
Avatar billede nicklasb Nybegynder
16. februar 2003 - 00:23 #4
og så laver jeg endnu en fejl.. der skal selvfølgelig ikke stå "Tilmeld mig" på knappen.. så ret value="Tilmeld mig" til noget mere sigende så som fx "Send e-mail" eller et eller andet..
Avatar billede henni80 Nybegynder
16. februar 2003 - 00:46 #5
Til stalle:  Ja det vil være helt perfekt - men hvordan gør man?

Til nicklasb: Har lige testet din kode og den holder for vildt. Men hvordan får jeg boksene til at ligne dem på siden http://per.rasmussen.name/links? (Altså nogle bokse uden "inner-shadows")
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:03 #6
det er jo bare noget simpelt css der skal til..

sæt denne ind imellem <head> og </head> et sted:

<style>
.boxes {
    color: #000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px solid #808080;
    background-color: #ffffff;
}
</style>

og sæt så en class="boxes" på alle boxene.. så scriptet kommer til at se således ud:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
</head>
<body>

<form method="post" action="<? echo "$PHP_SELF"; ?>" style="display:inline;">

<table style="width: 100%;">
<tr>
  <td style="width: 20%;">Fra:</td>
  <td style="width: 80%;"><input type="text" name="fra" style="width: 100%;" style="boxes"></td>
</tr>
<tr>
  <td style="width: 20%;">Emne:</td>
  <td style="width: 80%;"><input type="text" name="emne" style="width: 100%;" style="boxes"></td>
</tr>
<tr>
  <td style="width: 20%;">Besked:</td>
  <td style="width: 80%;"><textarea name="besked" rows="4" cols="20" style="width: 100%;" style="boxes"></textarea></td>
</tr>
<tr>
  <td style="width: 20%;">&shy;</td>
  <td style="width: 80%;"><input type="submit" name="send" value="Tilmeld mig" style="width: 100%;" style="boxes"></td>
</tr>
</table>

</form>

<?php

if (isset($send)) {

$dinemail = "nicklas@bornstein.dk";
mail("$dinemail","$emne","$besked","From: $fra\nReply-to: $fra");
echo "Email er sendt!!";
}
?>
</body>
</html>
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:05 #7
Altså så starten af scriptet kommer til at se således ud:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
<style type="text/css">
.boxes {
    color: #000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px solid #808080;
    background-color: #ffffff;
}
</style>
</head>
<body>

hvis du skulle være i tvivl ;)
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:08 #8
glemte lige at ændre di email til min egen - så du har måske lige fået et par test mail....tester lige <stylen>...
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:10 #9
hov.. der skal selvfølgelig stå class="boxes"

Jeg tror sku jeg er ved at være træt.. lol.. kunne være jeg snart skulle putte.. det tror jeg ville være en god ting..

men skrift alle style="boxes" ud med class="boxes"

så skulle det virke..
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:18 #10
haha skulle lige til at spørge om der ikke var noget galt med det style fordi det allered stod en gang i sætningen...prøver lige med class...2 min
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:27 #11
tak tak du styrer :-)
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:27 #12
man kunne også evt prøve at validere mailadressen, og teste om der står noget i emne-feltet og besked feltet..
prøv at tjekke mit eksempel igen..

http://www.bornstein.dk/emailme.php

så prøv bare at klikke send.. så skriver den at du har glemt at udfylde de forskellige felter..

jeg har ud over dette også gjordt så den husker hvad du har tastet ind i de forskellige felter.. dette skal selvfølgelig kun gøres, hvis IKKE mailen bliver sendt, pga. en af de ovenstående krav.. men det må blive i morgen.. ind til videre må du leve med denne..

koden til det der ligger oppe nu, ser således ud :

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
      <style type="text/css">
.boxes {
    color: #000000;
    font-family: Verdana;
    font-size: 11px;
    border: 1px solid #808080;
    background-color: #ffffff;
}
</style>
</head>
<body>

<form method="post" action="<? echo "$PHP_SELF"; ?>" style="display:inline;">

<table style="width: 100%;">
<tr>
  <td style="width: 20%;">Fra:</td>
  <td style="width: 80%;"><input type="text" name="fra" style="width: 100%;" class="boxes"<? if (isset($fra)) { echo " value=\"$fra\""; } ?>></td>
</tr>
<tr>
  <td style="width: 20%;">Emne:</td>
  <td style="width: 80%;"><input type="text" name="emne" style="width: 100%;" class="boxes"<? if (isset($emne)) { echo " value=\"$emne\""; } ?>></td>
</tr>
<tr>
  <td style="width: 20%;">Besked:</td>
  <td style="width: 80%;"><textarea name="besked" rows="4" cols="20" style="width: 100%;" class="boxes"><? if (isset($besked)) { echo "$besked"; } ?></textarea></td>
</tr>
<tr>
  <td style="width: 20%;">&shy;</td>
  <td style="width: 80%;"><input type="submit" name="send" value="Send mail" style="width: 100%;" class="boxes"></td>
</tr>
</table>

</form>

<?php

if (isset($send)) {
if (strlen($besked) > 0) {
  if (strlen($emne) > 0) {
  if (preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $fra)) {

$dinemail = "nicklas@bornstein.dk";
mail("$dinemail","$emne","$besked","From: $fra\nReply-to: $fra");
echo "Email er sendt!!";

  } else { echo "Den intastede email er ikke en gyldig mail!"; }
  } else { echo "Du har glemt at udfylde emne-feltet!"; }
} else { echo "Du har glemt at udfylde besked-feltet!"; }
}
?>
</body>
</html>
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:28 #13
men jeg er klar på at give 30 point mere for et par ekstra spg. mht. denne formmail - hvis du er interesseret.

Eller skal jeg bare oprette et helt nyt spg?
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:29 #14
Du læser jo mine tanker - HVAD SKER DER LIGE HER - det var netop det jeg skulle til at spørge dig om
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:29 #15
du spørger bare.. er for sin vis lige glad med pointene.. men jeg vil da gerne prøve at svare hvis jeg kan.. :)
Avatar billede nicklasb Nybegynder
16. februar 2003 - 01:30 #16
hehe.. oki.. men bare spørg løs hvis der skulle være andet.. så vil jeg se om jeg kan svare på det i morgen.. jeg tror jeg går i seng nu, inden jeg skal op igen.. :)
Avatar billede henni80 Nybegynder
16. februar 2003 - 01:31 #17
FOR COOOOOOOL - dette er gået hen og blevet en af de bedste aftner i lang tid :-) sidder lige og smiler lidt... jeg vil gerne oprette et nyt spg med 30 point for den sidste besvarelse.
Avatar billede nicklasb Nybegynder
16. februar 2003 - 12:10 #18
hej igen.. og godmorgen :)

Jeg har rettet lidt i scriptet, så den nu tjekker det hele på en gang.. Altså så den kan printe de forskellige fejlmedelelser ud på samme tid. Jeg har så rykket afsendingen af mailen op i toppen af scriptet.. Dette så jeg senere nede i mail-formen kan tjekke om mailen er sendt, og den derfor ikke skal huske hvad jeg lige har indtastet.
Altså hvis mailen af en eller anden grund ikke bliver sendt, husker den det. Og hvis mailen bliver sendt, sletter den så det du har skrevet.. Smart ikk? ;)

Du kan se hvordan det ser ud her:
http://www.bornstein.dk/emailme.php
Avatar billede nicklasb Nybegynder
16. februar 2003 - 12:16 #19
men det lyder godt at du kan bruge det og er glad for det..
Man kunne også bygge et spam-skjold på, så man fx ikke kan sende to mail efter hinanden, før der er gået 15 min, med hjælp fra en MySQL-database..

Men sådan kan man jo blive ved.. Det er jo KUN en mailform ;) Så håber det er godt nok som det er nu.. ?
Avatar billede henni80 Nybegynder
16. februar 2003 - 13:41 #20
En lille og sidste ting til:

Hvordan ændre jeg fonttypen på disse sætninger???

Mailen kunne ikke sendes, grundet :

Den intastede email er ikke en gyldig mail!
Du har glemt at udfylde emne-feltet!
Du har glemt at udfylde besked-feltet!

------------
jeg vil gerne anvende: <font color="#CCCCCC" size="2" face="Geneva, Arial, Helvetica, san-serif"> - men jeg synes ikke jeg kan få det til at virke.
------------

Og ja jeg er total glad for den tid du har brugt på det, jeg var helt oppe at køre i nat :)
Avatar billede henni80 Nybegynder
16. februar 2003 - 13:43 #21
ps. hvordan får jeg de nye ændringer med som du har lavet idag? - man kan vel ikke bare højreklikke på din side og "nuppe" koden?
Avatar billede nicklasb Nybegynder
16. februar 2003 - 15:16 #22
hov.. sorry.. jeg skulle nok ikke have været stået op alligevel :)

Jeg har rettet den til med dine nye ønsker også:

<?php

if (isset($send)) {

if (strlen($besked) > 0) { $krav1 = "yes"; }
else { $fejl1 = "Du har glemt at udfylde besked-feltet!"; }

if (strlen($emne) > 0) { $krav2 = "yes"; }
else { $fejl2 = "Du har glemt at udfylde emne-feltet!"; }

if (preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $fra)) { $krav3 = "yes"; }
else { $fejl3 = "Den intastede email er ikke en gyldig mail!"; }

if ((isset($krav1)) && (isset($krav2)) && (isset($krav3))) {

$dinemail = "nicklas@bornstein.dk";
mail("$dinemail","$emne","$besked","From: $fra\nReply-to: $fra");
$report = "E-mailen er sendt!!";
$sendt = "yes";
} else {
$report = "Mailen kunne ikke sendes, grundet :"; }
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>E-mail</title>
<style type="text/css">
.boxes {
    color: #000000;
    font-family: Geneva, Arial, Helvetica, San-serif;
    font-size: 11px;
    border: 1px solid #808080;
    background-color: #ffffff;
}

.text {
    color: #cccccc;
    font-size: 12px;
    font-family: Geneva, Arial, Helvetica, San-serif;
}
</style>
</head>
<body>

<form method="post" action="<? echo "$PHP_SELF"; ?>" style="display:inline;">

<table style="width: 100%;">
<tr>
  <td style="width: 20%;" class="text">Fra:</td>
  <td style="width: 80%;"><input type="text" name="fra" style="width: 100%;" class="boxes"<? if ((isset($fra)) && (!isset($sendt))) { echo " value=\"$fra\""; } ?>></td>
</tr>
<tr>
  <td style="width: 20%;" class="text">Emne:</td>
  <td style="width: 80%;"><input type="text" name="emne" style="width: 100%;" class="boxes"<? if ((isset($emne)) && (!isset($sendt))) { echo " value=\"$emne\""; } ?>></td>
</tr>
<tr>
  <td style="width: 20%;" class="text">Besked:</td>
  <td style="width: 80%;"><textarea name="besked" rows="4" cols="20" style="width: 100%;" class="boxes"><? if ((isset($besked)) && (!isset($sendt))) { echo "$besked"; } ?></textarea></td>
</tr>
<tr>
  <td style="width: 20%;">&shy;</td>
  <td style="width: 80%;"><input type="submit" name="send" value="Send mail" style="width: 100%;" class="boxes"></td>
</tr>
</table>

</form>
<?
if (isset($report)) { echo "<div class=\"text\">$report</div><br><br>"; }
if (isset($fejl3)) { echo "<div class=\"text\">$fejl3</div><br>"; }
if (isset($fejl2)) { echo "<div class=\"text\">$fejl2</div><br>"; }
if (isset($fejl1)) { echo "<div class=\"text\">$fejl1</div><br>"; }
?>
</body>
</html>

håber du kan bruge det :)
Avatar billede henni80 Nybegynder
16. februar 2003 - 18:34 #23
Hvad kan jeg sige andet end at det bare er alt for godt. Er næsten flov over at jeg kun satte spørgsmålet til 30 point.

Og endnu engang MANGE TAK for hjælpen. Formmailen opfylder nu alle mine krav :) - helt kanon - jeg takker af
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