55
Tags:
php
Skrevet af
Bruger #5426
@ 23.05.2005
Jeg efterhånden stødt på mange, som finder det svært at lave en formmail med PHP. Den formmail jeg vil gennemgå her er meget simpel, og kan sagtens udbygges med flere funktioner. Eksemplet i artiklen kan bruges som en slags "Kontakt os" funktion, da vi ikke lader klienten bestemme hvor e-mailen skal sendes hen. Det er dog nemt at bygge på, hvis det er det man vil have.
Vi skal bruge 2 filer til dette script. En HTML fil, med en formular, som så sendes videre til en PHP fil, der sørger for at dataene bliver sendt. Hvis det ønskes kan det hele sagtens laves i en fil. Jeg vil sidst i artiklen gennemgå hvordan det kan gøres, dog kun teoretisk, for jeg mener at man lærer meget ved også at prøve sig frem en gang imellem.
Let's get it started
Den første fil vi laver, kalder vi kontakt.htm. Det eneste der er i den, er faktisk den formular, som brugeren skal udfylde for at sende en mail.
De informationer vi gerne vil have fra brugeren er:
*Navn
*E-mail
*Emne
*Besked
Kontakt.htm kommer derfor til at se således ud:
<html>
<head>
<title>Kontakt os!</title>
</head>
<body>
Alle felter skal udfyldes!<br><br>
<form action="send.php" method="POST">
Dit navn:<br>
<input type="text" name="navn"><br><br>
Din e-mail:<br>
<input type="text" name="mail"><br><br>
Emne:<br>
<input type="text" name="emne"><br><br>
Din besked:<br>
<textarea cols="35" rows="10" name="besked"></textarea><br><br>
<input type="submit" value="Send">
</form>
</body>
</html>
For nybegyndere kan jeg lige forklare hvad formularen gør, kort:
<form action="send.php" method="POST">
<form> er starten på formularen. Action attributten bestemmer hvor dataene fra formularen skal sendes hen, når der bliver trykket send. Method bestemmer hvordan dataene skal sendes. Der er to valgmuligheder ved method, GET og POST. Ved GET sendes dataene i url'en, f.eks. www.udvikleren.dk/vis_ui.php?id=5426. POST sender dataene i headeren, hvilket gør dem "usynlige".
<input type="text" name="navn">
Derefter kommer der nogle <input> felter, som vi giver en type, der i dette tilfælde er text. Det gær dem til et standard text felt. Af andre muligheder kan nævnes password, som skjuler alle indtastede tegn. Derefter har vi en attribut der hedder name, som vi skal bruges når vi skal hente dataene med PHP.
<textarea cols="35" rows="10" name="besked"></textarea>
Vi kan ikke bruge almindelige tekstfelter til at skrive vores besked i, så derfor bruger vi et <textarea>. Der kan du selv justere hvor mange kolonner og rækker der skal være, ved at ændre på rows og cols. Den har også et name, som vi skal bruge når vi skal få fat i beskeden med PHP.
<input type="submit" value="Send">
Til sidst har vi en <input> af typen submit. Den bruger vi, når vi skal sende dataene fra formularen. Dens value angiver hvad der skal stå på knappen.
PHP koden
Nu er vi faktisk færdige med formularen, så nu kommer det sjove. PHP koden.
Det første vi gør, er at checke om brugeren kom fra kontakt.htm. Det gør vi ved at se om en variabel fra formularen er sat. Derefter henter vi alle dataene fra formularen over i nogle almindelige variabler. Dette er ikke et krav, men gøres for læsbarhedens skyld.
<?php
//Tjekker om brugeren kom fra kontakt.htm
if(!isset($_POST['navn'])) {
header("Location: kontakt.htm"); //Hvis brugeren ikke kom fra kontakt.htm, sender vi ham derhen.
}
else { // Hvis brugeren kom fra kontakt.htm, så fortsætter vi.
//Henter data fra formular
$navn = $_POST['navn'];
$mail = $_POST['mail'];
$emne = $_POST['emne'];
$besked = $_POST['besked'];
Når det så er gjort, vil vi gerne være sikre på at brugeren har udfyldt alle felterne i vores formular. Derfor tjekker vi om nogle af varibalerne er tomme, ved at bruge funktionen empty().
if(empty($navn) || empty($mail) || empty($emne) || empty($besked)) { //Hvis en af variablerne er tomme, kommer brugeren ikke videre.
echo "Alle felter skal udfyldes. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
else { //Hvis der var noget i alle variabler går vi videre til næste tjek.
Det næste (og sidste) tjek handler om brugerens e-mail. Vi vil gerne være sikre på at vi kan svare på, henvendelser fra brugerne, så derfor skal vi være sikre på at e-mail adressen er rigtig. Derfor bruger vi noget regex til at checke om den indeholder et @. Hvis mailen er gyldig, sender vi mailen.
if(ereg("^.+@.+\\..+$", $mail)) { //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 = "din@mail.dk"; //Den adresse som mailen skal sendes til
//Vi laver en variabel, som indeholder alt det, som skal stå i mailen.
$msg = "Besked fra ".$navn."\\n";
$msg .= "Afsenderens e-mail: ".$mail."\\n";
$msg .= $navn."'s besked er:\\n".$besked."\\n";
$subject = "Kontakt besked: ".$emne;
//Mailen afsendes
if(mail($sendto, $subject, $msg, "From: $mail\\r\\n" . "Reply-To: $mail\\r\\n"))
{
echo "Mailen blev sendt uden problemer";
}
else
{
echo "Der opstod en fejl. Prøv igen. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
}
else
{ //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl
echo "Ugyldig e-mail adresse. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
}
}
?>
Så er vi faktisk færdige. Samlet og lidt pænere stillet op, ser PHP scriptet således ud:
<?php
//Tjekker om brugeren kom fra kontakt.htm
if(!isset($_POST['navn']))
{
header("Location: kontakt.htm"); //Hvis brugeren ikke kom fra kontakt.htm, sender vi ham derhen.
}
else
{ // Hvis brugeren kom fra kontakt.htm, så fortsætter vi.
//Henter data fra formular
$navn = $_POST['navn'];
$mail = $_POST['mail'];
$emne = $_POST['emne'];
$besked = $_POST['besked'];
if(empty($navn) || empty($mail) || empty($emne) || empty($besked))
{ //Hvis en af variablerne er tomme, kommer brugeren ikke videre.
echo "Alle felter skal udfyldes. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
else
{ //Hvis der var noget i alle variabler går vi videre til næste tjek.
if(ereg("^.+@.+\\..+$", $mail)) { //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 = "din@mail.dk"; //Den adresse som mailen skal sendes til
//Vi laver en variabel, som indeholder alt det, som skal stå i mailen.
$msg = "Besked fra ".$navn."\\n";
$msg .= "Afsenderens e-mail: ".$mail."\\n";
$msg .= $navn."'s besked er:\\n".$besked."\\n";
$subject = "Kontakt besked: ".$emne;
//Mailen afsendes
if(mail($sendto, $subject, $msg, "From: $mail\\r\\n" . "Reply-To: $mail\\r\\n"))
{
echo "Mailen blev sendt uden problemer";
}
else
{
echo "Der opstod en fejl. Prøv igen. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
}
else
{ //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl
echo "Ugyldig e-mail adresse. <a href='kontakt.htm' title='Klik her for at komme tilbage'>Klik her for at komme tilbage til formularen</a>";
}
}
}
?>
Tips til ændringer og forbedringer
Dette script er holdt på et rimeligt simpelt niveau. Hvis jeg selv skulle lave det på min egen hjemmeside, ville jeg nok foretrække at det var i 1 fil.
Det kan gøres med nogle få ændringer.
I din formular skal du indsætte et skjult objekt.
<input type="hidden" name="do" value="validate">
Derefter skal du i din php fil lave et tjek i starten og undersøge om $_POST['do'] er lig med validate. Hvis den er det, skal du køre koden, som vi lavede tidligere, men hvis den ikke er det, skal du bare vise formularen. Så indsætter du din php kode i toppen af din php fil, og formularen nedenunder.
En anden forbedring jeg kunne komme i tanke om at lave, ville være at, hvis brugeren laver fejl i formularen, skal personen straks sendes tilbage til formularen, men dataene skal gemmes, så man er fri for at indtaste det hele igen. Dette kunne f.eks. gøre med nogle sessions, som så bliver udskrevet som values i input felterne og textareaet.
Det var alt for denne gang. Håber du lærte noget, og kunne bruge hvad du lærte.
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (44)
Umiddelbart en forklaring som forståes af selv dummies som mig
10 - 4 og en ...
En god artikel til en newbee som mig. Har efterhånden set flere artikler men dette må siges at være den bedste guide jeg har set også fordi den er så simpel hvilket jo er rart for nogen.
Håber du på et tidspunkt kommer med en mere dybdegående udbygning af "Tips til ændringer og forbedringer"
Mvh Rasmus Christensen
Ok introduktion til formmail/mail-funktionen. Dog synes jeg, at det er lidt misvisende at sige, at if(!isset($_POST['navn'])) bruges til at tjekke, om man kommer fra kontakt.htm. Til det bruger man jo REFERER - if(!isset($_POST['navn'])) tjekker jo blot om $_POST['navn'] er defineret. Men ellers ganske ok :-)
Det du skriver med at, hvis man vil havde det i en fil, skal man insætte
<input type="hidden" name="do" value="validate">
og så det det if($_POST['do'])
Jeg plager bare at give submit knappen et navn, name="submit"
og så skriver jeg ellers bare if($submit) Og det virker helt fint!
Ellers god artikel, nem at forstå og fortæller godt om emnet.
Så skal man have trykket på knappen! Det vil sige at man ikke bare kan trykke enter eller noget! Istedet kan man tjekke om der er sendt post informationer med if(strtoupper($_SERVER["REQUEST_METHOD"]) =="POST")
i har mange teorier om hvordan man checker hvor man kommer fra, drop alle jeres data gennem POST, de kan fakes, det samme en referer, hvad er værre er at norton internet security fjerne referer, den eneste måde er at få din formular til at sætte en session variabel med REQUEST_URI, og så checke den når du poster.... og så skriver man aldrig if($var) men altid isset, og så få ige styr på det der email check... du kunne lige så godt skrive strstr('@', $str)....
tsk tsk, refferer kan jo fakes
Super artikel.
En udmærket artikel der simpelt og effktivt gør rede for emnet.
Jeg synes det er en god artiktle, den er nem og læse og giver god info
Nem af forstå, god artikel, kan altid bruges
Steffen Sørensen > Man kan da godt skrive if ($var), og jeg synes regulære udtryk er smartere end strstr, så jeg synes ikke der er nogen der skal få styr på noget, når det ser ud som om der allerede er nogenlunde godt styr på det ...
God artikel. Super med den slags, når man er ny til dette her.
Man kunne også bare skrvie:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Joen's blomster mailscript..</title>
<meta name="generator" content="TSW WebCoder" />
</head>
<body>
<?
if($_POST[send]){
if($_POST[navn] && $_POST[nick] && $_POST[alder] && $_POST[mail] && $_POST[skills]){
mail("Dinmail@dinhost.dk",
"Dit emne!",
"Hej.. $_POST[navn] Har en besked til dig!\\nNick: $_POST[nick]\\nMail: $_POST[mail]\\nBesked:\\n$_POST[besked]",
"From: $_POST[mail]\\nReply-to: $_POST[mail]");
?>Din besked er blevets sendt..<?
} else{
?>Du skal udfylde ALLE felter..! <br /><?
}
}
?>
<form action="" method="post">
Navn:<br />
<input type="text" name="navn" /><br />
Mail:<br />
<input type="text" name="mail" /><br />
Besked:<br />
<textarea cols="20" rows="5" name="besked"></textarea><br />
<input type="submit" name="send" value="Send så min mail..!" />
</form>
</body>
</html>
Enjoy
- Jns
Meget godt tip, meeen....
Er den 5 UP værd?
Du kan se hvor mange hits der øverst, der hvor der står
forfatternavn!!
HOV! Troede sq det var på eksperten
Hej, jeg har lidt problemer med dette script.
Jeg ved ikke om det er pga. min webhost, eller om det er noget i scriptet.
Når jeg udfylder formularen første gang virker alt fint og der bliver sendt en mail til mig. Men hvis jeg så udfylder den endnu engang indenfor ca. 4 minutter efter den første gang, så går den over til fejlmeddelelsen "Der opstod en fejl. Prøv igen. Klik her for at komme tilbage til formularen".
Hvis jeg venter lidt mere end 5 minutter så virker det igen.
Nogen der ved hvad der er gået galt? Jeg kunne forestille mig at det er fordi værdierne i variablerne ikke er blevet slettet, men jeg ved ikke hvordan man i så fald gør det.
Jeg har netop forsøgt at uploade det til den server det skal køre fra i sidste ende, og der fungerer det upåklageligt, så det er åbenbart min webhost der er problemet.
Nu kunne man have brugt preg, siden den anden kode som skulle tjekke om det er en gyldig e-mail ikke virker optimalt.
Det er faktisk muligt at indsætte 2 "@" og diverse ugyldige tegn, det irretere mig at jeg ikke forstår hvad "^.+@.+\\..+$" betyder, ellers er rasten af koden lige til at forstå.
Nu er det også lidt ligegyldigt at tjekke mailen, siden ligemeget hvor mange tjek man laver vil man altid kunne indtaste en falsk mail, det er nu mere for at undgå tastefejl jeg ville bruge det.
Desvære er koden som tjekker mailen ikke dækkende nok, det er fx muligt at indtaste 2 "@" og nogle andre ugyldige tegn.
Tilføjelse, koden her skulle forhindre de fleste tastefejl
if(eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})$", $mail))
Ok glæm alt hvad jeg postede, kan desvære ikke slette det igen.
Skal e-post adresser tjekkes via script er det en god ide at overholde RFC standard, så man ikke kommer til at blokere for gyldige adresser som måske er i brug.
Men det bliver alt for besværligt, og af flere grunde ville jeg ikke selv gøre det. Så bare det at tjekke efter "@" og "." må være godt nok.
Hej jeg er lidt ny inde for det med at kode php, og så ville jeg lige høre om der var nogen der kunne lave nogen lunde samme artikel bare hvor i giver nogen kode eksempler. jeg ville nemlig gerne lave sådan en måde at få e-mail på inde på min hjemmeside, men da der ikke er nogen ordenlige kode eks. kan jeg ikke finde ud af hva men skal gøre helt præcist. jeg har prøvet en del og har da også kommet frem til et eller andet, men jeg bliver simpelhent nød til at have lidt kode eksempler at arbejde med.
vis der er nogen der kan gøre det, så skriv en mail herinde på udviklern.dk og så ville jeg blive glad.
Hej jeg er lidt ny inde for det med at kode php, og så ville jeg lige høre om der var nogen der kunne lave nogen lunde samme artikel, bare hvor i giver nogen kode eksempler. jeg ville nemlig gerne lave sådan en måde at få e-mail på inde på min hjemmeside, men da der ikke er nogen ordenlige kode eks. kan jeg ikke finde ud af hva men skal gøre helt præcist. jeg har prøvet en del og har da også kommet frem til et eller andet, men jeg bliver simpelhent nød til at have lidt kode eksempler at arbejde med.
Vis der er nogen der kan gøre det, så skriv en mail herinde på udviklern.dk og så ville jeg blive glad.
Mvh.
Jacob
Undskyld jeg skrev det jeg skrev.
Da jeg er ny herinde på udvikleren.dk vidste jeg ikke at man bare skulle trykke der hvor der ståt kode for at få koden frem.
Mvh.
Jacob
jeg kan ikke få det til at virke. Har puttet det hele ind på serveren (min webhost er frac.dk, som efter sigende understøtter php)... kan nogen fortælle mig hvad jeg har gjort galt? har skrevet min emailadresse i "send.php"
på forhånd tak
Artiklen var vildt god. Jeg er først lige selv begyndt at lære PHP, og denne artikel var dejlig nem at forstå, og koden var også meget simpel. Men jeg prøvede den, og alt så ud til at virke. Men problemet er bare at jeg ikke modtager en email?
http://dodk.hotserv.dk/fight.php > der er den. Kan ikke se hvad jeg har gjort galt? Det eneste jeg har ændret i er CSS og det med location, har jeg ændret til index.php. Kan I hjælpe mig?
- Killera.
Hov.. lige meget nu. Har fået det til at virke. Det var fordi de havde slået mailafsendelse fra hos Hotserv. Har fået købt et rigtigt domæne nu, og har udbygget din kode rigtigt meget. Det er en SÅ fed kode, den var nem at starte ud med, og jeg lærte en HEL masse. Hold kæft, det er fedt med sådan en artikel - du forklarer den også super. Thumbs up for en RIGTIG fed start du gav mig som PHP koder. (:
- Killera
Jeg må indrømme jeg ikke synes koden i artiklen er så hensigtsmæssig, så her har I mit bud:
<?php
// ----------------------------------
// Trin 1: Konfiguration
// Jeg foretrækker arrays, selvom det i denne situation kan virke lidt (meget) overflødigt :)
// ----------------------------------
$CONFIG = array ();
$CONFIG['email'] = 'thomas_kappel@hotmail.com'; // modtager
$CONFIG['html'] = (bool) FALSE; // brugere kan ikke bruge HTML, ellers TRUE
$CONFIG['side'] = $_SERVER['PHP_SELF']; // modtager-siden er samme side
$CONFIG['emne'] = TRUE; // emne skal udfyldes - ellers FALSE
// ----------------------------------
// Trin 2: Data
// ----------------------------------
extract ($CONFIG, 3, 'conf');
extract ($_POST);
// ----------------------------------
// Trin 3: Validering
// ----------------------------------
function ValiderNavn ($navn) {
$return = htmlspecialchars ($navn); // ikke htmlentities - æøå skal med
$return = ereg_replace ("[0-9]", "", $navn);
return $return;
}
if ((int) $__do === 1) {
if (!$navn) $fejl = 'Du skal indtaste dit navn';
if (ValiderNavn ($navn) != $navn) $fejl = 'Dit navn indeholder ulovlige tegn';
if (strlen ($navn) < 2) $fejl = 'Så kort kan dit navn ikke være';
if ($conf_emne && (!$emne)) $fejl = 'Din besked skal have et emne';
// Email tjek
// Har brugt Jacobs regex da jeg ikke selv er en ørn til det :)
if (!eregi ("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3})$", $email)) $fejl = 'Din e-mail er
ugyldig';
if (strlen ($besked) < 10) $fejl = 'Din besked er for kort';
if (!$fejl) {
$header = "From: $navn <$email>\\nReply-To: $navn";
if ($conf_html) $header .= "\\nContent-Type: text/html; charset=ISO-8859-1";
else $besked = strip_tags ($besked);
if (mail ($conf_email, $emne, $besked, $header)) print '<p><h3><font color="#008000">Din besked er
afsendt</font></h3></p>';
else $fejl = 'Din besked kunne desværre ikke sendes';
}
else print "<p><h3><font color='red'>$fejl</font></h3></p>";
}
// ----------------------------------
// Trin 4: Formular
// I nogle tilfælde brokker PHP sig over udeklarerede variabler
// Derfor brugen af @ :)
// ----------------------------------
@print "<form action='$conf_side' method='post'>
<input type='hidden' name='__do' value='1' />
<table>
<tr><td>Navn:</td><td><input type='text' name='navn' value='$navn' /></td></tr>
<tr><td>Emne:</td><td><input type='text' name='emne' value='$emne' /></td></tr>
<tr><td>E-mail:</td><td><input type='text' name='email' value='$email' /></td></tr>
<tr><td>Besked:</td><td><textarea cols='35' rows='8' name='besked'>$besked</textarea></td></tr>
<tr><td> </td><td><input type='submit' value='Send e-mail' /></td></tr>
</table>
</form>
";
?>
Med meget få forklaringer, men det er jo heller ikke en artikel
Den burde virke, selvom PHP tit har problemer i forbindelse med hotmail. I værste fald ryger mailen i junk.
^.+@.+\\..+$
Betyder den skal starte med et eller flere tegn, så kommer der et @, så kommer der mindst ét tilfældigt tegn, derefter et punktum, så mindst ét tilfældigt tegn til slut.
^ = Skal starte med
.+ = Et eller flere tilfældige tegn
@ = Så et snabel-A
.+ = Et eller flere tilfældige tegn
\\. = Punktum
.+ = Et eller flere tilfældige tegn
$ = Slut
For at undgå det med flere snabel-a'er, kunne man skrive
^.+@{1}.+\\..+$
Inden man beynder for meget på regex skal man være opmærksom på at o'brien@irland.ie er gyldig
Nogen der lige kan hjælpe.
Når mailen er sendt kommer der en næsten tom side med beskeden "Mailen blev sendt uden problemer"
kan man ændre det , så den går hen på en side - f.eks tak.html
mvh stef
Nogen der lige kan hjælpe.
Når mailen er sendt kommer der en næsten tom side med beskeden "Mailen blev sendt uden problemer"
kan man ændre det , så den går hen på en side - f.eks tak.html
mvh stef
header ("Location: tak.html");
Sæt den før al andet output.
Jeg takker Thomas mange gange for "guiden" om hvad "^.+@.+\\..+$" m.m betyder.
Meget nyttig.. tak, tak!
Rigtig flot artikel. Den virker bare uden problemer, og skulle gerne kunne forstås af nybegyndere.
Hej
God velskrevet artikel men:
Jeg har lavet alt efter vejledningen. Formularsiden vises pænt men når jeg har udfyldt felterne og prøver at sende så får jeg bare standdard-fejl svaret "Der opstod en fejl. Prøv igen." og kan så klikke tilbage til formularsiden. Mailen bliver altså ikke sendt. Hvad kan det skyldes? PHP virker ellers tilsyneladende ok på serveren som har kørt fint i lang tid. (apache 1.3.27)
Siden er på
http://www.nimmersoft.dk/formmailtest.htmMange hilsener Joergen
Hej
God velskrevet artikel men:
Jeg har lavet alt efter vejledningen. Formularsiden vises pænt men når jeg har udfyldt felterne og prøver at sende så får jeg bare standard-fejl svaret "Der opstod en fejl. Prøv igen." og kan så klikke tilbage til formularsiden. Mailen bliver altså ikke sendt. Hvad kan det skyldes? PHP virker ellers tilsyneladende ok på serveren som har kørt fint i lang tid. (apache 1.3.27)
Siden er på
http://www.nimmersoft.dk/formmailtest.htmMange hilsener Joergen
Hej igen og Undskyld jeg roder
Jeg fandt ud af hvad jeg manglede - SMTP angivelsen i PHP.INI !!
Godt Nytår til alle
NimmerSoft
()()
(--)
(")(")
Ordbog:
Kanin betyder Thubs up!
hmm
Den var da til at forstå.
MEN
Du har ikke været så god til at forklare HVORDAN den sender mailen (Vilken del af koden, hvordan fungerer det osv.).
Øhh.. Jeg ved ikke om hvor mange der begynder at grine af mig når jeg spørger sådan her: Hvor skal PHP koden sættes ind hende? Er det i et dokument for sig selv eller i samme som input felterne står i?
Dette er det første gang jeg forsøger at bruge PHP.. Og som i kan høre går det ikke helt optimalt. Håber i vil hjælpe mig
Glem sidste indlæg har fundet ud af det
Nu er der blot opstået et nyt problem. Når jeg gemmer min PHP fil med navnet: send.php Så når jeg udfylder formen og trykker Send så giver åbner den en "Filoverførsel" med send.php (Det skal nok også lige siges at jeg gør det offline altså hvor jeg bare åbner dokumentet i en browser.)
Kan det have noget at gøre med at jeg er ikke gør det online?
Hej med hensyn til at få vist fejlmeddelelser på kontakt siden, kan man erstatte de sidste fejlmeddelelser med denne kode i sin "formulartjekker".
- {
-
- $kontaktdone=urlencode("Mailen er nu sendt til Developer World's administration!");
- header("Location:http://www.dev-world.dk/kontakt/index.php?kontaktbesked=".$kontaktdone);
-
- }
-
- else
- {
- $kontaktfejl=urlencode("Der opstod en fejl, prøv venligst igen!");
- header("Location:http://www.dev-world.dk/kontakt/index.php?kontaktbesked=".$kontaktfejl);
-
- }
-
- }
-
- else
- { //Hvis e-mail adressen ikke har et @ kommer vi med endnu en fejl
-
- $kontaktfejl=urlencode("E-mail adressen du har skrevet er ugyldig, prøv venligst igen!");
- header("Location:http://www.dev-world.dk/kontakt/index.php?kontaktbesked=".$kontaktfejl);
-
- }
-
- }
- }
Du skal så på den side hvor din kontakt formular er indsætte denne kode (bemærk din kontaktformular side skal være med endelsen .php)
- <?php
- echo $_GET["kontaktbesked"];
- ?>
- <?php
- echo $_GET["kontaktdone"];
- ?>
Koden skal indsættes der hvor du vil have vist din fejlbeskeder
Glemte at tilføje at du selvfølgelig skal slette der hvor der står
http://www.dev-world.dk/kontakt/, da dette er den jeg brugte på min hjemmeside.
index.php kan være noget andet, f.eks. kontakt.php - Det vigtige er at
?kontaktbesked=".$kontaktfejlog
?kontaktbesked=".$kontaktdonestår der, da det er det som laver beskeden.
God Fornøjelse
Du skal være
logget ind for at skrive en kommentar.