Avatar billede emotion Nybegynder
22. august 2003 - 17:19 Der er 5 kommentarer

kontakt formular / mail formular

Jeg er i fuld gang med at lære php og har kastet mig over en kontakt formular.
Kontakt formularen har virket, men jeg vil have den ændret, så man kan få nogle flere oplysninger med - de skal så sendes sammen med den besked der indtastes og stå nederst i mailen.

Er der en eller flere der kan hjælpe? Det skal nok skæres ud i pap.
Lige for at undgå dumme og ikke brugbare kommentar, så:
Jeg prøver på at lære det og jeg får ikke penge for det!!!

Det kode jeg har ser sådan her ud:

<?php

//Her startes HTML
function mailer_header()
{
?>
<html>
<head>
<title></title>

</head>
<body>

<table class="tekstfelter">
<?php
}

//Her sluttes HTML
function mailer_footer()
{
?>
</table>

</body>
</html>
<?php
}

function error_message($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">

    <fieldset>
    <legend>Kontakt</legend>
    <div>
    <label for="t1">Firma:</label><input type="text" name="mail_subject" id="t1" /><br />
    <label for="t2">Adresse:</label><input type="text" name="adresse" id="t2" /><br />
    <label for="t3">Post nr:</label><input type="text" name="post_nr" id="t3" /><br />
    <label for="t4">By:</label><input type="text" name="by" id="t4" /><br />
    <label for="t5">Tlf:</label><input type="text" name="tlf" id="t5" /><br />
    <label for="t6">E-mail:</label><input type="text" name="mail" id="t6" /><br />
    <label for="t7">Tekst:</label><textarea name="mail_body" id="t7" rows="12" cols="20"></textarea><br />
    </div>
    </fieldset>
    </div>

    <div>
    <INPUT TYPE="SUBMIT" VALUE="Send" NAME="SUBMIT" id="submit1">
    <INPUT TYPE="RESET" VALUE="Nulstil" NAME="RESET" id="submit2">
    </div>
</FORM>

<?php
}

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

$mail_to = "min@mail_her.dk"; //den mail adresse der skal sendes til
$mail_parts["mail_from"] = $mail_from;
$mail_parts["mail_subject"] = trim($mail_subject);

$mail_parts["mail_body"] = $mail_body;

if(my_mail($mail_parts))
    user_message("Mailen '$mail_subject' er sendt.");
else error_message("Der er sket en fejl, da du forsøgte at sende mailen med emnet: '$mail_subject'.");
}

