Avatar billede l3kris Nybegynder
30. juni 2006 - 11:37 Der er 11 kommentarer og
1 løsning

Formmail med valg af modtager fra database

Hej Eksperter,

Jeg er netop blevet webmaster for en hjemmeside i en sportsklub. Bestyrelsen har alle deres emailadresser stående på siden og får følgelig bunker af spam. Jeg vil nødig skrive min egen email og opleve det samme.

Derfor vil jeg gerne lave en formmail i php, som sender en mail til en modtager - men hvor afsenderen kan vælge modtager i en combobox uden at kunne se deres emailadresse. Udfra det valgte navn skal mailen naturligvis sendes til den korrekte adresse.

Selve formen er ganske simpel: Der skal bare være Emne, Indhold og afsendernavn og -email.

Jeg skal nok lige nævne, at jeg ikke har arbejdet i php før, men den tidligere webmaster brugte php, så...

Tak for hjælpen,
l3kris
Avatar billede venchil Nybegynder
30. juni 2006 - 11:39 #1
Jeg kan godt hjælpe... Poster scriptet om 2 sek.
Avatar billede l3kris Nybegynder
30. juni 2006 - 11:48 #2
Det må jeg sige: Hurtig respons :-D
Avatar billede venchil Nybegynder
30. juni 2006 - 11:57 #3
<?php

$modtager_id = addslashes($_GET["id"]);

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$getmodtager = mysql_query("SELECT * FROM forminfo WHERE id='".$id."' LIMIT 1") or die(mysql_error());

$modtager = mysql_fetch_array($getmodtager);

$modtager_email = $modtager[email];
$modtager_navn = $modtager[navn];

$ip = $_SERVER["REMOTE_ADDR"];
$navn = $_POST["navn"];
$email = $_POST["email"];
$emne = $_POST["emne"];
$besked = $_POST["besked"];

if (!empty($navn) && !empty($email) && !empty($emne) && !empty($besked)) {
  mail("$modtager_email",
        "$navn's besked",
        "$navn ($ip) skrev:\n$besked",
        "From: $email\nReply-to: $email");

  echo "Din besked blev sendt til" . $modtager_navn;
  echo "<br><br>";
}

?>

<form method="post" action="formmail.php">
  Navn: <input type="text" name="navn">
  <br>
  E-mail: <input type="text" name="email">
  <br>
  Emne: <input type="text" name="emne">
  <br>
  Besked:
  <br><textarea name="besked" cols="0" rows="5" style="width:100%;"></textarea>
  <br><input type="submit" value="Send">
</form>
Avatar billede venchil Nybegynder
30. juni 2006 - 12:00 #4
Det var det PHP-script der sørger for at sende e-mailen afsted... Men du skal også have en MYSQL-tabel... Poster lige strukturen her:

CREATE TABLE `forminfo` (
`id` INT( 6 ) NOT NULL ,
`email` VARCHAR( 150 ) NOT NULL ,
`navn` VARCHAR( 75 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Avatar billede venchil Nybegynder
30. juni 2006 - 12:02 #5
Når du indsætter data i din MySQL-tabel, skal du indsætte email i feltet e-mail, og navn i feltet navn, det giver vel sig selv... ID er der for at man skal kunne identificere folk på andet end deres email...

Listen over navne med links til formen er som følger:
Avatar billede venchil Nybegynder
30. juni 2006 - 12:05 #6
<?php

$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database");

$getinfo = mysql_query("SELECT * FROM forminfo ORDER BY id") or die(mysql_error());

while ($info = mysql_fetch_array($getmodtager)) {
  $navn = $info[navn];
  $id = $info[id];

  echo "<a href=\"formfilnavn.php?id=" . $id . "\">" . $navn . "</a>";
  echo "<br>";
}


?>
Avatar billede venchil Nybegynder
30. juni 2006 - 12:08 #7
Det eneste du skal huske her er, at du skal ændre filnavnet i henholdsvis formen i selve maileren og i linket i listen til det, du vælger at kalde din mailer... Du skal også huske at ændre værdierne i $conn i begge scripts til dine MySQL-informationer...

Alle scriptsne er skrevet rent her i ekspertens box, så der er måske fejl i... Du poster selvfølgelig bare her, hvis der er noget du har spørgsmål om...
Avatar billede l3kris Nybegynder
30. juni 2006 - 13:08 #8
Tak for det! Jeg vil kigge på det i weekenden og give dig feedback snarest.
Avatar billede venchil Nybegynder
30. juni 2006 - 13:22 #9
Fint :)
Avatar billede l3kris Nybegynder
03. juli 2006 - 16:41 #10
Jeg bliver nok nødt til at få det skåret ud i pap. Jeg har som sagt ikke arbejdet i php før. Jeg kan (vist nok) godt gennemskue de enkelte dele af koden, men ikke at sætte dem sammen.

Maileren (første kode) skal ind i et dokument, så meget kan jeg regne ud. Hvor skal anden og tredie kode hen? Ja, undskyld at jeg er lidt langsom.
Avatar billede l3kris Nybegynder
15. august 2006 - 16:16 #11
Nå, læg lige et svar, du skal ikke lide under, at jeg er lidt tumpet på dette område...
Avatar billede l3kris Nybegynder
02. september 2006 - 18:06 #12
Okey, jeg lukker i stedet. Hvis du vil have points, så kontakt mig lige...
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