Avatar billede rangerbs Nybegynder
09. juli 2003 - 20:43 Der er 37 kommentarer og
1 løsning

Let formmail

Hej eksperter...

Er der nogen som kan lave en "formmail" til mig i html eller php? (helst i html)
Jeg har lavet et lille billedet af hvordan jeg ønsker den ser ud:
http://jeppedk.users.whitehat.dk/mail.gif

bredden på de 2 øverste felter skal være 110px på dem begge og feltet hvor man skriver i skal så dække det hele under dem :D
knappen skal bare være den der standard knap...

Også ved jeg ikke hvor svært det er, men hvis i kunne lave en nulstilings funktion ville det være perfekt :D (ikke noget krav)

mvh Ranger
Ps: skriv hvis der er nogen spm.
Avatar billede fangel Nybegynder
09. juli 2003 - 20:48 #1
du kan ikke lave en formmail i ren HTML, du skal have fx noget PHP bagved, til at afsende mailen!

du må selv kunne stille det op, det programmerings mæssige kan jeg godt hjælpe med, men design må du virkeligt selv klare!

---

si til hvis du skal bruge det hjælp til programmeringen

Morten
Avatar billede rangerbs Nybegynder
09. juli 2003 - 21:10 #2
Ja, tak.. :D

Jeg vil godt have hjælpe til programmeringen, da jeg slet ikke kan noget php osv. kun html/css :D

mvh Ranger
Avatar billede htmlaga Nybegynder
09. juli 2003 - 21:12 #3
Her har du din formular i html, så må du få dea_pg til at hjælpe dig med at få den til at fungere:

<form name="formmail">
<input type="text" name="Name" style="margin: 5px; width: 110px;"><input type="text" name="e-mail" style="margin: 5px; width: 100px;"><br>
<textarea rows="6" name="besked" style="margin: 5px; width: 220px;"></textarea><br>
<input type="submit" name="send" value="send" style="margin: 5px;"><input type="reset" name="nulstil" value="nulstil" style="margin: 5px;">
</form>
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:16 #4
<form method="post" action="mail.php">
<input type="text" name="navn" size="25" style="font-size: 8 pt; font-family: Tahoma; border: 1 solid #000000" value="Navn:">  <input type="text" name="email" size="25" style="font-size: 8 pt; font-family: Tahoma; border: 1 solid #000000" value="E-mail:">
<br>
<textarea rows="6" name="besked" cols="55" style="font-family: Tahoma; font-size: 8 pt; border: 1 solid #000000">Besked:</textarea>
<br>
<input type="submit" value="Send" name="send" style="font-family: Tahoma; font-size: 8 pt; font-weight: bold; background-color: #FFFFFF; border: 1 solid #000000">&nbsp;&nbsp;<input type="reset" value="Nulstil" name="reset" style="font-family: Tahoma; font-size: 8 pt; font-weight: bold; background-color: #FFFFFF; border: 1 solid #000000">
</form>
<?php
if ($_POST['send']) {
    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $besked = $_POST['besked'];
        $mailtil = "DIN MAIL!!!";
    $mailfra = "$email";
            mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
            echo "<b>Din besked er sendt!</b>";
}
?>

___________
Udfyld:
DIN MAIL!!!
...og der hvor der står: action="mail.php" til det din side hedder!

test her: http://wildness.dk/mail.php
Avatar billede rangerbs Nybegynder
09. juli 2003 - 21:16 #5
dea_pg --> kan du få den til at virke? :D

htmlaga --> tak for det :D
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:18 #6
Det var et svar, men jeg kan se, at du allerede får det lavet!
Avatar billede fangel Nybegynder
09. juli 2003 - 21:22 #7
OK...

et meget simpelt ex: (du kan ændre designet selv, men nu står det ca. rigtigt)

--- formmail.php ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>FormMail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
/*
Email script taget fra http://php.net/mail
Tilrettet af Morten Fangel
*/
if(isset($_POST['email'], $_POST['navn'], $_POST['indhold'])){
  /* recipients */
  $to  = "din@mail.dk";

  /* subject */
  $subject = "Email fra " . $_POST['navn'];

  /* message */
  $message = '
<html>
<head>
<title>Email fra ' . $_POST['navn'] . '</title>
</head>
<body>
<p>
' . htmlentities($_POST['indhold']) . '
</p>
</body>
</html>
';

  /* To send HTML mail, you can set the Content-type header. */
  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

  /* additional headers */
  $headers .= "From: " . $_POST['navn'] . " <" . $_POST['email'] . ">\r\n";

  /* and now mail it */
  mail($to, $subject, $message, $headers);

  echo "Din Mail blev afsendt";
}

