11. januar 2007 - 16:23Der er
27 kommentarer og 1 løsning
PHP mailform med validering
Hej der ude,
Jeg har igennem længere tid forsøgt at finde et relativt simpelt php script, der kan validere nogle ønskede fælter i min php mailform.
Jeg synes at have fundet en masse, men ingen af dem var særlige fleksible.
Mit problem er, at min mailform i dag ikke er beskyttet for robotter, hvilket kan resulterer i nogle massive angreb. Jeg har kigget lidt på nogle javascripts, men det beskytter mig ikke imod robotterne.
Jeg håber nogle kan hjælpe, og hvis det ønskes kan jeg paste min mailform jeg benytter i dag.
if(mail($modtager, $emne, $helebesked, "From: ".$_POST['username']." - ".$_POST['firma']." (tlf: ".$_POST['usertlf'].") <".$_POST['useraddr'].">;")) { echo "<h3>Din besked blev sendt...!</h3><p class='wid'>Jeg takker for din mail og vil besvare den hurtigst muligt! <br /><br />Med venlig hilsen <br />Gudiksen</p>"; }
}else{ echo "Et eller flere felter var efterladt tomme!"; }
Hmmm, det kunne godt se ud som om det virkede - men - kun nogle af felterne skal valideres; Navn, Email, Tlf & Besked.
Skal jeg så benytte cookies for at den husker felterne, når beskeden ikke accepteres hvis man mangler et felt? Tror det vil give nogle en dårlig oplevelse, hvis de har "glemt" et felt, og alt hvad de har skrevet bliver nulstillet.
if(mail($modtager, $emne, $helebesked, "From: ".$_POST['username']." "<".$_POST['useraddr'].">")) { echo "<h3>Din besked blev sendt...!</h3><p class='wid'>Jeg takker for din mail og vil besvare den hurtigst muligt! <br /><br />Med venlig hilsen <br />Gudiksen</p>"; }
}else{ echo "Et eller flere felter var efterladt tomme!"; }
Tak for dit svar, jeg får desværre en fejl; Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/ny.php on line 110
Så har jeg fået det til at virke! Nu validere den også kun de felter jeg ønsker...
Jeg håber denne løsning holder vand, og at jeg ikke behøves at tilføje "kontrol" af felter - som f.eks. at tlf skal indeholde 8 cifre.
En sidste ting jeg kunne være interesseret i; Nå beskeden er sendt, vil jeg gerne man hopper ned i bunden af siden hvor kontaktformularen befinder sig – dette om den er sendt korrekt eller om man har glemt at udfylde noget.
Er dette muligt?
Formularen er HELT i bunden på siden og derfor upraktisk og usikkert om folk ser om meddelelsen er sendt eller ej…
det med at den skal hoppe ned gør du ved at angive et id til meddelelsen f.eks. således:
<div id="hopned">Meddelelse her...</div>
også under <form> skriver du #hopned i action
du skal dog være opmærksom på at hvis meddelelsen står på en anden side end selve formularen så skal du bare skrive det i action, dvs: sidenavn.htm#hopned
Du behøver ikke give mig dem, jeg samler nemlig ikke på dem.
Men du kan give dig selv dem ved at trykke på svar ude i venstre side - lige ved siden af tekst feltet som du skriver kommentare i. og derefter skriver du bare et eller andet og trykker "Send".
Så kommer dit navn frem nederst på siden til venstre (der hvor du valgte 'svar' før), det markere du og trykker accepter.
Simplus > Ang. det med at fjerne ' mellem [ og ], så er det ikke noget man skal. Det er nærmere en smagssag. Jeg putter dem ind for at være på den sikre side ;)
Ja det fandt jeg lige ud af, jeg var åbenbart lidt forvirret da jeg sagde det, det burde nemlig heller ikke løse problemet nu hvor jeg tænker over det.
Det er taget til eftertanke og burde ikke kunne ske igen :-)
Nu har jeg haft fred for spamrobotterne i noget tid, men de er vendt tilbage. Jeg tror det er nødvendigt med validering af eks. tlf. feltet. Om der _skal_ være 8 tal, eller den kun kan godkendes med tal er jeg ikke helt sikker på. Hvis nogle kunne finde på at skrive +, skal det måske også med.
Har i mulighed for at hjælpe med at udvide scriptet lidt, således den validere tlf feltet med følgende: +,0,1,2,3,4,5,6,7,8,9 - og hvis den indeholder andre tal, så bliver den afvist med samme meddelse som ellers.
Eller har i et bedre forslag?
Synes godt om
Ny brugerNybegynder
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.