[HTML] Form method=get - probleem met ? en & tekens

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 08-09 11:28
De topic titel komt wellicht wat vaag over, maar als ik wel een goede titel kon bedenken dan had ik waarschijnlijk ook meer gevonden op Google. Daarom zal ik proberen om m'n probleem hier even uit te leggen.

Ik ben bezig met het bouwen van een website, en op dit moment specifiek met een zoekfunctie.
Om te zoeken heb ik een simpel formulier gemaakt, deze ziet er als volgt uit:
HTML:
1
2
3
4
5
<form action="zoeken" name="searchform" method="get">
<label for="searchfield">Klant zoeken:</label><br />
<input type="text" name="q" id="searchfield" /><br />
<input type="submit" value="Zoeken" class="button" />
</form>


Nu zitten hier geen fouten in, als ik wat invul en ik klik op Zoeken dan wordt ik netjes doorgestuurd naar www.mijnsite.nl/zoeken?q=blabla

Echter lukt het niet om die &_GET['q'] aan te spreken, dit komt door mijn htaccess bestand waarin staat:
code:
1
RewriteRule ^(.*)$ index.php?p=$1 [L]


Oftewel, ik schrijf alles uit de URL naar de $_GET['p'] om deze vervolgens in mijn index.php te laten afhandelen. Die ?q=blabla zou dus eigenlijk een &q=blabla moeten worden. Maar nu, hoe zorg ik ervoor dat dat vraagteken een & teken wordt?!

Acties:
  • 0 Henk 'm!

  • TheLunatic
  • Registratie: April 2001
  • Laatst online: 16-08 21:48

TheLunatic

Ouwe boxen.

Als ik het goed begrijp: niet. Het vraagteken hoort daar, het scheidt de url van de parameters. De parameters zijn vervolgens gescheiden van elkaar door ampersands (&).

Doe eens een print_r($_GET); in je index.php.

[ Voor 12% gewijzigd door TheLunatic op 23-07-2011 12:43 ]

Mother, will they like this song?


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 16:47

orf

QSA regelt dat voor je.

[ Voor 5% gewijzigd door orf op 23-07-2011 12:43 ]


Acties:
  • 0 Henk 'm!

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 08-09 11:28
TheLunatic schreef op zaterdag 23 juli 2011 @ 12:42:
Als ik het goed begrijp: niet. Het vraagteken hoort daar, het scheidt de url van de parameters. De parameters zijn vervolgens gescheiden van elkaar door ampersands (&).

Doe eens een print_r($_GET); in je index.php.
Ja ik weet hoe GET werkt, alleen ziet dat form niet dat er op de 'achtergrond' al een GET variabele geset is, namelijk 'p'.
Dank voor de link, ik wordt er alleen niet veel wijs uit eerlijk gezegd. Ik moet zorgen dat het vraagteken en alles wat daarna komt niet herschreven wordt? Hoe ga ik dit in mijn htaccess file zetten? Alles wat ik probeer zorgt voor een internal server error..

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 16:47

orf

Je hebt nu [L] (Last) achter je rewrite rule staan. Maak daar [QSA,L] (Query String Append) van en test je formulier dan nog eens. Als het goed is worden de GET variabelen (de query string) dan erachter geplakt. Je kunt dat goed testen door een print_r te doen.

Edit: Hier staat het in de documentatie uitgelegd, met jouw probleem als voorbeeld.

[ Voor 22% gewijzigd door orf op 23-07-2011 14:08 ]


Acties:
  • 0 Henk 'm!

  • Vinze
  • Registratie: Augustus 2006
  • Laatst online: 08-09 11:28
orf schreef op zaterdag 23 juli 2011 @ 14:06:
Je hebt nu [L] (Last) achter je rewrite rule staan. Maak daar [QSA,L] (Query String Append) van en test je formulier dan nog eens. Als het goed is worden de GET variabelen (de query string) dan erachter geplakt. Je kunt dat goed testen door een print_r te doen.

Edit: Hier staat het in de documentatie uitgelegd, met jouw probleem als voorbeeld.
Ah nu snap ik het, en dat was dus ook de oplossing, bedankt! :)

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 17:07

MueR

Admin Tweakers Discord

is niet lief

Dit is ook meteen een goed voorbeeld waarom die manier van rewriten af te raden is. Als je toch al alles naar index.php mikt, doe dan gewoon een RewriteRule . index.php [L] en parse de request uri in je code. Scheelt dit soort problemen ;)

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

Pagina: 1