/ 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
$_POST, eller?
Fra : Troels


Dato : 02-08-06 14:12

Hejsa,

Jeg har en startside, index.php, der som standard skal vise en startside i
en celle i en tabel.

Når jeg så klikker på et link skal siden det så smides ind i adresselinien,
som f.eks. index.php?side=test

Jeg kan fange det med $_GET['test']; , og så gøre resten med include, men
hvis jeg så bare går ind på index.php, får jeg fejlen "Notice: Undefined
index: side in c:\programmer\easyphp1-8\www\index.php on line 3
"

Der må være noget smartere end $_GET / $_POST, som kan returnere '', dvs.
intet, hvis der intet står, uden at melde fejl?

// Troels



 
 
René Lønstrup (02-08-2006)
Kommentar
Fra : René Lønstrup


Dato : 02-08-06 14:34

Troels wrote:
> Når jeg så klikker på et link skal siden det så smides ind i
> adresselinien, som f.eks. index.php?side=test
>
> Jeg kan fange det med $_GET['test'];

Du mener vel $_GET['side']?

> men hvis jeg så bare går ind på index.php, får jeg fejlen "Notice:
> Undefined index: side in c:\programmer\easyphp1-8\www\index.php on
> line 3 "
>
> Der må være noget smartere end $_GET / $_POST, som kan returnere '',
> dvs. intet, hvis der intet står, uden at melde fejl?

Du skal spørge om $_GET['side'] er sat før du bruger den. F.eks.:

if (isset($_GET['side']) && isValid($_GET['side'])) {
// hvor isValid() er en-eller-anden funktion til validering af inputtet
}
else {
// $_GET['side'] er ikke sat, eller ikke korrekt
}


--
Mvh René Lønstrup
web: http://rene.loenstrup.net?r=usenet
email: se om du kan regne den ud..



Troels (02-08-2006)
Kommentar
Fra : Troels


Dato : 02-08-06 18:22

> if (isset($_GET['side']) && isValid($_GET['side'])) {
> // hvor isValid() er en-eller-anden funktion til validering af inputtet

Min PHP kan ikke snakke isValid, åbenbart...

// Troels



Martin (02-08-2006)
Kommentar
Fra : Martin


Dato : 02-08-06 18:26

Troels wrote:
>> if (isset($_GET['side']) && isValid($_GET['side'])) {
>> // hvor isValid() er en-eller-anden funktion til validering af inputtet
>
> Min PHP kan ikke snakke isValid, åbenbart...

Nej, det er fordi du SELV skal lave funktionen :)


Den funne fx. se sådan her ud

function isValid($page) {
switch($page) {
case "index":
case "about":
case "links":
return true;
default:
return false;
}
}


>
> // Troels
>
>

Troels (02-08-2006)
Kommentar
Fra : Troels


Dato : 02-08-06 18:35

> Nej, det er fordi du SELV skal lave funktionen :)

Det kunne jeg have tænkt mig til, "Call to undefined function", beklager, nu
er jeg for dum... Sorry ;)

Al begyndelse er svær! :)

// Troels



Jens E. (04-08-2006)
Kommentar
Fra : Jens E.


Dato : 04-08-06 15:46

Troels wrote:

> Når jeg så klikker på et link skal siden det så smides ind i adresselinien,
> som f.eks. index.php?side=test

Hvad gør du videre med værdien af 'side'? Bliver den brugt direkte i
en SQL-sætning eller i en include?

--
Jens

Troels (05-08-2006)
Kommentar
Fra : Troels


Dato : 05-08-06 18:33

> Hvad gør du videre med værdien af 'side'? Bliver den brugt direkte i
> en SQL-sætning eller i en include?

Jeg har brugt en Iframe, hvor jeg så igennem php laver

Det tages så fra

page="
<?php

if ($side == "test") {

echo "test.php";

}

?>"

- det virker helt fint :)

Include kunne også bruges, men nu virker iframen så fint, og den begynder
ikke at strække tabeller, og scrollbars fungerer 100%

// Troels



Jens E. (05-08-2006)
Kommentar
Fra : Jens E.


Dato : 05-08-06 18:47

Troels wrote:

>> Hvad gør du videre med værdien af 'side'? Bliver den brugt direkte i
>> en SQL-sætning eller i en include?
>
> Jeg har brugt en Iframe, hvor jeg så igennem php laver
[snip]
> if ($side == "test") {
> echo "test.php";
> }
> ?>"

Prøv at kig på switch istedet for denne if-konstruktion.
http://dk2.php.net/switch

> Include kunne også bruges, men nu virker iframen så fint, og den begynder
> ikke at strække tabeller, og scrollbars fungerer 100%

Min pointe var bare at du åbnede op for et stort sikkerhedshul, hvis du
havde brugt værdien af "side" direkte i en SQL-query eller som i
nedenstående eksempel.

Usikker kode: <?php include($side); ?>

--
Jens

Troels (06-08-2006)
Kommentar
Fra : Troels


Dato : 06-08-06 21:58

> Min pointe var bare at du åbnede op for et stort sikkerhedshul, hvis du
> havde brugt værdien af "side" direkte i en SQL-query eller som i
> nedenstående eksempel.
>
> Usikker kode: <?php include($side); ?>

Tusinde tak for hjælpen :)

// Troels



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

Månedens bedste
Årets bedste
Sidste års bedste