Avatar billede insert_coins Nybegynder
12. november 2002 - 15:30 Der er 20 kommentarer og
1 løsning

Simpel e-mail funktion. (Flere variabler i samme body)

Hejsa.

Jeg har fået bikset en e-mail funktion sammen, som tilmed virker:) Nu skal jeg bare ændre lidt på den, men jeg er lidt i tvivl om hvordan og hvorledes. Koden ser sådan ud:

<?php
//simple_mailer.php

function mailer_header()
{
?>
<HTML>
<HEAD><TITLE>E-mailer</TITLE></HEAD>
<BODY>
<?php
}

function mailer_footer()
{
?>
</BODY>
</HTML>
<?php
}

function error_massage($msg)
{
mailer_header();
echo "<SCRIPT>alert(\"Error: $msg\");history.go(-1)</SCRIPT>";
mailer_footer();
exit;
}

function user_message($msg)
{
mailer_header();
echo "<SCRIPT>alert(\"$msg\");history.go(-1)</SCRIPT>";
mailer_footer();
exit;
}

function mail_form()
{
global $PHP_SELF;
?>
<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA"
ACTION="<?php echo $PHP_SELF; ?>">
<INPUT TYPE="hidden" NAME="action" VALUE="send_mail">

<DIV ALIGN="CENTER ">
<TABLE CELLSPACING"2" CELLPADDING="5" WIDTH"90%" BORDER"1">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Sendes til</TH>
<TD WIDTH="70%"><INPUT NAME="mail_to" VALUE="insertcoins@team-rc.dk" SIZE="30"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Fra</TH>
<TD WIDTH="70%"><INPUT NAME="mail_from" VALUE="Dit navn" SIZE="30"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Svar til</TH>
<TD WIDTH="70%"><INPUT NAME="mail_reply_to" VALUE="din@email.com" SIZE="30"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Emne</TH>
<TD WIDTH="70%"><INPUT NAME="mail_subject" VALUE="Tildmelding til dogfight" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Oplysninger</TH>
<TD WIDTH="70%"><TEXTAREA NAME="mail_body" ROWS="16"
COLS="70"></TEXTAREA></TD>
</TR>
<TR>
<TH WIDTH="100%" COLSPAN="2" ALIGN="CENTER">
<INPUT TYPE="SUBMIT" VALUE="Send" NAME="SUBMIT">
<INPUT TYPE="RESET" VALUE="Reset" NAME="Reset">
</TH>
</TR>
</TABLE>
</DIV>
</FORM>
<?php
}

function send_mail()
{
global $mail_to, $mail_from, $mail_reply_to;
global $mail_body, $mail_subject;

$mail_parts["mail_to"] = $mail_to;
$mail_parts["mail_from"] = $mail_from;
$mail_parts["mail_reply_to"] = $mail_reply_to;
$mail_parts["mail_subject"] = trim($mail_subject);
$mail_parts["mail_body"] = $mail_body;

if(my_mail($mail_parts))
user_message("Successfully sent an e-mail titled '$mail_subject'.");

else error_message("An unknown error ocurred while attempting to send an e-mail titled '$mail_subject'.");
}

function my_mail($mail_parts)
{
$mail_to = $mail_parts["mail_to"];
$mail_from = $mail_parts["mail_from"];
$mail_reply_to = $mail_parts["mail_reply_to"];
$mail_subject = $mail_parts["mail_subject"];
$mail_body = $mail_parts["mail_body"];

if(empty($mail_to)) error_message("Empty to field!");
if(empty($mail_subject)) error_message("Empty subject!");
if(empty($mail_body)) error_message("Empty body! ");

$mail_to = str_replace(";", ",", $mail_to);

$mail_header = '';

if(!empty($mail_from)) $mail_headers .= "From: $mail_from\n";
if(!empty($mail_reply_to)) $mail_headers .= "Reply-to: $mail_reply_to\n";


$mail_subject = stripslashes($mail_subject);
$mail_body = stripslashes($mail_body);

return mail($mail_to,$mail_subject,$mail_body,$mail_headers);
}

switch ($action)
{
case "send_mail":
mailer_header();
send_mail();
mailer_footer();
break;
case "mail_form":
mailer_header();
mail_form();
mailer_footer();
break;
default:
mailer_header();
mail_form();
mailer_footer();
break;
}
?>

Jeg skal have lavet følgende:

$mail_to skal være en fast e-mail, som brugeren ikke kan ændre på (insertcoins@team-rc.dk), og det skal subject også (Tilmelding til dogfight)