?>
<form name="formmail" method="post" action="<?php echo basename(__FILE__); ?>">
  <p>
    <input name="navn" type="text" id="navn" value="Navn">
    <input name="email" type="text" id="email" value="E@Mail.dk">
    <br>
    <textarea name="indhold" id="indhold">Indhold</textarea>
    <br>
    <input type="submit" name="Submit" value="Send">
    <input name="Reset" type="reset" id="Reset" value="Nulstil">
  </p>
</form>
</body>
</html>
---

Morten
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:26 #8
Nu ved jeg ik' hvordan du vil have mailen du modtager til at se ud, men hvis det bare skal være alm. text (...ikke noget funky) så behøver koden ikke være så lang!
Avatar billede htmlaga Nybegynder
09. juli 2003 - 21:27 #9
Hvis du vil have tekst felterne stylet:

<html>
<head>
    <title>[Ingen titel]</title>
<style type="text/css">
.text_form {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 110px;
    margin: 5px;
    }
.textarea_form {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 230px;
    margin: 5px;
}

</style>
</head>

<body>

<form name="formmail">
<input type="text" name="Name" class="text_form"><input type="text" name="e-mail" class="text_form"><br>
<textarea rows="6" name="besked" class="textarea_form"></textarea><br>
<input type="submit" name="send" value="send" style="margin: 5px;"><input type="reset" name="nulstil" value="nulstil" style="margin: 5px;">
</form>

</body>
</html>
Avatar billede rangerbs Nybegynder
09. juli 2003 - 21:28 #10
mulles.tk -- Ja, det skal bare være ganske almindelig tekst
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:31 #11
Prøv at teste her:
http://wildness.dk/mail.php

*det er din mail den bliver sendt til ;)
Avatar billede fangel Nybegynder
09. juli 2003 - 21:33 #12
udskift PHPen med:

---
<?php

if(isset($_POST['email'], $_POST['navn'], $_POST['indhold'])){
  /* recipients */
  $to  = "din@mail.dk";

  /* subject */
  $subject = "Email fra " . $_POST['navn'];

  /* message */
  $message = htmlentities($_POST['indhold']);

  /* headers */
  $headers = "From: " . $_POST['navn'] . " <" . $_POST['email'] . ">\r\n";

  /* and now mail it */
  mail($to, $subject, $message, $headers);

  echo "Din Mail blev afsendt";
}

?>
---

i mit script for at sende i ANCII tekst

Morten
Avatar billede rangerbs Nybegynder
09. juli 2003 - 21:37 #13
Jeg har valgt at bruge mulles.tk's script... men kan I gøre sådan at den ikke springer videre til "Din besked er sendt" efter at man har sendt beskeden?

og kan I gøre sådan at feltet bliver tomt når man trykker ind i det?

mvh Ranger
Ps: Det er også det sidste ;)
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:38 #14
Du vil ikke have der står noget når den bliver sendt? Den skal bare reset sig? Det kan jeg godt lave, og så laver jeg også lige det med at det bliver tomt!
Avatar billede rangerbs Nybegynder
09. juli 2003 - 21:40 #15
takker :D
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:52 #16
Look:
http://wildness.dk/mail.php

<--- Kode --->

:: put dette i <head></head>

<style type="text/css">
.f_input {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 110px;
}
.f_textarea {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 225px;
}
.f_knap {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
}
</style>

:: Put dette hvor du har lyst ;) :

<form method="post" action="mail.php">
<input type="text" name="navn" class="f_input" onFocus="if(this.value=='Navn'){this.value=''};" onBlur="if(this.value==''){this.value='Navn'};" value="Navn"> <input type="text" name="email" class="f_input" onFocus="if(this.value=='E-mail'){this.value=''};" onBlur="if(this.value==''){this.value='E-mail'};" value="E-mail">
<br>
<textarea rows="6" name="besked" class="f_textarea" onFocus="if(this.value=='Besked'){this.value=''};" onBlur="if(this.value==''){this.value='Besked'};">Besked</textarea>
<br>
<input type="submit" value="Send" class="f_knap" name="send">&nbsp;&nbsp;<input type="reset" class="f_knap" value="Nulstil" name="reset">
</form>
<?php
if ($_POST['send']) {
    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $besked = $_POST['besked'];
    $mailtil = "DIN MAIL!!!";
    $mailfra = "$email";
            mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
            echo "<b>Din besked er sendt!</b>";
}
?>
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:53 #17
...husk bare lige at rette det til din mail her: $mailtil = "DIN MAIL!!!";

og at rette dette: action="mail.php" , med hvad din side hedder!
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 21:54 #18
Hov havde ikke lige fået fjernet det der kommer efter den er sendt, så brug dette:

