Avatar billede stengaard Praktikant
10. februar 2005 - 00:46 Der er 10 kommentarer og
1 løsning

mailformular med flere modtager med mulighed for at vælge modtage

hej hvordan for jeg denne til at virker her ikke den store haj i php

formularen:

<form name="tip_form" action="send.php" method="POST">
<p><font face="Comic Sans MS">Kontakt</font></p>
<p>&nbsp;</p>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">

function confirm_submit()
{
  error = 0;

  placering=0;
  tekst=(document.tip_form.sender.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Angiv en gyldig afsender email!");
    error = 1;
  } else {
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Angiv en gyldig afsender email!");
      error = 1;
    } else {
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ikke nogle adresser der indeholder: æ ø å Æ Ø Å");
        error = 1;
      }    else {
                if (placering<1 || tekst.length<=(placering+1)){
                    alert ("Angiv en gyldig afsender email!");
                    error = 1;
                }
            }
        }
    }

    placering=0;
  tekst=(document.tip_form.email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Angiv en gyldig modtager email!");
    error = 1;
  } else {
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Angiv en gyldig modtager email!");
      error = 1;
    } else {
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;");
        error = 1;
      }    else {
                if (placering<1 || tekst.length<=(placering+1)){
                    alert ("Angiv en gyldig modtager email!");
                    error = 1;
                }
            }
        }
    }


    if(error == 0)
        document.tip_form.submit();
}


</SCRIPT>

<table width="100%" cellpadding="3" cellspacing="0" border="0" bgcolor="#ffffff">
<tr valign="top">
<!-- Center Column -->
<td width="100%"></td>
<table BORDER="0" width="540">
<tr VALIGN="top">
<td>Modtager:</td>
<td><select NAME="mailtoperson" onChange="msg(this.form)" size="1">
<option value="-- Vælg --">-- Vælg --</option>
<option value="www@www.ww">Josephine - Stengaard</option>
<option value="www@www.ww">Henrik - Stengaard</option>
<option value="www@www.ww">Webmaster - Familien-stengaard & lkongen</option>
</select></td>
</tr>
<tr VALIGN="top">
<td>Dit navn:</td>
<td><input TYPE="text" SIZE="45" NAME="name" onChange="msg(this.form)" value="Dit navn"></td>
</tr>
<tr VALIGN="top">
<td>Din email:</td>
<td><input TYPE="text" SIZE="45" NAME="recipient" OnChange="msg(this.form)" value="Din e-mailadresse"></td>
</tr>
<tr VALIGN="top">
<td>Angående:</td>
<td><select NAME="priority" c size="1">
<option value="Normal">Normal </option>
<option value="Kontakt mig">Kontakt mig</option>
<option value="Ingen svar kræves">Ingen svar kræves</option>
<option value="Haster">Haster</option>
</select></td>
</tr>
<tr VALIGN="top">
<td>Overskrift:</td>
<td><input TYPE="text" SIZE="45" NAME="subject" OnChange="msg(this.form)" value="Her kan du skrive en emne-tekst"> </td>
</tr>
<tr VALIGN="top">
<td valign="top">Besked:</td>
<td><textarea NAME="message" COLS="45" ROWS="5" WRAP="virtual" OnChange="msg(this.form)"></textarea></td>
</tr>
<tr>
<td></td>
<td><input TYPE="submit" VALUE="Send besked"> <input TYPE="reset" VALUE="Slet"></td>
</tr>
</table>
</form>

mail sender scriptet (send.php)

