Niels Andersen <niels-usenet@myplace.dk> wrote in
news:1yvr9.118863$Qk5.5080976@news010.worldonline.dk:
> Jeg ville fx. gøre sådan her:
>
> if (!isset($mode)) {
> $mode = '';
> }
Jeg bukker, og takker dig, og Jesper Brunholm. Det virker perfekt, uden
fejlmeddelser, eller andet gejl.
Jeg vil dog lige komme med den kommentar, at det virker både hvis jeg
erklære variablen = NULL eller = ''
> I hvert fald hvis vi ser isoleret på den kodestump. :)
>
> $mode er jo en streng, så "default" må vel være en tom streng. :)
>
>> Jeg får fejlmeddelsen, når jeg caller
>> if (!empty($mode))
>> eller
>> if (!empty($_GET['mode']))
>
> Det er fordi empty ikke kontrollere om variablen eksisterer, men
> kigger på hvad der er i den. Brug isset(), som vist herover. :)
Og det er bare noget der dur
>> Nej. Okay. Forfra. Første gang mitscript kaldes er det uden
>> parametere.
www.minserver.dk/mitscript.php, der skulde så komme et
>> index op, og man kan clicke på det emne man herne vil vil læse, og så
>> vil mitscript.php blive kaldet igen. mitscript.php?id=1&mode=vis
>
> Det er meget normalt at bruge det princip.
>
> Hvis dit script ikke kan andet end at vise, ville jeg dog droppe
> variablen "mode".
> I stedet ville jeg tjekke om id er sat. Hvis den er, og der findes
> indhold med det id, så ville jeg vise indholdet.
> Hvis id er sat, men er ugyldig, så vil jeg enten lade som om den ikke
> er sat eller vise en fejlmeddelelse.
Se det havde jeg jo overhovedet ikke tænkt på, men vil det ikke skabe
yderligere belastning på mysql serveren? Jeg tænker på at den først skal
chekke om id'et eksistere, og og hvis id'et eksistere, skal den så hente
resten.
Om det bare er bakketeller skal jeg ikke gøre mig klog på. (Jeg er meget
grøn på php / mysql området)
> Hvis scriptet kan mere end blot almindelig visning, ville jeg nok lade
> "default mode" være "vis", det giver en pænere url.
Se ovenover
>> Her antagede jeg at den udeklærede variabel mode = NULL
>
> Det har du også ret i, så vidt jeg husker.
>
> PHP er ret ... fri, hvad den slags angår.
>
>> Jeg har før lavet php scripts der gjorde dette, unden besvær, men det
>> må vel være de nye sikkerheds ting, der gør livet svært, eller også
>> har jeg aldrig lavet det ordenligt før!
>
> Det er et definitionsspørgmål, om det gjort "godt nok"/"ordentligt".
> :) Jeg vil ikke tøve med at påstå, at den "nye"[1] måde at gøre det på
> er bedre, omend i nogle tilfælle et sted mellem marginalt og
> ligegyldigt.
>
> Der er dog nogle (få), som ikke mener det er bedre, men bare mere
> besværligt. Jeg vil gætte på at de normalt arbejder med ting, hvor
> forskellen er forsvindende lille[2], eller at de ikke helt ved hvad de
> snakker om.
Nu kan jeg godt lide at gøre tingende på den gammel måde, så da jeg ikke
kunde bruge $PHP_SELF, satte jeg straks google til at arbejde på en
løsning. Jeg har så valgt at gøre sådan i mine scripts :
$PHP_SELF = $_SERVER['PHP_SELF'];
Er det sjusk? og ville det have sikkerheds messige fordele at udelukkende
bruge $_SERVER['hvad_nu_man_skal_bruge'] ?
> [1] Jeg har længe haft magic_quotes og register_globals slået fra, og
> sat error_level til notice på udviklingsserver. Der er altså ikke
> noget nyt i alt det her, det nye er blot standard-indstillingerne.
>
> [2] Bemærk at jeg ikke taler eller tænker nedsættende om disse
> personer.
--
Mvh
Heine Laursen