/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
formmail i php?
Fra : c laursen


Dato : 14-07-06 19:31

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:

<FORM method="post"
action="http://www.dit-domæne.dk/cgi-bin/FormMail.pl">
<input type="hidden" name="recipient"
value="din@e-mailadresse.dk">
<input type="hidden" name="subject" value="Her kan du skrive en
emne-tekst">
<input type="hidden" name="redirect"
value="http://www.dit-domæne.dk/nyside.html">
</FORM>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (15-07-2006)
Kommentar
Fra : Dan Storm


Dato : 15-07-06 20:05

c laursen skrev:
> <FORM method="post"
> action="http://www.dit-domæne.dk/cgi-bin/FormMail.pl">
> <input type="hidden" name="recipient"
> value="din@e-mailadresse.dk">
> <input type="hidden" name="subject" value="Her kan du skrive en
> emne-tekst">
> <input type="hidden" name="redirect"
> value="http://www.dit-domæne.dk/nyside.html">
> </FORM>
>
Som jeg også spurgte om i den anden tråd (<url:
news://news.tele.dk:119/44b548f4$0$15787$14726298@news.sunsite.dk>):
Hvilken kode bruger _du_?
Du gør jo åbenlyst et eller andet forkert og det hjælper ikke at sende
standard koden to gange.

Hjælp til selvhjælp!

Send os den kode du prøver med!


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Dennis Munding (15-07-2006)
Kommentar
Fra : Dennis Munding


Dato : 15-07-06 22:07

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/



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste