Hej C!
"c laursen" <pussycatonfire@hotmail.com> skrev i en meddelelse
news:44b7e300$0$15781$14726298@news.sunsite.dk...
> hej folk
>
> jeg har haft problemer med at få formmail til at virke på min
> hjemmeside(på b-one). jeg bruger dreamweaver og har fået at vide
> jeg skulle prøve at spørge herinde, da jeg ikke ved så meget om
> hvordan php fungere.
>
> jeg skal bruge b-one´s basis kode og så selv lave "box" koder -
> men jeg kan ikke få det til at virke. Så det ville være dejligt
> hvis der var en venlig sjæl herinde som kunne hjælpe mig :)
>
> b-one´s standart kode:
[SNIP] - skip den!
Du har en side med en kontakt-formular (tilføj og slet selv de nødvendige
input-felter):
<form name="formmail" action="send.php" method="post"> // filen send.php
ordner forsendelsen
<p>* Navn/firma:<br />
<input type="text" name="navn" size="40" /></p>
<p>* Adresse:<br />
<input type="text" name="adr" size="40" /></p>
<p>* E-mail:<br />
<input type="text" name="email" size="40" /></p>
<input type=hidden name="blank" size="40" /> // Dette er et skjult
validerings-felt, som skal stoppe spam-botter!
<p>Emne:<br />
<input type="text" name="emne" size="40" /></p>
<p>Besked:<br />
<textarea name="tekst" rows="10" cols="32"></textarea><br /><br />
<input type="submit" value="Send" /><input type="reset" value="Slet alt"
/><br />Felter markeret med * skal udfyldes.</p>
</form>
Når dine brugere klikker på [Send], bliver formular-indholdet behandlet af
"send.php":
<?php
//Tjekker om brugeren kom fra kontakt-siden
if(!isset($_POST['navn']))
{
header("Location: kontakt.php"); //Hvis brugeren ikke kom fra kontakt-siden,
sender vi ham derhen
exit;
}
else
{ // Hvis brugeren kom fra kontakt-siden, så fortsætter vi.
//Henter data fra formular
$navn = $_POST['navn'];
$adr = $_POST['adr'];
$email = $_POST['email'];
$emne = $_POST['emne'];
$tekst = $_POST['tekst'];
$ip = $_SERVER["REMOTE_ADDR"];
$valid = $_POST['blank'];
$check = $navn && $adr && $email;
$send = "INDTAST_MODTAGERS_EMAIL-ADRESSE_HER";
if(!empty($valid)) {
header("Location: kontakt.php"); // Hvis det skjulte felt ikke er tomt,
sendes brugeren tilbage til formularen!
}
elseif(empty($check))
{ //Hvis en af variablerne er tomme, kommer brugeren ikke videre.
header("Location: fejl_tom.php"); // Hvis et af de krævede felter er tomme,
sendes brugeren til en fejl-side (man kan nøjes med at udskrive en fejl
direkte - jeg har blot gjort det således for syns skyld.
exit;
}
else
{ //Hvis der var noget i alle variabler går vi videre til næste tjek
if(ereg("^.+@.+\..+$", $email)) { //Hvis brugerens e-mail er gyldig
fortsætter vi
//Nu skal vi til at sende e-mailen.
//Vi laver lige et par variabler mere
$sendto = "$send"; //Den adresse som mailen skal sendes til
//Vi laver en variabel, som indeholder alt det, som skal stå i mailen
$msg = "Besked fra ".$navn."\r\n";
$msg .= "Afsenderens adresse: ".$adr. "\r\n";
$msg .= "Afsenderens e-mail: ".$email."\r\n";
$msg .= "Afsenderens IP-adresse: ".$ip."\r\n\r\n";
if (!empty($_POST[tekst])) { // Checker om tekst-feltet er tomt - hvis ikke:
send det med, ellers udelad det!
$msg .= "\n".$navn."'s besked er:\r\n\r\n".$tekst."\r\n";
}
$subject = $emne;
//Mailen afsendes
if(mail($sendto, $subject, $msg, "From: $email\r\n" . "Reply-To:
$email\r\n"))
{
$strTitle="Tak for henvendelsen!"; // Hvis formularen bliver godkendt og
sendt opbygges en tak-side (HER SKAL DU RETTE TIL, SÅ DET PASSER TIL DIN
OPBYGNING!)
require($_SERVER['DOCUMENT_ROOT']."/inc/header.inc");
?>
<body>
<div id="top">
<? require($_SERVER['DOCUMENT_ROOT']."/inc/top.inc"); ?>
</div>
<ul id="menu">
<? require($_SERVER['DOCUMENT_ROOT']."/inc/menu.inc"); ?>
</ul>
<div id="indhold">
<h2><? echo $strTitle; ?></h2>
<p>Tak for Deres henvendelse <? echo $navn; ?>.<br />
Vi vil besvare den hurtigst muligt.<br /><br />
Kopi af Deres henvendelse:<br /><br /> // Her laves der en kopi af den
sendte formular (vises på skærmen!)
<pre>
<span class="tak">Navn/firma:</span> <? echo $navn; ?>.<br />
<span class="tak">Adresse:</span> <? echo $adr; ?>.<br />
<span class="tak">E-mail:</span> <? echo $email; ?>.<br /><br />
<span class="tak">Besked:</span><br /><? echo $tekst; ?><br /><br />
</pre><br />
Klik her for at komme <a href="kontakt.php">tilbage til formularen</a>.</p>
</div>
<div id="footer">
<? require($_SERVER['DOCUMENT_ROOT']."/inc/footer.inc"); ?>
</div>
</body>
</html>
<?
}
else
{
header("Location: fejl.php"); // Hvis formularen ikke kan sendes, bliver
brugeren sendt til en anden fejl-side
exit;
}
}
else
{ //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl.
header("Location: fejl_ugyldig_email.php"); // Og hvis ikke email-adressen
indeholder et @, bliver han/hun sendt til en tredje fejl-side.
exit;
}
}
}
?>
Du kan selv vælge, om du vil lave fejl-sider, eller om du blot vil udskrive
en fejl - jeg foretrækker en fejl-side, da jeg på den måde kan bibeholde
designet og strukturen på siden...
Med venlig hilsen
--
Dennis Munding
Web-master
http://skovaa-munding.dk/, http://mundings-memorial.dk/
http://cantica.dk/, http://pe-vagtservice.dk/,
http://eds-denmark.dk/