06. august 2006 - 20:54
Der er
21 kommentarer og 1 løsning
Validering af formular!
Hej, Jeg sidder og arbejder med validering af en php-formular. Jeg starter min php med følgende: <?php if(isset($_POST["E-mail"])) { $msg = "Fornavn:".$_POST["Fornavn"]."\nEfternavn:".$_POST["Efternavn"]."\nFirma:".$_POST["Firma"]."\nCVR/SE nr.:".$_POST["CVR"]."\nAdresse:".$_POST["Adresse"]."\nPostnr.:".$_POST["Postnr"]."\nBy:".$_POST["By"]."\nTelefon:".$_POST["Telefon"]."\nMobil:".$_POST["Mobil"]."\nFax:".$_POST["Fax"]."\nE-mail:".$_POST["E-mail"]."\nDomænenavn:".$_POST["Domainnavn"]."\nDomænetype:".$_POST["Domaintype"]."\nHar domænenavn:".$_POST["Hardomainnavn"]."\nHar domænetype:".$_POST["Hardomæne"]."\nMailhotel:".$_POST["Mailhotel"]."\nWebdesign:".$_POST["Webdesign"]."\nWebhotel:".$_POST["Webhotel"]."\nWebshop:".$_POST["Webshop"]."\nServiceaftale:".$_POST["Serviceaftale"]."\nTryksager:".$_POST["Tryksager"]."\nBesked:".$_POST["Besked"]."\nKontaktmetode1:".$_POST["Kontaktmetode1"]."\nKontaktmetode2:".$_POST["Kontaktmetode2"]."\nKontaktmetode3:".$_POST["Kontaktmetode3"]."\nNyhedsbrev:".$_POST["Nyhedsbrev"]."\nAccept af salgsbetingelser:".$_POST["Accepterersalgsbetingelser"]; mail("mail@designunltd.dk", "Bestilling", $msg, "From: ".$_POST["Fornavn"]." ".$_POST["Efternavn"]." <".$_POST[E-mail].">"); header("Location: index.php"); } ?> I body har jeg skrevet min validering, som er følgende: <?php if (isset($_POST['E-mail'])) { if (empty($_POST['E-mail'])) { echo "Du skal indtaste dit e-mail"; if (empty($_POST['Postnr'])) { echo "Du skal indtaste dit postnr."; } else //Ingen af felterne er tomme { echo "Emailen er nu sendt!"; } } ?> også den tilhørende formular. Men det virker ikke efter hensigten, er der en som kan hjælpe mig? Hvordan kan jeg lave betingelse til postnr. dvs. at feltet skal indeholde 4 tal?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
06. august 2006 - 20:58
#1
06. august 2006 - 21:00
#2
Hvis du vil have et validt postnummer, så vil jeg anbefale du henter cvs filen fra Post Danmark og så læser filen ind og søger efter det vedkommende har skrevet.
06. august 2006 - 21:02
#3
Hvor findes cvs-filen?
06. august 2006 - 21:04
#4
Hej iss, Kan du hjælpe med min validering?
06. august 2006 - 21:20
#6
06. august 2006 - 21:32
#7
Men hvordan skal jeg opbygge valideringen?
06. august 2006 - 21:54
#8
Du laver en select i databsen på postnummeret er der en række så er den valid. db_connect; $q = "SELECT `Bynavn` FROM `postnummere`WHERE `Postnr` = ".$_POST['Postnr']; if (mysql_numrows($r = mysql_query($q)) == 0) $fejl .= "Ikke gyldigt postnummer<br>"; if (!preg_match("/[a-z]{6}[0-9]{2}[abcdehlmprst]{1}[0-9]{2}[a-z0-9]{5}/i", $_POST['E-mail'])) $fejl .= "Ikke gyldig email<br>";
06. august 2006 - 22:04
#9
Jeg har ikke erfaring med php, hvor skal jeg sætte din kode?
06. august 2006 - 22:23
#10
Istedet for if (isset($_POST['E-mail'])) { if (empty($_POST['E-mail'])) { echo "Du skal indtaste dit e-mail"; if (empty($_POST['Postnr'])) { echo "Du skal indtaste dit postnr."; } else //Ingen af felterne er tomme { echo "Emailen er nu sendt!"; } } ?> Og så skal du huske at lave en echo $fejl der hvor du vil have dine fejl udskrevet.
06. august 2006 - 22:26
#11
Og By:".$_POST["By"] kan du droppe helt, byen har du fra databasen. Som du kan hente ud med: $db = mysql_fetch_array($r, MYSQL_ASSOC); og så hedder den så $db['Bynavn'].
06. august 2006 - 22:48
#12
Skal jeg skrive <$fejl> eller hvad?
06. august 2006 - 22:55
#13
Nej, du skriver <? echo $fejl; ?> Hvis du skal lære PHP, hvorfor så ikke starte med noget der er nemmere???
06. august 2006 - 23:03
#14
Du har ret, men jeg lære bedst på den hårde måde.
06. august 2006 - 23:06
#15
Du lære ikke noget af det hvis jeg skal skrive alt hvad du skal lave....
06. august 2006 - 23:18
#16
Hej iss, Nu ser min kode i <head> sådan ud: <?php if(isset($_POST["E-mail"])) { $msg = "Fornavn:".$_POST["Fornavn"]."\nEfternavn:".$_POST["Efternavn"]."\nFirma:".$_POST["Firma"]."\nCVR/SE nr.:".$_POST["CVR"]."\nAdresse:".$_POST["Adresse"]."\nPostnr.:".$_POST["Postnr"]."\nBy:".$_POST["By"]."\nTelefon:".$_POST["Telefon"]."\nMobil:".$_POST["Mobil"]."\nFax:".$_POST["Fax"]."\nE-mail:".$_POST["E-mail"]."\nDomænenavn:".$_POST["Domainnavn"]."\nDomænetype:".$_POST["Domaintype"]."\nHar domænenavn:".$_POST["Hardomainnavn"]."\nHar domænetype:".$_POST["Hardomæne"]."\nMailhotel:".$_POST["Mailhotel"]."\nWebdesign:".$_POST["Webdesign"]."\nWebhotel:".$_POST["Webhotel"]."\nWebshop:".$_POST["Webshop"]."\nServiceaftale:".$_POST["Serviceaftale"]."\nTryksager:".$_POST["Tryksager"]."\nBesked:".$_POST["Besked"]."\nKontaktmetode1:".$_POST["Kontaktmetode1"]."\nKontaktmetode2:".$_POST["Kontaktmetode2"]."\nKontaktmetode3:".$_POST["Kontaktmetode3"]."\nNyhedsbrev:".$_POST["Nyhedsbrev"]."\nAccept af salgsbetingelser:".$_POST["Accepterersalgsbetingelser"]; mail("mail@designunltd.dk", "Bestilling", $msg, "From: ".$_POST["Fornavn"]." ".$_POST["Efternavn"]." <".$_POST[E-mail].">"); header("Location: index.php"); } ?> og i <body> <?php if (!preg_match("/[a-z]{6}[0-9]{2}[abcdehlmprst]{1}[0-9]{2}[a-z0-9]{5}/i", $_POST['E-mail'])) $fejl .= "Ikke gyldig email<br>"; ?> og <? echo $fejl; ?> ved e-mail Men selvom fejlen er på før jeg taster i e-mail feltet, og når jeg trykker på Send, så redirecter jeg til index.php! Hvordan kan man gør så fejlen kommer, når man trykker på send og at man kun redirecter til index ved korrekt udfyldning?
06. august 2006 - 23:20
#17
Jeg prøver også alt mulige måder at kode. Jeg skal bare have fat i terminologien i php. Jeg er taknemlig for din hjælp.
06. august 2006 - 23:33
#18
if (!preg_match("/[a-z]{6}[0-9]{2}[abcdehlmprst]{1}[0-9]{2}[a-z0-9]{5}/i", $_POST['E-mail'])) $fejl .= "Ikke gyldig email<br>"; if(empty($fejl)) { $msg = "Fornavn:".$_POST["Fornavn"]."\nEfternavn:".$_POST["Efternavn"]."\nFirma:".$_POST["Firma"]."\nCVR/SE nr.:".$_POST["CVR"]."\nAdresse:".$_POST["Adresse"]."\nPostnr.:".$_POST["Postnr"]."\nBy:".$_POST["By"]."\nTelefon:".$_POST["Telefon"]."\nMobil:".$_POST["Mobil"]."\nFax:".$_POST["Fax"]."\nE-mail:".$_POST["E-mail"]."\nDomænenavn:".$_POST["Domainnavn"]."\nDomænetype:".$_POST["Domaintype"]."\nHar domænenavn:".$_POST["Hardomainnavn"]."\nHar domænetype:".$_POST["Hardomæne"]."\nMailhotel:".$_POST["Mailhotel"]."\nWebdesign:".$_POST["Webdesign"]."\nWebhotel:".$_POST["Webhotel"]."\nWebshop:".$_POST["Webshop"]."\nServiceaftale:".$_POST["Serviceaftale"]."\nTryksager:".$_POST["Tryksager"]."\nBesked:".$_POST["Besked"]."\nKontaktmetode1:".$_POST["Kontaktmetode1"]."\nKontaktmetode2:".$_POST["Kontaktmetode2"]."\nKontaktmetode3:".$_POST["Kontaktmetode3"]."\nNyhedsbrev:".$_POST["Nyhedsbrev"]."\nAccept af salgsbetingelser:".$_POST["Accepterersalgsbetingelser"]; mail("mail@designunltd.dk", "Bestilling", $msg, "From: ".$_POST["Fornavn"]." ".$_POST["Efternavn"]." <".$_POST[E-mail].">"); header("Location: index.php"); }
06. august 2006 - 23:34
#19
Og ud over det skal du også være sikker på at der er trykket på submit.
06. august 2006 - 23:36
#20
Og hvis du vil tages seriøst som firma vil jeg nok sige du skal finde et andet webhotel end b-gone...
06. august 2006 - 23:39
#21
jeg skifter til anden webhotel i næste uge, for b-one er noget lort. Har du selv firma?
29. november 2006 - 15:28
#22
lukker spørgsmålet
Vi tilbyder markedets bedste kurser inden for webudvikling