Html formen skal ændres til følgende:
<DIV ALIGN="CENTER ">
<TABLE CELLSPACING"2" CELLPADDING="5" WIDTH"90%" BORDER"1">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Holdnavn</TH>
<TD WIDTH="70%"><INPUT NAME="mail_holdnavn" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 1</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller1" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 2</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller2" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">E-mail</TH>
<TD WIDTH="70%"><INPUT NAME="mail_reply_to" SIZE="30"></TD>
</TR>

Det jeg vil have den til, er at når jeg modtager e-mailen, skal $mail_holdnavn, $mail_spiller1 og $mail_spiller2 blive vist i min body e-mail. Imens $mail_reply_to bliver smidt ind, så jeg kan trykke besvar.

Håber der er nogen der kan hjælpe mig og hvis der er noget i ikke forstår må i endelig sige til.

Mvh Sune
Avatar billede Slettet bruger
12. november 2002 - 15:41 #1
Du kan tage den nemme vej og lave de 2 felter til hidden.

Alternativt kan du ændre

return mail($mail_to,$mail_subject,$mail_body,$mail_headers);

til

return mail("insertcoins@team-rc.dk","Tilmelding til dogfight",$mail_body,$mail_headers);

og så sætte

$mail_reply_to = $mail_parts["mail_from"];
Avatar billede Slettet bruger
12. november 2002 - 15:43 #2
Det er iøvrigt en dælens rodet mailsender at bygge videre på, når du skal bruge den til så simple formål :/
Avatar billede nemeier Nybegynder
12. november 2002 - 15:49 #3
Tilføj enten HIDDEN i din input eller tilføj READONLY hvis brugeren må se de faste felter
Avatar billede insert_coins Nybegynder
12. november 2002 - 15:56 #4
Jeg er helt newbie til PHP, så det er ikke en mail funktion jeg selv har kodet, så den er det letteste for mig :)

Kan jeg ikke få dig til at smide det ind i min funktion, og poste det her - er ikke sikker på at jeg ved hvad du mener?
Avatar billede Slettet bruger
12. november 2002 - 15:59 #5
Her er lige en simpel form du kan teste...

domæne.dk skal udskiftes til dit eget domæne.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>


<?
if ($_POST['send'] == 'ok') {

if ($_POST['mail'] == "") {
$fejl = "Du skal indtaste din email";
}

if ($_POST['mail_spiller2'] == "") {
$fejl = "Du skal indtaste spiller2";
}

if ($_POST['mail_spiller1'] == "") {
$fejl = "Du skal indtaste spiller1";
}

if ($_POST['mail_holdnavn'] == "") {
$fejl = "Du skal indtaste dit holdnavn";
}

if(!isset($fejl)) {

$tak = "Din besked er nu sendt til insertcoins@team-rc.dk";
$til = "insertcoins@team-rc.dk";
$fra = $_POST['fra'];
$spiller1 = $_POST['mail_spiller1'];
$spiller2 = $_POST['mail_spiller2'];
$email = $_POST['email'];
$besked = "Fra: $fra\nSpiller1:$spiller1\nSpiller2:$spiller2";

$headers = "From: Anonym e-mailform <admin@domæne.dk>\n";
$headers .= "Reply-to: $fra\n";
$headers .= "X-Sender: <admin@domæne.dk>\n";
$headers .= "X-Mailer: Anonym e-mailform\n";
$headers .= "X-Priority: 3\n";
$headers .= "Return-Path: <admin@domæne.dk>\n";
mail($til,"Tilmelding til dogfight","Fra: $fra\nE-mail: $email\n\nBesked: $besked\n",$headers);
}
}
echo $fejl;
?>

<form name="form1" method="post" action="test4.php">
<input type="hidden" name="send" value="ok">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Holdnavn</TH>
<TD WIDTH="70%"><INPUT NAME="mail_holdnavn" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 1</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller1" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 2</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller2" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">E-mail</TH>
<TD WIDTH="70%"><INPUT NAME="mail" SIZE="30"></TD>
</TR>
<td></td><td>
<input type="submit" value="Send besked">
</td>
</tr>
</form>
</table>


</body>
</html>
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:04 #6
Den ligger på mit eget domain, men det er hostet af DailyRush.dk - er det så deres domain jeg skal smide ind i stedet?
Avatar billede Slettet bruger
12. november 2002 - 16:13 #7
Hvis du har dit eget domæne er det dit. Her er lige en opdateret udgave:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>