<form method="post" action="mail.php">
<input type="text" name="navn" class="f_input" onFocus="if(this.value=='Navn'){this.value=''};" onBlur="if(this.value==''){this.value='Navn'};" value="Navn"> <input type="text" name="email" class="f_input" onFocus="if(this.value=='E-mail'){this.value=''};" onBlur="if(this.value==''){this.value='E-mail'};" value="E-mail">
<br>
<textarea rows="6" name="besked" class="f_textarea" onFocus="if(this.value=='Besked'){this.value=''};" onBlur="if(this.value==''){this.value='Besked'};">Besked</textarea>
<br>
<input type="submit" value="Send" class="f_knap" name="send">&nbsp;&nbsp;<input type="reset" class="f_knap" value="Nulstil" name="reset">
</form>
<?php
if ($_POST['send']) {
    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $besked = $_POST['besked'];
    $mailtil = "DIN MAIL!!!";
    $mailfra = "$email";
            mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
}
?>
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:00 #19
mulles.tk -> Den kommer til at se anderledes ud :( Den skal være helt magen til den anden du lavede :D

mvh Ranger
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:02 #20
eller nej, tak for det :D kiggede bare op i det andet du havde skrevet
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:02 #21
Den skal se sådan her ud, ik'?:
http://wildness.dk/mail.php

Har du husket at tilføje:

<style type="text/css">
.f_input {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 110px;
}
.f_textarea {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 225px;
}
.f_knap {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
}
</style>

i <head></head>
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:05 #22
Jeg siger mange tak!! :D

Skriv hvis du får problemer...
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:05 #23
Er der ikke lige en ting til du gider rette?

når man trykker send hopper den hen til en top side nu.. kan du ikke gøre sådan at den bare bliver stående og ikke springer frem til noget andet
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:11 #24
Har du husket dette:

at rette: $mailtil = "DIN MAIL!!!"; til din mail

og at rette dette: action="mail.php" , med hvad din side hedder!
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:19 #25
Ja, jeg har gjort præcist som du siger... ( Jeg modtager og e-mails fra den)
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:20 #26
Hvilken side er det du bliver sendt til?

hvad er adr. til siden?
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:22 #27
Ja, altså jeg har kun prøvet at ligge det ud som du har lavet... og jeg har også kaldt dem det samme... så der burde ikke være nogle problemer, men jeg prøver lige at lave noget..
så vender jeg tilbage :D
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:26 #28
Hmm... mærkeligt? Hvis den hedder mail.php , forstår jeg det ik'?
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:31 #29
Nu skal folk udfylde felterne, ellers sender den ikke!

---- mail.php ----

<head>
<style type="text/css">
.f_input {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 110px;
}
.f_textarea {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 225px;
}
.f_knap {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
}
</style>
</head>
<form method="post" action="mail.php">
<input type="text" name="navn" class="f_input" onFocus="if(this.value=='Navn'){this.value=''};" onBlur="if(this.value==''){this.value='Navn'};" value="Navn"> <input type="text" name="email" class="f_input" onFocus="if(this.value=='E-mail'){this.value=''};" onBlur="if(this.value==''){this.value='E-mail'};" value="E-mail">
<br>
<textarea rows="6" name="besked" class="f_textarea" onFocus="if(this.value=='Besked'){this.value=''};" onBlur="if(this.value==''){this.value='Besked'};">Besked</textarea>
<br>
<input type="submit" value="Send" class="f_knap" name="send">&nbsp;&nbsp;<input type="reset" class="f_knap" value="Nulstil" name="reset">
</form>
<?php
if ($_POST['send']) {
    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $besked = $_POST['besked'];
    $mailtil = "admin@wildness.dk";
    $mailfra = "$email";
        if ($navn == 'Navn' || $email == 'E-mail' || $besked == 'Besked') {
        } else {
            mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
        }
}
?>
Avatar billede rangerbs Nybegynder
09. juli 2003 - 22:38 #30
ok.. takker..

har ikke løst mit problem endnu, men det kommer nok ;D Jeg smutter nu..
ses og tak for det
Avatar billede mulles.tk Nybegynder
09. juli 2003 - 22:59 #31
du skulle vel ikke have:
<basetarget="_blank">
til at stå nogen steder, vel?
Avatar billede fangel Nybegynder
10. juli 2003 - 16:31 #32
mulles =>

1) dit script vil lave en "Warning", hvis disse ikke er slået fra... (mangler en isset())
2) man kan ikke omdøbe scriptet, da "action" er hardcoded in, og ikke baseres på scriptets navn, som jo faktisk kan findes "on-the-fly"
3) der bliver ikke skrevet hvis fejl, manglende udfyldning eller andet sjov...

