Avatar billede insert_coins Nybegynder
02. november 2002 - 14:55 Der er 6 kommentarer og
1 løsning

hjælp til mail funktion.

Nogen der kan fortælle mig, hvorfor jeg får en fejlmeddelelse når jeg prøver at køre mit script:

<?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%">To</TH>
<TD WIDTH="70%"><INPUT NAME="mail_to" SIZE="20"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Cc</TH>
<TD WIDTH="70%"><INPUT NAME="mail_cc" SIZE="20"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Bcc</TH>
<TD WIDTH="70%"><INPUT NAME="mail_bcc" SIZE="20"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">From</TH>
<TD WIDTH="70%"><INPUT NAME="mail_from" SIZE="20"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Reply-To</TH>
<TD WIDTH="70%"><INPUT NAME="mail_reply_to" SIZE="20"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Subject</TH>
<TD WIDTH="70%"><INPUT NAME="mail_subject" SIZE="40"></TD>
</TR>
<TR>
<TH ALIGN="CENTER" "WIDTH="30%">Body</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_cc, $mail_bcc, $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_cc"] = $mail_cc;
$mail_parts["mail_bcc"] = $mail_bcc;
$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_cc = $mail_parts["mail_cc"];
$mail_bcc = $mail_parts["mail_bcc"];
$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";
if(!empty($mail_reply_cc))
$mail_headers .= "Cc: " . str_replace(";", ",", $mail_cc) . "\n";
if(!empty($mail_reply_bcc))
$mail_headers .= "Bcc: " . str_replace(";", ",", $mail_cc) . "\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;
}
?>
Avatar billede nemeier Nybegynder
02. november 2002 - 14:57 #1
Hvilken fejl får du ?
Avatar billede nemeier Nybegynder
02. november 2002 - 15:07 #2
Ret din <FORM>

<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA"
ACTION="<?php echo $PHP_SELF; ?>">

ret kald af din mailer_footer;() til mailer_footer();

Så får du en vist en form
Avatar billede insert_coins Nybegynder
02. november 2002 - 15:34 #3
det hjalp en del, men jeg modtager stadig ingen mail når jeg prøver at sende. Der kommer heller ingen fejlmeddelelse hvis jeg undlader at skrive noget i To og Body.
Avatar billede nemeier Nybegynder
02. november 2002 - 15:56 #4
<INPUT TYPE="hidden" NAME"action" VALUE="send_mail">
rettet til:
<INPUT TYPE="hidden" NAME="action" VALUE="send_mail">

Yderligere bør du bruge $_POST variabler istedet for f.eks.

Brug $_POST['action'] istedet for $action osv.
Avatar billede insert_coins Nybegynder
02. november 2002 - 16:18 #5
Ahh takker:)

Hvad er forskellen på $_POST['action'] og så $action ?
Avatar billede nemeier Nybegynder
02. november 2002 - 16:23 #6
Da ikke alle PHP versioner er sat ens op. På min version, har jeg bevist ikke opsat at variable fra POST, GET skal defineres som alm. variabler, det betyder at $action ikke vil findes i min PHP afvikling.

Men $_POST vil altid findes og vil indeholde alle felter som kommer fra forms send med method=POST, på samme måde som $_GET vil indeholde felter fra forms hvor method=GET samt parametre fra URL.

Forsat god fornøjelse med din form, du har lidt vej igen ;)
Avatar billede insert_coins Nybegynder
02. november 2002 - 16:59 #7
Ja det har jeg jo, men er alligevel lidt stolt over den første ting her der faktisk kom til at virke:)
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