/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
null eller ikke null??
Fra : Mads Kristiansen


Dato : 24-05-01 01:18

Jeg har en formular som så skal sætte nogle variabler ind i en database.
Hvis nu en bruger ikke skriver noget i felterne og trykker på "submit", er
variablerne så null? Og i så fald hvordan tjekker jeg om variablerne er
null?
På forhånd tak
Mads



 
 
Martin Frostholm (24-05-2001)
Kommentar
Fra : Martin Frostholm


Dato : 24-05-01 08:16

"Mads Kristiansen" <2546927m001@mail1.stofanet.dk> wrote in message
news:3b0c5366$0$9992$ba624c82@nntp01.dk.telia.net...

> Jeg har en formular som så skal sætte nogle variabler ind i en database.
> Hvis nu en bruger ikke skriver noget i felterne og trykker på "submit", er
> variablerne så null? Og i så fald hvordan tjekker jeg om variablerne er
> null?

if ( IsEmpty($var))
{

}

--
Martin Frostholm
mailto:martin@frostholm.com



Niels Andersen (24-05-2001)
Kommentar
Fra : Niels Andersen


Dato : 24-05-01 09:08

"Mads Kristiansen" <2546927m001@mail1.stofanet.dk> skrev i en meddelelse
news:3b0c5366$0$9992$ba624c82@nntp01.dk.telia.net...
> Jeg har en formular som så skal sætte nogle variabler ind i en database.
> Hvis nu en bruger ikke skriver noget i felterne og trykker på "submit", er
> variablerne så null? Og i så fald hvordan tjekker jeg om variablerne er
> null?

I PHP plejer man ikke at gøre forskel på ikke-eksisterende variabler, null
(intet), tallet 0, tallet 0.0 og "" (en tom streng)
Hvis et felt ikke er udfyldt, er jeg lidt i tvivl om browseren skal fortælle
dette til serveren, eller om feltet skal ignoreres, eller om det er
frivilligt.

Du kan måske bruge funtionen empty(). Den returnerer true både hvis det er
en tom streng, eller hvis den ikke er sat.
Men både tallet 0, strengen "0", strengen "", den boolske værdi false, et
tomt array samt en ikke-eksisterende variabel betragtes som "empty".

Men hvis du skal have det mere detaljeret, så er der funktioner som isset(),
is_null().
Du kan også kigge på disse eksempler jeg har brygget sammen til dig:

if (isset($var)) {
echo "Variablen eksisterer<br>\n";
}
if ($var===null { // bemærk: 3x =
echo "Variablen er null<br>\n";
}
if ($var==="") { // bemærk: 3x =
echo "Variablen er en tom streng<br>\n";
}

Som du kan se er ikke ikke helt så simpelt. Den rigtige løsning afhænger af
helt præcist hvad det er, du vil opnå. Hvis du vil sikre dig, at der er
skrevet NOGET i et felt, så kan du fx. gør sådan her:

if (! isset($var) || ($var == "")) {
// Feltet ikke udfyldt
}

Altså, først tjekker den om variablen overhovedet eksisterer. Hvis den gør
det, tjekkes der om det er en tom streng. Det er et eksempel taget (næsten)
direkte fra manualen. Jeg ville nok bruge tre lighedstegn i stedet for to,
jeg er lidt i tvivl om hvordan ovenstående vil håndtere det hvis man skriver
tallet 0 i et felt...


Mvh.

Niels Andersen



Stefan Bruhn (24-05-2001)
Kommentar
Fra : Stefan Bruhn


Dato : 24-05-01 09:37

On Thu, 24 May 2001 10:08:22 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:

>Jeg ville nok bruge tre lighedstegn i stedet for to

Det med tre lighedstegn har jeg ikke hørt om før.
Hvad præcis gør det?

Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>

Jakob Kirkegaard (24-05-2001)
Kommentar
Fra : Jakob Kirkegaard


Dato : 24-05-01 09:43

"Stefan Bruhn" <news002@3x7.dk> wrote in message
news:v0ipgt00qtjaldcdv1hkarn8bp8o174a9m@ghashul.dk...
> On Thu, 24 May 2001 10:08:22 +0200, "Niels Andersen"
> <niels-usenet@myplace.dk> wrote:
>
> >Jeg ville nok bruge tre lighedstegn i stedet for to
>
> Det med tre lighedstegn har jeg ikke hørt om før.
> Hvad præcis gør det?

Tester på både værdi og type.

--
mvh Jakob Kirkegaard
WEB: http://kom.auc.dk/~jkir00
ICQ: 117396338





Niels Andersen (24-05-2001)
Kommentar
Fra : Niels Andersen


Dato : 24-05-01 10:41

"Stefan Bruhn" <news002@3x7.dk> skrev i en meddelelse
news:v0ipgt00qtjaldcdv1hkarn8bp8o174a9m@ghashul.dk...
> Det med tre lighedstegn har jeg ikke hørt om før.
> Hvad præcis gør det?

Fx:
"" er en String
"0" er en String
0 er en int
0.0 er en float

Sandt:
"0"==0
0==0.0
0.0=="0"
""==0

Falsk:
"0"===0
0===0.0
0.0==="0"
""===0

Altså, hvis $var indeholdet tallet 0, vil
if ($var=="") {
echo "\$var er tom";
}
være forkert. Tallet 0 kunne jo godt være en oplysning.

$ofre = 0;
if ($ofre=="") {
echo "Antal ofre ikke angivet, anklagede er ikke samarbejdsvillig";
}
if ($antal=="0") {
echo "Anklagede er uskyldig";
}

Her ville jeg nok lave første if-sætning en anelse anderledes. :)


Mvh.

Niels Andersen



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408945
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste