PDA

Bekijk Volledige Versie : PHP-beginner. Url-variabelen doorgeven



Jan Dijk
04/02/04, 11:55
Ik kom er even niet uit.

Ik heb op een pagina de volgende link gemaakt:
Ga naar de
<ahref=/php/natuurselectie.php?'goudrandloopkever'=$betrekking _op>Goudrandloop
keverpagina</a>

Op de Goudrandloopkeverpagina (ik heb de naam van die tor niet bedacht) staat
de query:
$query="SELECT * FROM nieuwsberichten WHERE betrekking_op='$betrekking_op'";

De bedoeling van dit alles is dat op die Goudrandloopkeverpagina de
berichtjes komen te staan die betrekking hebben op de goudrandloopkever.
Maar goed: dat gebeurt dus niet: ipv daarvan selecteert hij alle berichten -
dus ook die over de Pimpelmezentrek en de verjaardag van mijn moeder.
En dat is natuurlijk niet de bedoeling.
Wat doe ik fout?

Jan
www.jandijk.nl

Ronald Klip
04/02/04, 13:05
Jan Dijk schreef:
>
> Ik heb op een pagina de volgende link gemaakt:
> Ga naar de
> <ahref=/php/natuurselectie.php?'goudrandloopkever'=$betrekking _op>Goudrandloop
> keverpagina</a>

maak daarvan
<a href="/php/natuurselectie.php?betrekking_op=goudrandloopkever"> etc.

Syntax:
scriptnaam ? variabele = waarde [ & variabele2 = waarde2 etc. ]

maar dan zonder de spaties.

> Op de Goudrandloopkeverpagina (ik heb de naam van die tor niet bedacht) staat
> de query:
> $query="SELECT * FROM nieuwsberichten WHERE betrekking_op='$betrekking_op'";

Zeer waarschijnlijk kan ook jouw PHP-versie (4.1+ ?) overweg met de
$_GET-global. Gebruik dan ipv $betrekking_op het modernere
$_GET['betrekking_op'] .

Voor de zekerheid kun je mogelijk onheil in die variabele escapen :

$query = "SELECT *
FROM nieuwsberichten
WHERE betrekking_op = " . mysql_escape_string($_GET['betrekking_op']);

--
groet, Ronald

Jaap-Andre de Hoop
04/02/04, 14:05
In article <0001HW.BC468B340007C5872459B410@news-west.newscene.com>, jan-dijk@planet.nl wrote:
>Ik kom er even niet uit.
>
>Ik heb op een pagina de volgende link gemaakt:
>Ga naar de
><ahref=/php/natuurselectie.php?'goudrandloopkever'=$betrekking _op>Goudrandloop
>keverpagina</a>
>
>Op de Goudrandloopkeverpagina (ik heb de naam van die tor niet bedacht) staat
>de query:
>$query="SELECT * FROM nieuwsberichten WHERE betrekking_op='$betrekking_op'";

de variabele op de tweede pagina is $goudrandloopkever die gevuld is met de
waarde die gevuld is met de $betrekking_op zoals je die op de eerste pagina
(niet) gevuld hebt, maar wrs bedoel je op de eerste pagina:
<a href=/php/natuurselectie.php?betrekking_op=goudrandloopkever>beestje</a>
let op geen $ is een php iets, geen html.

de $betrekking_op op de tweede pagina wordt dan gevuld met goudrandloopkever.
en worden dus de nieuwsberichten over dat beessie opgevraagd.

Kan zij dat je server goed beveligd is en dat je $_GET[betrekking_op] moet
gebruiken.

Groets,

Jaap-Andre

Jan Dijk
04/02/04, 20:35
On Wed, 4 Feb 2004 13:59:45 +0100, Jaap-Andre de Hoop wrote
(in message <4020ecc3$0$138$e4fe514c@dreader11.news.xs4all.nl>):


> Kan zij dat je server goed beveligd is en dat je $_GET[betrekking_op] moet
> gebruiken.

Bedankt voor de uiterst bruikbare hulp. Misschien een domme vraag, maar
waarom is $-GET[betrekking_op] veiliger?

Jan

Maarten Wierda
04/02/04, 20:45
Jan Dijk wrote:

