Avatar billede zac Nybegynder
12. september 2004 - 21:28 Der er 7 kommentarer og
1 løsning

Funktion til check af, om form felt er isset

Ofte vil et script checke først for, om en forms felter er sat/ udfyldt, og derefter foretage div. checks af de enkelte felters indhold.

Først fx:
if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['text']))
{
    echo "Det må du ikke, du skal udfylde alle felter....";
}

Derefter check af, om name er et navn, email en mail adr., osv.

Til den sidste omgang har jeg så småt fået skrevet funktioner.

Men hvordan lave en funktion, som checker, om feltet er udfyldt (fx isset og !empty)?

Nogle felter er *tvungne, andre ikke (denne skelnen angivet i tabellen i MySql ville ikke være dårlig...).
For hver forms brug af en tabel angivelse af tvungne og ikke-tvungne felter som en var. (anbragt ved form'en, som den hører til - eller v. større projekter i egen tabel)? I array?
Kald fra funktionen check_non_empty_fields til denne var. og dette array?
Avatar billede dennismp Nybegynder
12. september 2004 - 22:46 #1
function isok($navn) {
  return (isset($_POST[$navn]) && !empty($_POST[$navn]));
}

if( !isok('navn') || !isok('email') ) {
  print "Du skal udfylde alle felter";
}

kan evt også gøres:

$ok = true;
foreach(array('name','email','text') as $field)
  if( !isset($_POST[$field]) || empty($_POST[$field]) ) $ok = false;

if( !$ok ) {
  print "Du har ikke udfyldt alle felter";
}
else {
  // check enkeltfelter her
}
Avatar billede olebole Juniormester
13. september 2004 - 00:48 #2
<ole>

Brug _altid_ gåseøjne i array-kald: $_POST["variabel"]. At undlade dem er en fejl, som PHP godt nok forsøger at rette - men det er en blottelse i forhold til sikkerheden  ;o)

/mvh
</bole>
Avatar billede dennismp Nybegynder
13. september 2004 - 01:18 #3
Joo, men det gør han da allerede? :)
Avatar billede sukos Juniormester
13. september 2004 - 01:23 #4
Jeg ville nok:

function tjek($var) {
if(isset($var) && trim($var) !="") {
return true;
}else{
return false;
}

men kan jo gøres på mange måder! :O)
trim() fjerner alt "tom luft" og linieskift før og efter en var

if(true == tjek($_POST["navn"]) && $_POST["navn"] == "noget") {
........
}
Avatar billede sukos Juniormester
13. september 2004 - 01:25 #5
For at skelne mellem "skal sættes" og ikke nødvendig, (hentet fra en db), ville jeg nok lade sidste del af navnet være et tal, for at kunne udskille de post/get som skal tjekkes om de er sat
Avatar billede olebole Juniormester
13. september 2004 - 01:26 #6
*LooOooL* det var nu dig, jeg mente, dennis. Glem det - luk browseren - tøm dine temporære filer - knus monitoren - smid din HD i lokummet og træk ..... og sidst, men ikke mindst: Dræb og flå katten, hvis den læste over skulderen på dig ...!!!  :D

Du bruger jo variabler og ikke strenge ... Dooohhhhh, Ole  :oP
Det sker ikke igen .... _aldrig_ mere ...!!! (måske hehe)
/mvh
Avatar billede zac Nybegynder
21. oktober 2005 - 00:09 #7
Har glemt spm., men vil gerne give point til dennismp!
Avatar billede dennismp Nybegynder
21. oktober 2005 - 00:15 #8
ok :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester