spørsmål rundt !isset og empty

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009

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 !issetfeltene. 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.

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Sjekke om skjema er satt

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.

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
eks. i forbindelse med

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

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
!isset()

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.

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
sant... var det jeg sa også,

sant... var det jeg sa også, at du hadde forklart det...

Men, det er ikke noen enklere løsning å liste opp mange felter?

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Looping gjennom en assosiativ array med foreach

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).

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
Tenkte på empty()

Tenkte på empty() ja.

riktig... har ikke satt meg inn i array's enda. Da jeg ikke har brukt det til noe enda... Men holder på å studere en del funksjoner inne på php.net nå.

Så kan studere litt rundt det og bruken av det... Vet at du har en video rundt emnet også, så får gå tilbake til den å studere litt... Det letteste for meg er å bruke det til noe så jeg for forståelse av funksjonaliteten i det...

med hilsen
Thomas Kile

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Arrays

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).

ThomasK
ThomasKs bilde
Avlogget
Donator
Ble med: 30.12.2009
Må si at å lese om de

Må si at å lese om de forskjellige funksjonene etc. ikke gir meg så mye før jeg har brukt det til ett eget formål. Først etter at jeg har benyttet det til "noe" så kan jeg gå tilbake å lese og få forståeslen av de.

Skal se på videoene dine igjen etterhver og se om jeg får en bedre forståelse der... Ble ikke så mye klokere av bruken med det første inne på php.net.

Men isteden for å skive:

$amp_brand = 'Vincent';

$amp_type = 'Mono';

$amp_effect = 150;

... så kan man heller bruke array noe slik:

$amp = array(

    'brand' => 'Vincent',

    'type' => 'Mono',

    'effect' => 150);

 

 

med hilsen
Thomas Kile

Svar på forumemnet

(If you're a human, don't change the following field)
Your first name.
Innholdet i dette feltet blir holdt privat og vil ikke bli vist offentlig.