Avatar billede ravsted-dk Nybegynder
14. august 2004 - 17:30 Der er 15 kommentarer og
3 løsninger

Mailform med flere modtager

Hvor finder jeg en mailform, hvor der er mulighed for at vælge andre modtager, f.eks. Administraion, Webmaster og Regnskab.
Avatar billede ravsted-dk Nybegynder
14. august 2004 - 17:30 #1
Glemte lige at sige det skal være til HTML
Avatar billede thedeathart Nybegynder
14. august 2004 - 17:33 #2
du kan ikke lave en mailform i html, dertil skal du bruge et CGI sprog som f.eks. php eller asp. Skriv hvilke af disse du kan benytte.

www.hotscripts.com <= der er en del ting i både php & asp.
Avatar billede ravsted-dk Nybegynder
14. august 2004 - 17:37 #3
PHP helst, men kan bruge begge. Bare det er med Dropdown menu
Avatar billede bfjmnemonic Nybegynder
14. august 2004 - 17:58 #4
Som sagt du kan lave det i PHP.

Webcafe har nogle gode eksempler.
http://www.webcafe.dk/artikler/php/mail/
Avatar billede Slettet bruger
14. august 2004 - 21:59 #5
Her er en stump kode til at komme igang på:

<?php

$modtagere=array(
  'Administration' => 'admin@server',
  'Webmaster' => 'webmaster@server'
);

if(isset($_POST['besked']) && isset($_POST['modtager']) && isset($modtagere[$_POST['modtager']])){
  mail($modtagere[$_POST['modtager']],"Besked fra kontaktformular",$_POST['besked']);

  // Her vil man normalt lave lidt kode, der siger tak for beskeden
  // eller sender brugeren til en anden side

} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Kontaktformular</title>
</head>
<body>
  <form action='' method='post'>
  <p>
    Modtager: <select name='modtager'>
<?php
  foreach($modtagere as $navn => $adresse){
    echo "<option value='{$navn}'>{$navn}</option>";
  }
?>
    </select><br>
    Besked: <input type='text' name='besked'><br>
    <input type='submit' name='send' value='send'>
  </p>
  </form>
</body>
</html>
<?php
}
?>
Avatar billede ravsted-dk Nybegynder
14. august 2004 - 22:30 #6
Den kan godt bruges, dog kunne jeg godt tænke mig at brugeren fik besked på at mailen var modtaget. Kan du hjælpe med det

mail($modtagere[$_POST['modtager']],"Besked fra kontaktformular",$_POST['besked']);

