Her får du hjelp til å lage hjemmeside med video. Alle verktøy og programmer vi bruker til å lage webside er gratis.
spørsmål rundt !isset og empty
Jeg har sett noen guider rundt på nettet hvor samtlige har satt !isset på samtlige felter. Slik:
if ( !isset($_POST['felt1']) || !isset($_POST['felt2'])) {
header ('location: url');
} elseif (empty($_POST['felt1']) || empty($_POST['felt2'])) {
header ('location: url.com/');
} else {
... action ...
}
Har sittet og tenkt littegranne og for meg ser det unødvendig ut å bruke !isset på feltene. Dette burde vel holde?:
if ( !isset($_POST['submit'])) { ... }
elseif (empty($_POST['felt1']) || empty($_POST['felt2'])) { ... }
else { ... action ... }
Vet at scriptet skal sjekke om at brukeren som forsøker å få tilgang kommer fra riktig plass. Altså har gått via den riktige formen. Men bare lurer litt.
Dette kommer jo litt ann på hva du har tenkt til å gjøre. Selv bruker jeg denne fremgangsmåten
<?php
if($_POST) {
// Skjema er postet
if(empty($_POST['foo'])) {
print '<p>foo er tom</p>';
}
} else {
print '<p>Post er ikke satt</p>';
}
?>Hvis en post request er sendt, så er det unødvendig å sjekke om ett enkeltfelt er satt eller ikke, for når et skjema sendes så vil alle felter være satt uavhengig av om de inneholder verdier eller ei.
Dette er grunnen til at man gjerne bruker empty() for å se om et felt inneholder data eller ikke.
Usikker på om dette besvarer spørsmålet ditt.
Hvorfor bruke !isset()? Enten så er skjemaet sendt, eller så er det ikke sendt. Les det jeg skrev ovenfor én gang til.
Jeg sa at hvis skjemaet er postet så er alle feltene satt, men de kan være tomme.
Tenker du på med empty() da eller? Man kan jo alltid dra nytten av en foreach loop for eksempel. Den kan jo loope gjennom en assosiativ array (slik $_POST og $_GET er).
Ser den, se på videoen om arrays og hvordan de kan være assosiative eller baserte på indekser. Få også med deg videoen om looping gjennom arrayer.
Arrays er ikke så komplisert i PHP, det er bare en serie med variabler av ulik eller lik datatype (string, integer, boolean, float).

eks. i forbindelse med artikkel-opplastingen min da. Så har jeg 10 felter/elementer som skal fylles ut. Sant.
Så det føltes bare unødvendig mye, og tungvindt, å fylle ut 10 !isset(); og 10 empty(); i starten av scriptet.
Lurte også på en enklere måte å gjøre det hele på. Men det forklarte du på en måte så jeg...
med hilsen
Thomas Kile