[PHP] vraagje over $_GET

Pagina: 1
Acties:
  • 514 views

Acties:
  • 0 Henk 'm!

  • Alwinonline
  • Registratie: Mei 2009
  • Niet online
Hallo allemaal,

ik ben nu een tijdje bezig met het leren van designen van een website maar ik blijf hangen op een probleem waar ik maar geen oplossing voor weet. De situatie is als volgt:
ik probeer alles vanuit index.php weer te geven en werk daarom met index.php?page=<pagename>.
in de index.php gebruik ik dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$_GET['page'] = @strtolower($_GET['page']);
Switch ($_GET['page'])
{   
    case 'case1':
    case "case2":
    case "case3":
        include (BASE_PATH."smarty/sections/{$_GET['page']}.php");
    break;
    default:
        include(BASE_PATH."smarty/sections/home.php");
    break;
}


dit werkt allemaal goed en zoals het hoort. Het enige probleem is nu dat ik ook graag (voor een bepaald onderdeel van de pagina) een "action=" zou willen gebruiken. Alleen ik krijg niet goed voor elkaar om beide te gebruiken en toch nog de juiste pagina weer te geven. Op dit moment staat het er namelijk zo:
index.php?page=case1?action=showcontent?
maar nu geeft hij de default weer namelijk home.php.

Ik hoop dat ik duidelijk genoeg ben ik vind het erg lastig om dit juist te omschrijven.

Met vriendelijke groet,
Alwin

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
De tweede en opvolgende ?'s moeten een & zijn ;)
Zie ook de rest van het internet. Je ziet nooit een tweede ? want daarmee begin je de parameters.

@vvv >:)

[ Voor 100% gewijzigd door Room42 op 09-12-2009 12:42 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 20:27
Dit is wel redelijk basic, dus: lees wat tutorials.

Maar om een concreet antwoord op je vraag te geven: als je meerdere variabelen meegeeft in een URL, dan scheid je die met een ampersand (& dus), niet met een vraagteken. Dus:

[codeindex.php?page=case1&action=showcontent[/code]

Edit: Grrrrrr Sjaak! :P

[ Voor 4% gewijzigd door posttoast op 09-12-2009 12:39 ]

omniscale.nl


Acties:
  • 0 Henk 'm!

  • Grandmasg
  • Registratie: Mei 2006
  • Laatst online: 17:30

Grandmasg

What ever!!!!

EDIT: NET iets te laat

;)

[ Voor 74% gewijzigd door Grandmasg op 09-12-2009 12:41 . Reden: oplossing was eral ]

I know a lot, but not everything! Hobby systeem
WhatPulse Aap stats!
Github team stats


Acties:
  • 0 Henk 'm!

  • Alwinonline
  • Registratie: Mei 2009
  • Niet online
bedankt voor jullie hulp allemaal. ik heb inderdaad een aantal tutorials gelezen maar ik kon hier niets inhoudelijks over vinden (misschien dat ik de verkeerde termen gebruikte) maar bedankt ik kan nu weer vrolijk verder proberen :)

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Nouja, als je een beetje af had gekeken van de rest van de wereld, had je het wel kunnen raden. Kijk bijvoorbeeld eens naar een Google URL:
code:
1
http://www.google.com/search?hl=en&source=hp&q=url+parameters&cts=1260363090168&aq=f&oq=&aqi=g10


Als je dat in stukken breekt zie je dus:

http://www.google.com/search
• hl=en
• source=hp
• q=url+parameters
• cts=1260363090168
• aq=f
• oq=
• aqi=g10