<?
if (isset($_POST['email'])) {
    $sender = $_POST['sender'];
    $email = $_POST['email'];
    $sub = 'en som skriver fra side!';
    $url = $_SESSION['link'];
    $besked = $_POST['besked']."\n".$url;
    $header = "From: ".$sender."\n";
    $header .= "Reply-To: ".$sender."\n";
    mail($email, $sub, $besked, $header);
}
?>
Avatar billede expnet Seniormester
10. februar 2005 - 01:42 #1
jamen du bedder bare personere om at sætte et komma
Avatar billede exutable Nybegynder
10. februar 2005 - 02:19 #2
<form>
<option value="1" name="modtager">Modtager 1</option>
<option value="2" modtager="2">Modtager 2</option>
<input type=submit value="Send">
//send.php
$modtager = $_REQUEST["modtager"];
if($modtager == "1") {
$email = "modtager1@adfad.dk";
}
if ($modtager == "2" {
$email = "modtager2@alsdjfljdf.dk";
}
else {
echo "error please pick a sender";
}
Avatar billede detox Nybegynder
10. februar 2005 - 02:19 #3
Du laver feltet til et array og bruger attributten multiple. Her er et eks.:

<?
if (isset($_POST['mailtoperson'])) {
    $to = join(',', $_POST['mailtoperson']);
    echo $to;
}
?>
<form name="tip_form" action="" method="POST">
<select multiple="multiple" NAME="mailtoperson[]" size="3">
<option value="w1@www.ww">Josephine - Stengaard</option>
<option value="w2@www.ww">Henrik - Stengaard</option>
<option value="w3@www.ww">Webmaster - Familien-stengaard & lkongen</option>
</select></td>
<input TYPE="submit" name="submit" VALUE="Send besked">
</form>
Avatar billede detox Nybegynder
10. februar 2005 - 02:21 #4
Du kan så bruge $to direkte i din mail(), da modtagere skal adskilles med et komma.
Avatar billede stengaard Praktikant
10. februar 2005 - 12:11 #5
hvordan skal det færdig php scripte så se ud hvordan ved den hvordan den skal sende det der tænker jeg på dette som kun kan sende til en person

mail sender scriptet (send.php)

<?
if (isset($_POST['email'])) {
    $sender = $_POST['sender'];
    $email = $_POST['email'];
    $sub = 'en som skriver fra side!';
    $url = $_SESSION['link'];
    $besked = $_POST['besked']."\n".$url;
    $header = "From: ".$sender."\n";
    $header .= "Reply-To: ".$sender."\n";
    mail($email, $sub, $besked, $header);
}
?>
Avatar billede detox Nybegynder
10. februar 2005 - 12:23 #6
Ja, som sagt skal du lave feltet til et array i formen vha. fx: name="email[]" multiple="multiple"
I send.php scriptet kan du så lave en kommaadskilt liste med modtagere vha. join():

if (isset($_POST['email'])) {
    $to = join(',', $_POST['email']);
    $sender = $_POST['sender'];
    $email = $_POST['email'];
    $sub = 'en som skriver fra side!';
    $url = $_SESSION['link'];
    $besked = $_POST['besked']."\n".$url;
    $header = "From: ".$sender."\n";
    $header .= "Reply-To: ".$sender."\n";
    mail($to, $sub, $besked, $header);
}
Avatar billede detox Nybegynder
10. februar 2005 - 12:27 #7
Hvis du ikke ønsker at alle modtagernes email skal stå i email adressefeltet, kan du indsætte adresserne i et Bcc felt i din header. Fx:

if (isset($_POST['email'])) {
    $to = join('>,<', $_POST['email']);
    $sender = $_POST['sender'];
    $email = $_POST['email'];
    $sub = 'en som skriver fra side!';
    $url = $_SESSION['link'];
    $besked = $_POST['besked']."\n".$url;
    $header = "From: ".$sender."\n";
    $header .= "Reply-To: ".$sender."\n";
    $header .= "Bcc: <$to>\n";
    mail('din_email@adresse.dk', $sub, $besked, $header);
}
Avatar billede detox Nybegynder
10. februar 2005 - 12:36 #8
Og så har du naturligvis ikke brug for linjen:

    $email = $_POST['email'];
Avatar billede stengaard Praktikant
11. februar 2005 - 22:10 #9
jeg tror vi snakker forbi hinanden ellers er det mig der ikke helt har forstået php men jeg har lavet et kontakt script som mankan skrive en besked i og så vælge den person man gerne vil have mailen bliver sendt til.

kontakt scriptet ser således ud der er tre person mankan vælge imellem men kun en af dem skal have mailen...

<form name="tip_form" action="send.php" method="POST">
<p><font face="Comic Sans MS">Kontakt</font></p>
<p>&nbsp;</p>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">

function confirm_submit()
{
  error = 0;

  placering=0;
  tekst=(document.tip_form.sender.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Angiv en gyldig afsender email!");
    error = 1;
  } else {
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Angiv en gyldig afsender email!");
      error = 1;
    } else {
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ikke nogle adresser der indeholder: æ ø å Æ Ø Å");
        error = 1;
      }    else {
                if (placering<1 || tekst.length<=(placering+1)){
                    alert ("Angiv en gyldig afsender email!");
                    error = 1;
                }
            }
        }
    }

    placering=0;
  tekst=(document.tip_form.email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Angiv en gyldig modtager email!");
    error = 1;
  } else {
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Angiv en gyldig modtager email!");
      error = 1;
    } else {
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;");
        error = 1;
      }    else {
                if (placering<1 || tekst.length<=(placering+1)){
                    alert ("Angiv en gyldig modtager email!");
                    error = 1;
                }
            }
        }
    }


    if(error == 0)
        document.tip_form.submit();
}


