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