HER=> // Her vil man normalt lave lidt kode, der siger tak for beskeden
      // eller sender brugeren til en anden side

} else {
Avatar billede Slettet bruger
14. august 2004 - 22:35 #7
Så bare erstat de to kommentarlinier med noget i denne stil:

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Tak for beskeden</title>
</head>
<body>

Din besked er nu sendt til <?php echo $_POST['modtager']; ?>, som vil læse den snarest.

</body>
</html>
Avatar billede Slettet bruger
14. august 2004 - 22:36 #8
Ups. Glemte lige, at der skal være en

<?php

linie som den sidste i erstatningen.
Avatar billede ravsted-dk Nybegynder
14. august 2004 - 22:40 #9
Hvad skal jeg så skrive, hvis felterne skal være udfyldt før den kan sendes
Avatar billede Slettet bruger
14. august 2004 - 22:44 #10
Det skulle der allerede være taget højde for i scriptet, som jeg skrev det. (Den viser formularen, hvis felterne ikke er udfyldt.)
Avatar billede ravsted-dk Nybegynder
14. august 2004 - 23:03 #11
Nææ, den sender bare en tom mail
Avatar billede Slettet bruger
15. august 2004 - 02:39 #12
OK, jeg havde ikke lige overvejet, at browsere kunne finde på at sende en tom værdi. Her er det komplette script i en tilrettet udgave. Det ignorerer også beskeder, der bare består af mellemrum.

<?php

$modtagere=array(
  'Administration' => 'admin@server',
  'Webmaster' => 'webmaster@server'
);

if(isset($_POST['besked']) && !empty(trim($_POST['besked'])) && isset($_POST['modtager']) && isset($modtagere[$_POST['modtager']])){
  mail($modtagere[$_POST['modtager']],"Besked fra kontaktformular",$_POST['besked']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Tak for beskeden</title>
</head>
<body>

Din besked er nu sendt til <?php echo $_POST['modtager']; ?>, som vil læse den snarest.

</body>
</html>
<?php
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Kontaktformular</title>
</head>
<body>
  <form action='' method='post'>
  <p>
    Modtager: <select name='modtager'>
<?php
  foreach($modtagere as $navn => $adresse){
    echo "<option value='{$navn}'>{$navn}</option>";
  }
?>
    </select><br>
    Besked: <input type='text' name='besked'><br>
    <input type='submit' name='send' value='send'>
  </p>
  </form>
</body>
</html>
<?php
}
?>
Avatar billede ravsted-dk Nybegynder
15. august 2004 - 10:11 #13
Så melder den fejl på linje 8

Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in C:\webhotel\barnlille.dk\kontakt\kontakt.php on line 8

Kan det også være muligt at få et felt som hedder emne, besked, navn, e-mail
Avatar billede Slettet bruger
15. august 2004 - 14:07 #14
Jeg har lige gjort den if lidt mere læselig, men kunne ikke se nogen fejl, som skulle kunne give den fejlbesked. Er det også if-linien, der var linie 8 hos dig? Er du sikker på, at du har skrevet rigtigt af?

Jeg har tilføjet muligheden for et emne, men har ikke sat krav om at det skal være udfyldt. Der kommer bare et standardemne, når det ikke er udfyldt.

<?php

$modtagere=array(
  'Administration' => 'admin@server',
  'Webmaster' => 'webmaster@server'
);

if(
isset($_POST['besked']) &&
!empty(trim($_POST['besked'])) &&
isset($_POST['modtager']) &&
isset($modtagere[$_POST['modtager']])
){
  $emne=(!empty($_POST['emne']))?$_POST['emne']:"Besked fra kontaktformular";
  mail($modtagere[$_POST['modtager']],$emne,$_POST['besked']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Tak for beskeden</title>
</head>
<body>

Din besked er nu sendt til <?php echo $_POST['modtager']; ?>, som vil læse den snarest.

</body>
</html>
<?php
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Kontaktformular</title>
</head>
<body>
  <form action='' method='post'>
  <p>
    Modtager: <select name='modtager'>
<?php
  foreach($modtagere as $navn => $adresse){
    echo "<option value='{$navn}'>{$navn}</option>";
  }
?>
    </select><br>
    Emne: <input type='text' name='emne'><br>
    Besked: <input type='text' name='besked'><br>
    <input type='submit' name='send' value='send'>
  </p>
  </form>
</body>
</html>
<?php
}
?>
Avatar billede ravsted-dk Nybegynder
15. august 2004 - 21:17 #15
Nu melder den fejl i linje 10

Du kan se siden her http://barnlille.dk/kontakt/kontakt.php
Avatar billede Slettet bruger
15. august 2004 - 23:14 #16
Undskyld, det var min fejl. Ret linie 10 til:

trim($_POST['besked'])!='' &&

Grunden er, at empty() slet ikke er en egentlig funktion.
Avatar billede Slettet bruger
15. august 2004 - 23:17 #17
Det var dog pokkers som Exp driller mig i denne tråd. Jeg har ikke selv valgt at lægge som svar en eneste gang, men alligevel ligger ca. halvdelen som svar. Men skidt - det var da værre, hvis den ikke lagde som svar, når man bad om det.
Avatar billede ravsted-dk Nybegynder
16. august 2004 - 08:11 #18
Så virker den.
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