Validering af email i kontaktformular

Her kan du skrive om fejl eller mangler på Ludvigs Hjørne. Fx hvis et program er kommet i en ny version, og hjemmesiden trænger til at blive opdateret.

Validering af email i kontaktformular

Indlægaf E.A. » fre nov 20, 2009 13:36

Hej Kim

Jeg har eksperimenteret med at lave en kontaktformular på min hjemmeside, og faldt over din fine anvisning under Kompozer guiden. Genialt med en spamfælde :D

Har dog ikke lagt den endeligt ud på min side endnu, for man kan sagtens trykke send, uden der er en e-mailadresse.
Jeg har ikke forstand på php selv, så jeg håber du vil hjælpe.
Er det muligt at der kunne indlægges en slags 'feltet er obligatorisk' ting?

Det kunne måske også være rart i de andre felter i visse siturationer.

Bemærkede i øvrigt, at der også ligger en formular under Ubuntu, hvor man kan bestille x antal.
Er det en kode du vil dele?

M.v.h.Ellen
E.A.
 
Indlæg: 4
Tilmeldt: fre nov 20, 2009 1:51

Re: Validering af email i kontaktformular

Indlægaf Kim Ludvigsen » fre nov 20, 2009 13:58

Åbn filen kontaktformular.php i Notesblok eller en lignende editor
Find denne linje:

/* Her tjekkes, om det skjulte spamfælde-felt er udfyldt */

Lige før den linje, indsætter du dette:

/* Her tjekkes, om der er udfyldt med en mailadresse */
if(!empty($epost)) {
echo "TEKST";
exit ();
}

Du skal så blot udskifte TEKST med den tekst, du vil have vist, fx:
Du skal angive din e-mail-adresse. Klik på tilbageknappen for at komme tilbage til forrige side.

Vil du gøre andre felter obligatoriske, kan du bruge samme fremgangsmåde, men i stedet for $epost skal du bruge navnet på det pågældende felt, fx $besked for beskedfeltet.

Det kan gøres meget smartere, fx med visning af den samme side men med en fejltekst - dette er bare en meget hurtig løsning. Det andet klares bedst med JavaScript, og det har jeg ikke så meget tjek på.

Bestillingsformularen er skræddersyet til mit formål og benytter bl.a. en database. Reelt kan du også "bare" se på kontaktformularen og tilrette feltnavne i html-koden og tilføje/fjerne ønskede/uønskede felter. Udregningsfunktionen er lavet i JavaScript, og den kan du aflæse i sidens kildekode, omend den jo nok skal være anderledes til dit brug.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7140
Tilmeldt: tors jun 08, 2006 0:49

Re: Validering af email i kontaktformular

Indlægaf E.A. » lør nov 21, 2009 1:35

Mange tak for det hurtige svar, det vil jeg fluks afprøve :D
M.v.h. Ellen
E.A.
 
Indlæg: 4
Tilmeldt: fre nov 20, 2009 1:51

Re: Validering af email i kontaktformular

Indlægaf E.A. » man nov 30, 2009 0:58

Hej Kim

Åbn filen kontaktformular.php i Notesblok eller en lignende editor
Find denne linje:

/* Her tjekkes, om det skjulte spamfælde-felt er udfyldt */

Lige før den linje, indsætter du dette:

/* Her tjekkes, om der er udfyldt med en mailadresse */
if(!empty($epost)) {
echo "TEKST";
exit ();
}


Det prøvede jeg med det meget mærkelige resultat, at hvis man ikke skrev noget i feltet blev formularen sendt uden kommentarer, men hvis man skrev noget i feltet, kom beskeden 'Du skal angive din e-mail-adresse. Klik på tilbageknappen for at komme tilbage til forrige side.'

Altså det omvendte af, hvad jeg ville forvente med ovenstående. Virkelig spøjst, ikke? Jeg mener, jeg læser det som der står: Hvis der ikke står noget i dette felt, så skriv en meddelelse ellers accepter, men der sker det stik modsatte :?

Jeg har prøvet med forskelligt, for jeg tænkte, det måtte være til at finde ud af, og kom frem til følgende, som jeg satte ind i linjerne med kontrol af mail-adresse, der allerede ligger i formularen:

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og i så fald bruges den som afsenderadresse, så der kan svares på mailen */
if(!empty($epost)) {
$headers="From: $navn <$epost>\r\n";
}
else {
echo "Du skal angive din e-mail-adresse. Klik på tilbageknappen for at komme tilbage til forrige side.";
exit ();
}

Det virker sjovt nok, men da jeg ikke forstår mig på php, og ikke helt ved hvorfor det virker med denne kode, spekulerer jeg på, om det kan få uventede virkninger? Der bruges jo mange forskellige browsere rundt omkring, så vil det virke?
Kan du se, om det er ok, eller er der noget, jeg skal gøre anderledes?

M.v.h.Ellen
E.A.
 
Indlæg: 4
Tilmeldt: fre nov 20, 2009 1:51

Re: Validering af email i kontaktformular

Indlægaf Kim Ludvigsen » man nov 30, 2009 1:13

Dum fejl fra min side. Brug min kode, men fjern udråbstegnet fra denne linje:
if(!empty($epost)) {
Det skal altså være:
if(empty($epost)) {

Udråbstegnet betyder "ikke" og giver netop den modsatte virkning.
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7140
Tilmeldt: tors jun 08, 2006 0:49

Re: Validering af email i kontaktformular

Indlægaf E.A. » man nov 30, 2009 1:16

Mange tak, det havde jeg ikke gennemskuet.
Det vil jeg prøve.
M.v.h.Ellen
E.A.
 
Indlæg: 4
Tilmeldt: fre nov 20, 2009 1:51


Tilbage til Fejl eller mangler

Hvem er online

Brugere der læser dette forum: Ingen og 12 gæster

cron