<?
if ($_POST['send'] == 'ok') {

if ($_POST['mail'] == "") {
$fejl = "Du skal indtaste din email";
}

if ($_POST['mail_spiller2'] == "") {
$fejl = "Du skal indtaste spiller2";
}

if ($_POST['mail_spiller1'] == "") {
$fejl = "Du skal indtaste spiller1";
}

if ($_POST['mail_holdnavn'] == "") {
$fejl = "Du skal indtaste dit holdnavn";
}

if(!isset($fejl)) {


$domain = "siterater.dk";
$tak = "Din besked er nu sendt til insertcoins@team-rc.dk";
$til = "mj@$domain";
$spiller1 = $_POST['mail_spiller1'];
$spiller2 = $_POST['mail_spiller2'];
$email = $_POST['mail'];
$besked = "Fra: $fra\nSpiller1:$spiller1\nSpiller2:$spiller2";

$headers = "From: $firmanavn mailrobot <admin@$webadresse>\n";
$headers .= "Reply-to: <$mail>\n";
$headers .= "X-Sender: <admin@$webadresse>\n";
$headers .= "X-Mailer: $firmanavn mailrobot\n";
$headers .= "X-Priority: 3\n";
$headers .= "Return-Path: <admin@$webadresse>\n";

mail($til,"Tilmelding til dogfight",$besked,$headers);
}
}
echo $fejl;
echo $tak;
?>

<form name="form1" method="post" action="test4.php">
<input type="hidden" name="send" value="ok">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Holdnavn</TH>
<TD WIDTH="70%"><INPUT NAME="mail_holdnavn" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 1</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller1" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 2</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller2" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">E-mail</TH>
<TD WIDTH="70%"><INPUT NAME="mail" SIZE="30"></TD>
</TR>
<td></td><td>
<input type="submit" value="Send besked">
</td>
</tr>
</form>
</table>


</body>
</html>


Den kan testes på http://siterater.dk/music-aarhus/test4.php
Avatar billede Slettet bruger
12. november 2002 - 16:13 #8
Nu skal du rette $domain til dit domæne...
Avatar billede Slettet bruger
12. november 2002 - 16:14 #9
Nu spammer jeg vist:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
</head>

<body>


<?
if ($_POST['send'] == 'ok') {

if ($_POST['mail'] == "") {
$fejl = "Du skal indtaste din email";
}

if ($_POST['mail_spiller2'] == "") {
$fejl = "Du skal indtaste spiller2";
}

if ($_POST['mail_spiller1'] == "") {
$fejl = "Du skal indtaste spiller1";
}

if ($_POST['mail_holdnavn'] == "") {
$fejl = "Du skal indtaste dit holdnavn";
}

if(!isset($fejl)) {


$domain = "siterater.dk";
$tak = "Din besked er nu sendt til insertcoins@team-rc.dk";
$til = "mj@$domain";
$spiller1 = $_POST['mail_spiller1'];
$spiller2 = $_POST['mail_spiller2'];
$email = $_POST['mail'];
$besked = "Fra: $fra\nSpiller1:$spiller1\nSpiller2:$spiller2";

$headers = "From: Anonym mailrobot <admin@$webadresse>\n";
$headers .= "Reply-to: <$mail>\n";
$headers .= "X-Sender: <admin@$domain>\n";
$headers .= "X-Mailer: Anonym mailrobot\n";
$headers .= "X-Priority: 3\n";
$headers .= "Return-Path: <admin@$domain>\n";

mail($til,"Tilmelding til dogfight",$besked,$headers);
}
}
echo $fejl;
echo $tak;
?>

<form name="form1" method="post" action="test4.php">
<input type="hidden" name="send" value="ok">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Holdnavn</TH>
<TD WIDTH="70%"><INPUT NAME="mail_holdnavn" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 1</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller1" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 2</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller2" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">E-mail</TH>
<TD WIDTH="70%"><INPUT NAME="mail" SIZE="30"></TD>
</TR>
<td></td><td>
<input type="submit" value="Send besked">
</td>
</tr>
</form>
</table>


</body>
</html>
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:24 #10
Nu virker den næsten:) Jeg kan sende en mail med den, men der mangler lidt. Når jeg udfylder felterne, modtager jeg kun det her:

Fra:
Spiller1:blabla
Spiller2:blabla

Altså holdnavn, og deres e-mail kommer ikke med i beskeden:|