[ Voor 25% gewijzigd door Room42 op 09-12-2009 13:54 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Sypher
  • Registratie: Oktober 2002
  • Laatst online: 15:50
Die @ voor strtolower is nergens voor nodig en sterker nog, error supressing kost meer parsetime.

Sowieso is een include met inhoud van een $_GET ook om kippenvel van te krijgen.

Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 20:27
Sypher schreef op woensdag 09 december 2009 @ 14:02:
Die @ voor strtolower is nergens voor nodig en sterker nog, error supressing kost meer parsetime.

Sowieso is een include met inhoud van een $_GET ook om kippenvel van te krijgen.
Mwah, het verdient geen schoonheidsprijs, maar gezien hij met een switch werkt is het ook niet echt een probleem toch? Als hij die $_GET vars direct zou includen, dan wordt het een ander verhaal natuurlijk.

omniscale.nl


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 20:18

MueR

Admin Tweakers Discord

is niet lief

posttoast schreef op woensdag 09 december 2009 @ 14:19:
[...]

Mwah, het verdient geen schoonheidsprijs, maar gezien hij met een switch werkt is het ook niet echt een probleem toch? Als hij die $_GET vars direct zou includen, dan wordt het een ander verhaal natuurlijk.
Het gaat meer om de error surpression, niet om de manier van het includen van templates.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 20:27
MueR schreef op woensdag 09 december 2009 @ 14:29:
[...]

Het gaat meer om de error surpression, niet om de manier van het includen van templates.
Ja, dat is geen goed idee. Maar ik reageer op hetgeen over die include op basis van $_GET gezegd wordt.

omniscale.nl


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

posttoast schreef op woensdag 09 december 2009 @ 14:19:
[...]

Mwah, het verdient geen schoonheidsprijs, maar gezien hij met een switch werkt is het ook niet echt een probleem toch? Als hij die $_GET vars direct zou includen, dan wordt het een ander verhaal natuurlijk.
In dit geval is het inderdaad niet zo'n probleem, maar het is wel goed om zulke dingen te melden. Voor het zelfde geld is de switch() nu per toeval, en wordt deze later weggehaald omdat er teveel "cases" zijn.

Ik denk dat het sowieso goed is om beginnende programmeurs duidelijk te maken dat zulke oplossingen gevaarlijk kunnen zijn. Als de TS het bewust zo gedaan heeft met kennis van de gevaren van direct $_GET gebruiken, is het niet zo'n probleem. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 20:27
OkkE schreef op woensdag 09 december 2009 @ 14:51:
[...]

In dit geval is het inderdaad niet zo'n probleem, maar het is wel goed om zulke dingen te melden. Voor het zelfde geld is de switch() nu per toeval, en wordt deze later weggehaald omdat er teveel "cases" zijn.

Ik denk dat het sowieso goed is om beginnende programmeurs duidelijk te maken dat zulke oplossingen gevaarlijk kunnen zijn. Als de TS het bewust zo gedaan heeft met kennis van de gevaren van direct $_GET gebruiken, is het niet zo'n probleem. :)
Eensch :)

omniscale.nl


Acties:
  • 0 Henk 'm!

  • JefSnare
  • Registratie: Augustus 2007
  • Laatst online: 09-11-2020
Ik weet niet of het echte productie code is of slechts een testcase, als dit in de productie code staat moet TS gewoon even kijken naar wat andere (eventueel) relevante code met Gets en Functions ;). Daar leer je veel van als het je interesseert.

Edit: @^^ Eens

[ Voor 3% gewijzigd door JefSnare op 09-12-2009 14:57 ]

Twitter Flickr


Acties:
  • 0 Henk 'm!

  • Alwinonline
  • Registratie: Mei 2009
  • Niet online
OkkE schreef op woensdag 09 december 2009 @ 14:51:
Ik denk dat het sowieso goed is om beginnende programmeurs duidelijk te maken dat zulke oplossingen gevaarlijk kunnen zijn. Als de TS het bewust zo gedaan heeft met kennis van de gevaren van direct $_GET gebruiken, is het niet zo'n probleem. :)
Ik heb zoals eerder gemeld wel ingelezen in $_GET en de bijbehorende gevaren van het gebruik daarvan. Dit is alleen een testcase gewoon om ervaring op te doen met het maken van websites. Ik leer elke dag en waardeer zeer alle informatie die iedereen hier verteld en zal het zeker meenemen. De error surpression is inderdaad een fout en komt uit een oud stuk code waarin ik het gebruikte voor de opmaak van een pagina (en is dus bij deze ook verwijderd).

nogmaals bedankt voor jullie input, het geheel begint al aardig vorm te krijgen en met veel google werk kan ik het meeste achterhalen en de met de problemen waar ik echt niet uit kom zal ik hier terug komen aangezien iedereen mij heel duidelijk wijst op wat er wel en niet goed/fout gaat.

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Wil je dan ook even Waar hoort mijn topic? doorlezen zodat je weet waar je je topic voortaan moet plaatsen. Daarnaast is het ook handig om de lokale beleidstopics door te lezen, want je hebt niet alleen een basicvraag, maar je toont ook relatief weinig zelfinzet. Met name Programming is bedoeld om zelf te programmeren, niet om oplossingen af te halen :)

Ik verplaats je topic naar de juiste plek, maar zet hem meteen op slot vanwege bovengenoemde redenen.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1

Dit topic is gesloten.