function my_mail($mail_parts)
{
$mail_to = "min@mail_her.dk"; //den mail adresse der skal sendes til
$mail_from = $mail_parts["mail_from"];
$mail_subject = $mail_parts["mail_subject"];
$mail_body = $mail_parts["mail_body"];

//tjek på om der er indtastet noget i bestemte felter
//Der skal indtastes noget i felterne; firmanavn, adresse, post nr, by og besked!
if(empty($mail_subject)) error_message("Udfyld venligst firmanavn");
if(empty($mail_from)) error_message("Der er ikke indtastet en adresse");
if(empty($mail_from)) error_message("Der er ikke indtastet et post nr");
if(empty($mail_from)) error_message("Der er ikke indtastet en by");
if(empty($mail_body)) error_message("Der er ikke indtastet en besked");

$mail_header = '';

if(!empty($mail_from)) $mail_header .= "From: $mail_from\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 agg-zeus Nybegynder
25. august 2003 - 10:13 #1
Du kan jo bare tilføje lidt til din send mail funktion:




function my_mail($mail_parts)
{
$mail_to = "min@mail_her.dk"; //den mail adresse der skal sendes til
$mail_from = $mail_parts["mail_from"];
$mail_subject = $mail_parts["mail_subject"];
$mail_body = $mail_parts["mail_body"];

//tjek på om der er indtastet noget i bestemte felter
//Der skal indtastes noget i felterne; firmanavn, adresse, post nr, by og besked!
if(empty($mail_subject)) error_message("Udfyld venligst firmanavn");
if(empty($mail_from)) error_message("Der er ikke indtastet en adresse");
if(empty($mail_from)) error_message("Der er ikke indtastet et post nr");
if(empty($mail_from)) error_message("Der er ikke indtastet en by");
if(empty($mail_body)) error_message("Der er ikke indtastet en besked");

$mail_header = '';

if(!empty($mail_from)) $mail_header .= "From: $mail_from\n";

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

// Her er det nye
$mail_body .= "<br><br>Her er hvad du merer vil sende med hver mail!";
// Her slutter det nye

return mail($mail_to,$mail_subject,$mail_body,$mail_headers);
}
Avatar billede agg-zeus Nybegynder
25. august 2003 - 10:14 #2
jeg vil tro det virker... men det er lidt svært at se med dine globale variabler og at det er lidt uoverskueligt...
Avatar billede emotion Nybegynder
25. august 2003 - 15:12 #3
agg-zeus - jamen, adresse, tlf osv videre kommer jo ikke med i mailen, der sendes.
Avatar billede agg-zeus Nybegynder
05. september 2003 - 09:48 #4
<?php

//Her startes HTML
function mailer_header()
{
?>
<html>
<head>
<title></title>

</head>
<body>

<table class="tekstfelter">
<?php
}

//Her sluttes HTML
function mailer_footer()
{
?>
</table>

</body>
</html>
<?php
}

function error_message($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()
{

?>


<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA" ACTION=<?php echo $_SERVER['PHP_SELF']; ?> >
<INPUT TYPE="hidden" NAME="action" VALUE="send_mail">

    <fieldset>
    <legend>Kontakt</legend>
    <div>
    <label for="t1">Firma:</label><input type="text" name="mail_subject" id="t1" /><br />
    <label for="t2">Adresse:</label><input type="text" name="adresse" id="t2" /><br />
    <label for="t3">Post nr:</label><input type="text" name="post_nr" id="t3" /><br />
    <label for="t4">By:</label><input type="text" name="by" id="t4" /><br />
    <label for="t5">Tlf:</label><input type="text" name="tlf" id="t5" /><br />
    <label for="t6">E-mail:</label><input type="text" name="mail" id="t6" /><br />
    <label for="t7">Tekst:</label><textarea name="mail_body" id="t7" rows="12" cols="20"></textarea><br />
    </div>
    </fieldset>
    </div>

    <div>
    <INPUT TYPE="SUBMIT" VALUE="Send" NAME="SUBMIT" id="submit1">
    <INPUT TYPE="RESET" VALUE="Nulstil" NAME="RESET" id="submit2">
    </div>
</FORM>

<?php
}

function send_mail()
{

$mail_to = "min@mail_her.dk"; //den mail adresse der skal sendes til
$mail_mail = "Fra:".$_POST['mail']."<br>"
          Firma:".$_POST['mail_subject']."<br>"
          Adresse:".$_POST['adresse']."<br>"
          Post nr.:".$_POST['post_nr']."<br>"
          By:".$_POST['by']."<br>"
          Tlf:".$_POST['tlf']."<br>"
          Email:".$_POST['mail']."<br><br>"
          Tekst:".$_POST['mail_body'];

$mail_subject = trim($_POST['mail_subject']);
$mail_headers = "From: $_POST['mail']\n";

mail($mail_to,$mail_subject,$mail_mail,$mail_headers);
/*
if(my_mail($mail_parts))
    user_message("Mailen '$mail_subject' er sendt.");
else error_message("Der er sket en fejl, da du forsøgte at sende mailen med emnet: '$mail_subject'.");
*/
}
/*
function my_mail($mail_parts)
{
$mail_to = "min@mail_her.dk"; //den mail adresse der skal sendes til
$mail_from = $mail_parts["mail_from"];
$mail_subject = $mail_parts["mail_subject"];
$mail_body = $mail_parts["mail_body"];

//tjek på om der er indtastet noget i bestemte felter
//Der skal indtastes noget i felterne; firmanavn, adresse, post nr, by og besked!
if(empty($mail_subject)) error_message("Udfyld venligst firmanavn");
if(empty($mail_from)) error_message("Der er ikke indtastet en adresse");
if(empty($mail_from)) error_message("Der er ikke indtastet et post nr");
if(empty($mail_from)) error_message("Der er ikke indtastet en by");
if(empty($mail_body)) error_message("Der er ikke indtastet en besked");

$mail_header = '';

if(!empty($mail_from)) $mail_header .= "From: $mail_from\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;
}
?>

Prøv det...
Avatar billede e_s_n Nybegynder
15. september 2004 - 16:48 #5
du der der har skrevet over mig den laver fejl i det du har skrevet ca linje 82
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