Avatar billede nicolaib Praktikant
16. april 2007 - 16:32 Der er 10 kommentarer og
2 løsninger

Hjælp til checkboxes i formmail

Jeg har en mailformular som er opbygget efter denne artikel http://www.eksperten.dk/artikler/1078 . Jeg vil gerne have nogle checkboxe som skriver en tekst i mailen hvis de er udfyldt. Hvordan gøres det? Jeg kan ikke helt gennemskue hvad man må og ikke må gøre.
Noget i stil med:
Checkbox 1: Hvis udfyldt - udskrives i mailen - Personen ønsker information om Emne 1.
Checkbox 2: Hvis udfyldt - udskrives i mailen - Personen ønsker information om Emne 2.
Jeg ønsker et kodeeksempel.

PS. Er denne mailfunktion som artiklen beskriver sikker nok eller skal man tilføje mere sikkerhed overfor spamrobotter.
Avatar billede jakobdo Ekspert
16. april 2007 - 17:13 #1
$message = "Hej, dette er en email\n";
if(isset($_POST['checkbox1']))
{
$message .= 'Personen ønsker information om Emne 1.';
}

if(isset($_POST['checkbox1']))
{
$message .= 'Personen ønsker information om Emne 1.';
}

mail($to,$subject,$message);
Avatar billede jakobdo Ekspert
16. april 2007 - 17:13 #2
if(isset($_POST['checkbox2']))
{
$message .= 'Personen ønsker information om Emne 2.';
}

For meget copy/paste!
Avatar billede nicolaib Praktikant
16. april 2007 - 17:29 #3
$message = "Hej, dette er en email\n";
if(isset($_POST['checkbox1']))
{
$message .= 'Personen ønsker information om Emne 1.';
}

if(isset($_POST['checkbox2']))
{
$message .= 'Personen ønsker information om Emne 2.';
}

Det var så det her du mente? Hvorfor kommer begge værdier til at ligge i variablen $message ?
Hvis begge boxe er markeret vil variablen så udskrive: Personen ønsker information om Emne 1. Personen ønsker information om Emne 2.
Kan de ikke ligge i forskellige variabler sådan at man har $emne1 og $emne2 og dermed
mail($to,$subject$,$message,$emne1,$emne2);
og til sidst hvad betyder det punktum du har sat efter $message.
Avatar billede nixir Nybegynder
16. april 2007 - 18:17 #4
$message = 'Hej'; // nu skriver den Hej
$message .= ' med'; // nu skriver den Hej med
$message = $message . ' dig'; nu skriver den Hej med dig

Den adder altså til variablen.
Avatar billede nixir Nybegynder
16. april 2007 - 18:39 #5
$message = "Hej, dette er en email\n"; // når man skriver \n laver den linieskift i mail
if(isset($_POST['checkbox1']))
  $emne1 = "Personen ønsker information om Emne 1.\n";
if(isset($_POST['checkbox2']))
  $emne2 = "Personen ønsker information om Emne 2.\n";

mail($to,$subject,$message,$emne1,$emne2); // vil IKKE virke ...
mail($to,$subject,$message.$emne1.$emne2); // vil virke ...

Men jeg tror bare ikke det er særlig "sundt" for serveren (performance) at lade den forsøge at hente en variabel der ikke findes hver gang. Derfor vil jeg anbefale det eksempel der ser sådan ud:
$message = "Hej, dette er en email\n"; // når man skriver \n laver den linieskift i mail
if(isset($_POST['checkbox1']))
  $message .= "Personen ønsker information om Emne 1.\n";
if(isset($_POST['checkbox2']))
  $message .= "Personen ønsker information om Emne 2.\n";
mail($to,$subject,$message);

(NB: $to og $subject skal self defineres)
Avatar billede nicolaib Praktikant
19. april 2007 - 15:55 #6
hvis jeg så har en masse forskellige formularer( tekstfelter og Checkboxe) hvordan får jeg så lagt dem sammen så de alle ender med at være en del af $message.
noget i stil med: ?
$message = $navn. $adresse. $postnr. $by. $emne1. $emne2. $tekst;

og vigtigst:
Hvor og hvordan kan dette indsættes. Stadig med udgangspunkt i det mailscript i linket overfor.

Jeg ved god at det her ikke var det samme som jeg oprindelig spurgte om men hvis I gider svare på det her så skal jeg nok fordele lidt ekstra point. På forhånd tak!

Mht. sikkerhed spurgte jeg ovenfor.
PS. Er denne mailfunktion som artiklen beskriver sikker nok eller skal man tilføje mere sikkerhed overfor spamrobotter.
Avatar billede jakobdo Ekspert
19. april 2007 - 20:40 #7
Din kode her: $message = $navn. $adresse. $postnr. $by. $emne1. $emne2. $tekst; vil virker ja!

Nu har jeg ikke adgang til artiklen, så det sidste spørgsmål kan jeg ikke svare på.
Avatar billede nicolaib Praktikant
19. april 2007 - 22:22 #8
Ja selvfølgelig. Jeg havde ikke lige tænkt på at artiklen kostede point. Nå men så må det jo stå hen i det uvisse for mig. Da jeg ikke har tænkt mig at copy-paste koden fra artiklen af hensyn til forfatteren.
Læg nogle svar  begge to så I kan få nogle point. Tak for hjælpen.
Avatar billede nixir Nybegynder
19. april 2007 - 23:57 #9
svar
Avatar billede jakobdo Ekspert
20. april 2007 - 08:25 #10
Svar!
Avatar billede jakobdo Ekspert
20. april 2007 - 23:39 #11
Takker for point.
Avatar billede nixir Nybegynder
22. april 2007 - 19:40 #12
Ja, mange tak :)
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