>>Kan zij dat je server goed beveligd is en dat je $_GET[betrekking_op] moet
>>gebruiken.
>
> Bedankt voor de uiterst bruikbare hulp. Misschien een domme vraag, maar
> waarom is $-GET[betrekking_op] veiliger?

Jaap-Andre zegt niet dat het hanteren van $_GET veiliger is, hij
suggereert slechts dat de server 'register_globals' op 'Off' heeft
staan. Overigens zou ik toch $_GET["betrekking_op"] hanteren.

Info over Superglobals : <http://www.phpfreakz.nl/artikelen.php?aid=88>.

--
Cheers, Maarten Wierda

"Old school, new school.
Shit, I didn't go to school!"

Jaap-Andre de Hoop
05/02/04, 15:05
In article <0001HW.BC4705EC0005C575250BD2A0@news-west.newscene.com>, jan-dijk@planet.nl wrote:
>On Wed, 4 Feb 2004 13:59:45 +0100, Jaap-Andre de Hoop wrote
>(in message <4020ecc3$0$138$e4fe514c@dreader11.news.xs4all.nl>):
>
>
>> Kan zij dat je server goed beveligd is en dat je $_GET[betrekking_op] moet
>> gebruiken.
>
>Bedankt voor de uiterst bruikbare hulp. Misschien een domme vraag, maar
>waarom is $-GET[betrekking_op] veiliger?

let op het is underscoreGET ($_GET).
Eigenlijk zou het niet uit mogen maken qua veiligheid omdat je alles
controleert voordat je het gebruikt, maar als je op je server perse die
superglobals moet gebruiken om gebruikersinput te verwerken, kan een gebruiker
niet zomaar variabelen meegeven.
stel je zou een autenticatie doen als:
als (login==succesvol) $auth=1;
dus zonder dat je $auth eerst op nul stelt of $auth een waarde meegeeft als
login niet lukt.
Als de gebruiker de url www.domein.ltd/script.php?auth=1 intypt wordt hij
geauthenticeerd.

Ikzelf gebruik het zodat ik weet waar de variabelen vandaan komen, is het een
uservariabele of een bewerkte variabele. Indien mogelijk probeer ik dan ook de
'kleinste' superglobal te pakken die er is (dus liever _GET,_POST,_COOKIE ipv
_REQUEST, de laatste is een combinatie van de eerste drie).

zie ook: http://nl3.php.net/register_globals
oeps ze gebruiken een zelfde soort voorbeeld, ik had me veel moeite kunnen
besparen als ik eerst even had gelezen ;-)

Jaap-Andre

Jaap-Andre de Hoop
05/02/04, 15:15
In article <bvrhij$2dq1$1@nl-news.euro.net>, Maarten Wierda <maartenAT@norecessDOT.com> wrote:
>Jan Dijk wrote:
>
>>>Kan zij dat je server goed beveligd is en dat je $_GET[betrekking_op] moet
>>>gebruiken.
>>
>> Bedankt voor de uiterst bruikbare hulp. Misschien een domme vraag, maar
>> waarom is $-GET[betrekking_op] veiliger?
>
>Jaap-Andre zegt niet dat het hanteren van $_GET veiliger is, hij
>suggereert slechts dat de server 'register_globals' op 'Off' heeft
>staan. Overigens zou ik toch $_GET["betrekking_op"] hanteren.

Jippie iemand die goed leest, ik suggereerde het wel een beetje, maar had
gisteren geen zin/tijd om het hele verhaal te typen.

Leuke website op jouw domein, toekomst aan het voorspellen?

Groet,

Jaap-Andre

Maarten Wierda
05/02/04, 18:25
Jaap-Andre de Hoop wrote:

>>Jaap-Andre zegt niet dat het hanteren van $_GET veiliger is, hij
>>suggereert slechts dat de server 'register_globals' op 'Off' heeft
>>staan. Overigens zou ik toch $_GET["betrekking_op"] hanteren.
>
> Jippie iemand die goed leest, ik suggereerde het wel een beetje, maar had
> gisteren geen zin/tijd om het hele verhaal te typen.
>
> Leuke website op jouw domein, toekomst aan het voorspellen?

Voorlopig wel ja :) Ik moet er ooit nog eens wat opzetten maar wanneer
maak je tijd vrij voor zoiets? :)

--
Cheers, Maarten Wierda

"Old school, new school.
Shit, I didn't go to school!"