(husk at lave dine reply's som et svar så jeg kan give dig point)
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:28 #11
Min ser sådan ud, ved ikke om det er hos mig problemet ligger?

<html>
<head>
    <title>Untitled</title>
</head>

<body>


<?
if ($_POST['send'] == 'ok') {

if ($_POST['mail'] == "") {
$fejl = "Du skal indtaste din email";
}

if ($_POST['mail_spiller2'] == "") {
$fejl = "Du skal indtaste spiller2";
}

if ($_POST['mail_spiller1'] == "") {
$fejl = "Du skal indtaste spiller1";
}

if ($_POST['mail_holdnavn'] == "") {
$fejl = "Du skal indtaste dit holdnavn";
}

if(!isset($fejl)) {


$domain = "team-rc.dk";
$tak = "Din besked er nu sendt til insertcoins@team-rc.dk";
$til = "insertcoins@$domain";
$spiller1 = $_POST['mail_spiller1'];
$spiller2 = $_POST['mail_spiller2'];
$email = $_POST['mail'];
$besked = "Fra: $fra\nSpiller1:$spiller1\nSpiller2:$spiller2";

$headers = "From: $firmanavn mailrobot <admin@$webadresse>\n";
$headers .= "Reply-to: <$mail>\n";
$headers .= "X-Sender: <admin@$webadresse>\n";
$headers .= "X-Mailer: $firmanavn mailrobot\n";
$headers .= "X-Priority: 3\n";
$headers .= "Return-Path: <admin@$webadresse>\n";

mail($til,"Tilmelding til dogfight",$besked,$headers);
}
}
echo $fejl;
echo $tak;
?>

<form name="form1" method="post" action="test4.php">
<input type="hidden" name="send" value="ok">
<table align="center" width="100%" cellspacing="0" cellpadding="2" border="0">
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Holdnavn</TH>
<TD WIDTH="70%"><INPUT NAME="mail_holdnavn" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 1</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller1" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Spiller 2</TH>
<TD WIDTH="70%"><INPUT NAME="mail_spiller2" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">E-mail</TH>
<TD WIDTH="70%"><INPUT NAME="mail" SIZE="30"></TD>
</TR>
<td></td><td>
<input type="submit" value="Send besked">
</td>
</tr>
</form>
</table>


</body>
</html>
Avatar billede Slettet bruger
12. november 2002 - 16:28 #12
Prøv at sætte denne rettelse ind:

$besked = "Fra: $holdnavn\nE-mail: $email\nSpiller1: $spiller1\nSpiller2: $spiller2";

$headers = "From: Anonym mailrobot <admin@$webadresse>\n";
$headers .= "Reply-to: <$mail>\n";
$headers .= "X-Sender: <admin@$domain>\n";
$headers .= "X-Mailer: Anonym mailrobot\n";
$headers .= "X-Priority: 3\n";
$headers .= "Return-Path: <admin@$domain>\n";

mail($til,"Tilmelding til dogfight",$besked,$headers);
Avatar billede Slettet bruger
12. november 2002 - 16:29 #13
;)
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:41 #14
Er så tæt på nu:) Den mangler bare at skrive holdnavn nu. E-mail, spiller 1 og spiller 2 virker.
Avatar billede Slettet bruger
12. november 2002 - 16:48 #15
Nåhja...

$holdnavn = $_POST['mail_holdnavn'];

skal lige sættes ind lige ovenover

$besked = "Fra: $holdnavn\nE-mail: $email\nSpiller1: $spiller1\nSpiller2: $spiller2";
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:52 #16
Takker for din tolmodighed og hjælp... Har siddet så lang tid og bakset med det.
Avatar billede Slettet bruger
12. november 2002 - 16:56 #17
Det er helt iorden :)

Jeg takker for point!

Kan man iøvrigt få lov at se det som mailformen skal bruges til? (sidder og bliver nysgerrig ;)
Avatar billede insert_coins Nybegynder
12. november 2002 - 16:58 #18
Det er en Battlefield 1942 turnering, som bliver offenligjort i dag eller i morgen. Spiller du Battlefield?
Avatar billede Slettet bruger
12. november 2002 - 17:01 #19
Jeg kan desværre ikke da spillet kræver grafikkort med Hardware T&L, og det er der ikke på mit gamle Matrox kort.

Men jeg har spillet en del MOHAA :)
Avatar billede insert_coins Nybegynder
12. november 2002 - 17:05 #20
Ohh ok, hvis du sidder på irc eller noget andet kan jeg vise dig siden. Vil bare ikke smide linket ind her.
Avatar billede Slettet bruger
12. november 2002 - 17:13 #21
Fair nok. Jeg er ikke IRC, men du kan kontakte mig pr. mail mj@siterater.dk eller ICQ 109849516
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