</SCRIPT>

<table width="100%" cellpadding="3" cellspacing="0" border="0" bgcolor="#ffffff">
<tr valign="top">
<!-- Center Column -->
<td width="100%"></td>
<table BORDER="0" width="540">
<tr VALIGN="top">
<td>Modtager:</td>
<td><select NAME="mailtoperson" onChange="msg(this.form)" size="1">
<option value="-- Vælg --">-- Vælg --</option>
<option value="1">Josephine Stengaard</option>
<option value="2">Henrik Stengaard</option>
<option value="3">Webmaster </option>
</select></td>
</tr>
<tr VALIGN="top">
<td>Dit navn:</td>
<td><input TYPE="text" SIZE="45" NAME="name" onChange="msg(this.form)" value="Dit navn"></td>
</tr>
<tr VALIGN="top">
<td>Din email:</td>
<td><input TYPE="text" SIZE="45" NAME="recipient" OnChange="msg(this.form)" value="Din e-mailadresse"></td>
</tr>
<tr VALIGN="top">
<td>Angående:</td>
<td><select NAME="priority" c size="1">
<option value="Normal">Normal </option>
<option value="Kontakt mig">Kontakt mig</option>
<option value="Ingen svar kræves">Ingen svar kræves</option>
<option value="Haster">Haster</option>
</select></td>
</tr>
<tr VALIGN="top">
<td>Overskrift:</td>
<td><input TYPE="text" SIZE="45" NAME="subject" OnChange="msg(this.form)" value="Her kan du skrive en emne-tekst"> </td>
</tr>
<tr VALIGN="top">
<td valign="top">Besked:</td>
<td><textarea NAME="message" COLS="45" ROWS="5" WRAP="virtual" OnChange="msg(this.form)"></textarea></td>
</tr>
<tr>
<td></td>
<td><input TYPE="submit" VALUE="Send besked"> <input TYPE="reset" VALUE="Slet"></td>
</tr>
</table>
</form>



hvordan skal jeg lave php-scriptet der sender mailen til den person man har valgt
mellem dette i kontakt scriptet

<td><select NAME="mailtoperson" onChange="msg(this.form)" size="1">
<option value="-- Vælg --">-- Vælg --</option>
<option value="1">Josephine Stengaard</option>
<option value="2">Henrik Stengaard</option>
<option value="3">Webmaster </option>
Avatar billede detox Nybegynder
11. februar 2005 - 23:17 #10
Arh ja, det havde jeg misforstået. Jeg troede du vil kunne sende til flere modtagere på en gang. 'send.php' må skulle se nogenlunde sådan her ud:

<?
if (isset($_POST['mailtoperson'])) {
    $to = array(1=>'email_adresse1@domæne.dk', 2=>'email_adresse2@domæne.dk', 3=>'email_adresse3@domæne.dk');
    $sender = $_POST['recipient'];
    $sub = $_POST['subject'];
    $url = $_SERVER['HTTP_REFERER'];
    $navn = $_POST['name'];
    $besked = $_POST['message']."\n".$url;
    $header = "From: $navn<$sender>\n";
    $header .= "Reply-To: $sender\n";
    mail($to[$_POST['mailtoperson']], $sub, $besked, $header);
}
?>

Jeg ved dog ikke hvor du vil have 'priority' feltet til at stå, men det skulle være til at flette ind. Og: $sender = $_POST['recipient']; er selvfølgelig lidt misvisende, da recipient jo betyder modtager ;O)
Avatar billede stengaard Praktikant
01. december 2005 - 10:32 #11
lukket
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