[PHP] GET gebruiken in ge-include pagina

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 09:35
Ik zit met een probleem waar ik even niet uit kom, en kan ook geen goed antwoord vinden op Google.
Op mijn website worden pagina's doormiddel van een switch statement ge-include in de index.php
Wanneer ik bijvoorbeeld naar de foto pagina wil gaan gebruik ik de url www.domein.nl/?p=fotos
Dit werkt allemaal perfect en heb ik geen problemen mee.

Maar waar ik nu dus op vast loop is het volgende:
Op de foto pagina staat een selectie lijst waaruit je verschillende albums kan kiezen. Deze lijst staat in een form welke verstuurd word dmv method="GET"
Nu verstuurd hij het formulier wel goed, alleen niet naar de juiste pagina, zodra ik op submit druk gaat hij naar www.domein.nl/?album=test wat dus niet zo zou moeten.
Volgens mij moet dit het volgende worden: www.domein.nl/?p=fotos&album=test

De info wordt via het volgende formulier verstuurd:
HTML:
1
2
3
4
5
6
7
<form method="GET" action="www.domein.nl/?p=fotos">
<select name="album">
<option selected disabled>Selecteer een album..</option>
<option value="test">Test album</option>
</select>
<input type="submit" value="Bekijk">
</form>

Dit formulier staat in fotos.php welke weer in ge-include wordt in de index.php.
Het volgende gebruik ik in index.php
PHP:
1
2
3
4
5
6
switch (strtolower($_GET['p'])) 
    {
    case "fotos";
    include ('pagina/fotos.php');
    break;
}


Iemand die me kan vertellen hoe ik dit moet doen?

[ Voor 5% gewijzigd door Vinze op 16-06-2009 18:47 ]


Acties:
  • 0 Henk 'm!

Verwijderd

HTML:
1
2
3
4
5
6
7
8
9
10
<form method="GET" action="www.domein.nl/">
<select name="album">
<option selected disabled>Selecteer een album..</option>
<option value="test">Test album</option>
</select>

<input type="hidden" name="p" value="fotos"> <!-- stuur dit ook mee -->

<input type="submit" value="Bekijk">
</form>

Zoiets?

Acties:
  • 0 Henk 'm!

  • maarten_v
  • Registratie: Februari 2003
  • Laatst online: 15-09 13:08
PHP:
1
2
3
4
5
6
7
8
<form method="GET" action="www.domein.nl/"> 
<select name="album"> 
<option selected disabled>Selecteer een album..</option> 
<option value="test">Test album</option> 
</select> 
<input type="hidden" name="p" value="fotos" />
<input type="submit" value="Bekijk" /> 
</form>


edit:
(te laat)

[ Voor 3% gewijzigd door maarten_v op 16-06-2009 18:48 ]


Acties:
  • 0 Henk 'm!

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 09:35
Hmm oké, simpel maar het werkt. Thanks! :)
Zijn er evt ook nog andere methodes?

Acties:
  • 0 Henk 'm!

Verwijderd

Ja, de boel netjes rewriten
Dus een .htaccess maken met ongeveer: (Als je Apache als webserver gebruikt)
code:
1
2
3
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)\.html$ http://www.domain.nl/index.php?p=$1 [R,NC]


Dus dan kun je naar http://www.domain.nl/fotos.html

en dan:
HTML:
1
2
3
4
5
6
7
<form method="GET" action="www.domein.nl/fotos.html">
<select name="album">
<option selected disabled>Selecteer een album..</option>
<option value="test">Test album</option>
</select>
<input type="submit" value="Bekijk">
</form>

[ Voor 3% gewijzigd door Verwijderd op 16-06-2009 19:22 ]


Acties:
  • 0 Henk 'm!

  • eXtReMeBiE
  • Registratie: Februari 2002
  • Laatst online: 07-09 13:29
Vinze schreef op dinsdag 16 juni 2009 @ 19:13:
Hmm oké, simpel maar het werkt. Thanks! :)
Zijn er evt ook nog andere methodes?
Je kunt eventueel ook $_SERVER['QUERY_STRING'] gebruiken als action.

Acties:
  • 0 Henk 'm!

  • Xanland
  • Registratie: Oktober 2007
  • Laatst online: 19-09 23:45
Kan je niet gewoon als action ?p=fotos&album=test doen? Zo doe ik het tenminste altijd, werkt tot nu toe gewoon perfect! :)

RobIII: Ik probeer als ik wil stoppen met mijn auto ook altijd de sigarettenaansteker, de airco, 3 radioknoppen en de binnenverlichting en dan de rem :P


Acties:
  • 0 Henk 'm!

  • link0007
  • Registratie: Augustus 2006
  • Niet online
kijk je dan wel uit dat $_SERVER['QUERY_STRING'] XSS-gevoelig is? ;) Je zal niet de eerste zijn die denkt dat hij veilig is, maar wat nu als ik een url met een xss-vector erin laad? Dan wordt die XSS doodleuk meegegeven in de html, ongevalideerd.

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Xanland schreef op dinsdag 16 juni 2009 @ 22:34:
Kan je niet gewoon als action ?p=fotos&album=test doen? Zo doe ik het tenminste altijd, werkt tot nu toe gewoon perfect! :)
Volgens mij verkijk jij je op wat het script doet, en zou moeten doen. Het gaat erom dat de action zal worden overschreven (in ieder geval de querystring) als je GET als methode gebruikt. Zonder dat hidden element zal de uiteindelijke pagina dus nog steeds website.nl/?album=test zijn :*
Pagina: 1