3 ting der er maget vigtige at huske på at lave, da det stort set ikke tager længere tid, hverken at skrive eller køre...

Morten
Avatar billede mulles.tk Nybegynder
10. juli 2003 - 22:00 #33
I spm. 1) forstår jeg ikke hvilken Warning du snakker om? Hvad er ikke slået fra?

action="mail.php" skal du da omdøbe efter hvad siden hedder fx action="kontakt.php"

Nej der bliver ikke skrevet en fejl, da "rangerbs" ikke vil have skrevet noget! Men mailen bliver ikke sendt!!!
Avatar billede fangel Nybegynder
11. juli 2003 - 09:49 #34
hvis du har "error_reporting(E_ALL)", så vil dette
"if($_POST['...']){"
generere en "warning, undefined variable $_POST['...']"

du skal istedet bruge
"if(isset($_POST['...'])){"
da denne funktion er lavet til formålet at tjekke om en variabel er sat eller ej!

---

du kan bruge
action="<?php echo basename(__FILE__); ?>"
istedet, dette vil selv indsætte filnavnetet på den fil som koden ligger i (ved brug af include() er det smartest at bruge basename($_SERVER['PHP_SELF']))

---

lav istedet scriptet om til

  if ($navn == 'Navn' || $email == 'E-mail' || $besked == 'Besked' || empty($navn) || empty($email) || empty($beksed)) {
    echo "Du mangler at udfylde mindst et af felterne!";
  } else {
      mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
  }

det rettede er:
- indsat en empty() for hver variabel, for ellers vil man kunne slette alle felterne, og sende en tom mail!
- tilføje en echo "Du..."; så folk ved om de har lavet en fejl!

Morten
Avatar billede mulles.tk Nybegynder
11. juli 2003 - 11:24 #35
Jeg er på ingen måde en ørn til PHP, så jeg forstår ikke helt det første, men jeg har rettet det alligevel! ;)

Jeg har også rettet det med <?php echo basename(__FILE__); ?> !

Ved det sidste har jeg gjort sådan at der bliver udskrevet en fejl, hvis man mangler at udfylde noget, da det nok ville smart at gøre folk opmærksomme på om beskeden er sendt eller ej! :D Men jeg har ikke lavet det med empty() da det ikke er muligt at efterlade et felt tom...

http://wildness.dk/mail.php

Så hvis du stadig er her: rangerbs, så brug denne kode:
--------------------
<head>
<style type="text/css">
.f_input {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 110px;
}
.f_textarea {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
    width: 225px;
}
.f_knap {
    background-color: #ffffff;
    border: 1px solid;
    font-family: Tahoma;
    font-size: 8pt;
}
</style>
</head>
<form method="post" action="<?php echo basename(__FILE__); ?>">
<input type="text" name="navn" class="f_input" onFocus="if(this.value=='Navn'){this.value=''};" onBlur="if(this.value==''){this.value='Navn'};" value="Navn"> <input type="text" name="email" class="f_input" onFocus="if(this.value=='E-mail'){this.value=''};" onBlur="if(this.value==''){this.value='E-mail'};" value="E-mail">
<br>
<textarea rows="6" name="besked" class="f_textarea" onFocus="if(this.value=='Besked'){this.value=''};" onBlur="if(this.value==''){this.value='Besked'};">Besked</textarea>
<br>
<input type="submit" value="Send" class="f_knap" name="send">&nbsp;&nbsp;<input type="reset" class="f_knap" value="Nulstil" name="reset">
</form>
<?php
if(isset($_POST['send'])) {
    $navn = $_POST['navn'];
    $email = $_POST['email'];
    $besked = $_POST['besked'];
    $mailtil = "admin@wildness.dk";
    $mailfra = "$email";
        if ($navn == 'Navn' || $email == 'E-mail' || $besked == 'Besked') {
    echo "<p><font color='#FF0000'>Du mangler at udfylde noget!</font></p>";
        } else {
            mail($mailtil,"Kontakt fra hjemmeside","$navn - $email\n\n$besked","From: $mailfra");
        }
}
?>
--------------------
Avatar billede fangel Nybegynder
11. juli 2003 - 13:05 #36
det script eer bedre, men det er muligt at have felter tomme, man skal bare slå JS fra!

Morten
Avatar billede rangerbs Nybegynder
11. juli 2003 - 15:32 #37
mange tak :D

kan nu ikke se nogen forskel, men har skiftet det ud :D
Jeg fik ellers ingen fejl

mvh Ranger
Avatar billede fangel Nybegynder
11. juli 2003 - 15:41 #38
den melder også kun fejl hvis det er på en "development server"... på normale webhoteller er error_reporting slet ikke sat så høj som på produktions servere!

Morten
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