Versio

414 Request-URI Too Large

Overzicht Reageren

Roy D

Roy D

21/01/2012 21:25:17
Quote Anchor link
Beste forum leden!

Ik ben bezig met een website cq webshop. Hierop staan velen producten met specificaties met daarbij een filter optie. Dit om gemakkelijk producten te vinden.
Nu zijn er zoveel opties (<select>) dat wanneer dit middels de method="GET" in het form niet gaat werken. De url wordt veel te lang! Met als resultaat de titel van dit bericht.

Oplossing is natuurlijk POST i.p.v. GET als method gebruiken, nadeel hiervan is dat wanneer je de url kopieer iemand ander niet gelijk jou gekozen filters voor zich krijgt.

Nog een weetje is dat niet alle filters tegelijk gekozen worden waardoor meerdere waardes leeg zijn en de url niet zo lang hoeft te worden. Kunnen deze voor het "submitten" eruit gehaald worden is de vraag?

Voorbeeld van URL na "subbmitten" form (iets minder lang als in werkelijkheid):
categorie.php?merk=Samsung&Processor=i3&Geheugen=0&Kleur=0&Webcam=1

Voordat alles echt "gesubmit" is moet dit gefilterd worden naar (alle lege waardes weg):
categorie.php?merk=Samsung&Processor=i3&Webcam=1

Hoop dat het duidelijk is en hoor uiteraard graag!
 
PHP hulp

PHP hulp

23/05/2012 15:22:13
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
- SanThe -

- SanThe -

21/01/2012 21:44:10
Quote Anchor link
Roy D op 21/01/2012 21:25:17:
... dit middels de method="GET" in het form ...


Waarom niet gewoon een POST?
 
Roy D

Roy D

21/01/2012 21:45:13
Quote Anchor link
Roy D op 21/01/2012 21:25:17:
Oplossing is natuurlijk POST i.p.v. GET als method gebruiken, nadeel hiervan is dat wanneer je de url kopieer iemand ander niet gelijk jou gekozen filters voor zich krijgt.
 
Obelix en Idefix

Obelix en Idefix

21/01/2012 21:58:10
Quote Anchor link
Voor zover ik weet worden alle variabelen via een GET doorgegeven.
De enige manier die ik zou kunnen bedenken om dat op te lossen is erg omslachtig:
Verstuur het formulier met POST en controleer welke variabelen gevuld zijn. Maak daarvan een url die je met een header verstuurd.
 
Ozzie PHP

Ozzie PHP

21/01/2012 22:21:17
Quote Anchor link
Wellicht kun je slechts 1 GET waarde gebruiken en daar alles in stoppen?

Stel je hebt:
categorie.php?merk=Samsung&Processor=i3&Geheugen=0&Kleur=0&Webcam=1

Dan zou je kunnen zeggen dat merk een eigenschap is met id 1 is en Samsung de bijbehorende waarde met (bijv.) id 15. Je scheidt deze bijv. door een streepje. Je krijgt dan 1-15. Vervolgens kom je bij de 2e eigenschap (Processor) en deze heeft id 2 en de waarde van i3 is 28. Dan krijg je 2-28. Uiteindelijk doe je dat voor alle eigenschappen en dan zou je bijv. zoiets krijgen:

categorie.php?filter=1-15+2-28+5-1

Omdat geheugen en kleur op 0 staan stuur je die niet mee.

Misschien een beetje krom uitgelegd maar ik hoop dat je begrijpt wat ik bedoel.
Gewijzigd op 21/01/2012 22:22:26 door Ozzie PHP
 
Kees Schepers
Moderator

kees Schepers

22/01/2012 00:26:11
Quote Anchor link
He Ozzie, opzich werkt jouw oplossing wel maar dan zegt de URL niets. Ook voor SEO is dat niet echt super.

Ik heb het zelf op de volgende manier gedaan:
http://www.bestbuykinderfietsen.nl/filter/14_inch_(3_-_5_jaar)-300/100_-_150-305/meisjesfiets-287/

Alleen, vraag ik me af of het in jouw geval wel zoveel scheelt. Hoelang wordt de URL ook daadwerkelijk en hoeveel opties heb je?
 
Ozzie PHP

Ozzie PHP

22/01/2012 13:42:58
Quote Anchor link
Kees, mee eens... maar volgens mij de enige manier om de url drastisch in te korten? (van de andere kant kun je je afvragen wat het probleem is van zo'n lange url...)
 
Kees Schepers
Moderator

kees Schepers

22/01/2012 16:09:47
Quote Anchor link
In principe mag een URL oneindig lang zijn, alleen niet van alle browsers. Ik heb ook een NodeJS script gemaakt die Solr Requests doet over GET en soms zit er wel 1mb aan data in de URL, maar dat gaat allemaal server-side.

Maar goed, ik kan me eerlijk gezegd niet goed voorstellen dat je URL zo lang moet worden. Daarom vraag ik ook welke opties je hebt e.d. misschien dat we er iets op kunnen verzinnen door gebruik te maken van een bepaalde taxonomie structuur.
 
Roy D

Roy D

23/01/2012 19:35:36
Quote Anchor link
Als je het over lange url's hebt, bij deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
index.php?p=categorie&id=88&alle_filters=1&merk=Samsung&Beeldscherm=0&Linux+operating+systems+supported=0&Mac+operating+systems+supported=0&Server+operating+systems+supported=0&Windows+operating+systems+supported=0&Veiligheid=0&Certificering=0&Energy+Star-certificaat=0&Bedrijfstemperatuur%2C+bereik=0&Hoogte+in+bedrijf=0&Luchtvochtigheid+bij+opslag=0&Relatieve+luchtvochtigheid%2C+in+bedrijf=0&Temperatuur+bij+opslag=0&Temperatuur%2C+in+bedrijf=0&Aanbevolen+media+gewicht+%28duplex%2C+Imperial%29=0&Aanbevolen+mediagewicht=0&Aanbevolen+temperatuur+bij+gebruik=0&Aantal+dozen+per+pallet=0&Aantal+lagen+per+pallet=0&Aantal+per+pallet=0&Afmetingen+pallet+%28B+x+D+x+H%29=0&Akoestische+druk+uitstoot+omstanders+%28standby%29=0&Akoestische+emissie+%28gereed%29=0&Automatische+papierherkenning=0&Bedieningspaneel=0&Beveiligingsbeheer=0&Blue+Angel-compatibel=0&Downloadbare+software=0&Driver-updates+%E2%80%93+omschrijving=0&Duplex+bindende=0&Eerste+pagina+%28kleur%2C+schrijven%2C+slapen%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+brief%2C+koude+start%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+schrijven%2C+slapen%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+schrijven%2C+warme+stroom%29=0&Eerste+pagina+verschijnt%2C+kleur+%28A4%2C+standby%29=0&Eerste+pagina+verschijnt%2C+kleur+%28kwarto%2C+standby%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28A4%2C+standby%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28kwarto%2C+standby%29=0&Formaten+afwijkende+media=0&Frequentie=0&Geluidsdruk+omstander+%28tijdens+printen%29=0&Gewicht+pallet=0&Hoogte%2C+in+bedrijf+%28brits%2Famerikaans%29=0&Hostmelding=0&Ingangsspanning=0&Maximum+afmetingen+%28B+x+D+x+H%29=0&Mediaformaten+%28lade+2%29=0&Mediaformaten+%28lade+3%29=0&Mediagewicht+lade+2=0&Mediagewicht%2C+lade+3=0&Mediagewichten+per+papierpad=0&Mediatype+en+capaciteit%2C+lade+2=0&Mediatype+en+capaciteit%2C+lade+3=0&Minimum+systeemeisen+voor+Macintosh=0&Ondersteunde+mediaformaten=0&Ondersteunde+mediaformaten+voor+dubbelzijdig+printen=0&Printsnelheid+%28kleur%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+%28zwart%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+kleur+%28presentatie%2C+kwarto%29=0&Printsnelheid+zwart+%28presentatie%2C+kwarto%29=0&Standaard+mediaformaten=0&Standaard+mediaformaten+%28dubbelzijdig%2C+brits%2Famerikaans%29=0&Stroomverbruik=0&Stroomverbruik+%28in+standby%29=0&Stroomverbruik+%28indien+actief%29=0&Stroomverbruik+%28indien+uit%29=0&Stroomverbruik+%28PowerSave%29=0&SureSupply+ondersteuning=0&SureSupply+softwaredriver=0&SureSupply+type+verbinding=0&TEC+%28Typical+Electricity+Consumption%29+nummer=0&Upgrademogelijkheden=0&Verwerking+van+uitvoer=0&Flashgeheugen=0&Geheugenslots=0&Intern+geheugen=0&Maximaal+intern+geheugen=0&Opslagcapaciteit+harde+schijf=0&Type+geheugen=0&Aanbevolen+media+gewicht+%28duplex%2C+Imperial%29=0&Aanbevolen+relatieve+luchtvochtigheid+bij+gebruik=0&Aanbevolen+temperatuur+bij+gebruik=0&Aantal+dozen+per+pallet=0&Aantal+lagen+per+pallet=0&Aantal+per+pallet=0&Afmetingen+pallet+%28B+x+D+x+H%29=0&Afmetingen%2C+noot+%28brits%2Famerikaans%29=0&Afmetingen%2C+noot+%28metrisch%29=0&Akoestische+druk+uitstoot+omstanders+%28standby%29=0&Akoestische+emissie+%28gereed%29=0&Automatische+papierherkenning=0&Bedieningspaneel=0&Beveiligingsbeheer=0&Blue+Angel-compatibel=0&Document+levering+snelheid+%28A4%29=0&Document+levering+snelheid+%28brief%29=0&Document+levering+snelheid+nota=0&Downloadbare+software=0&Driver-updates+%E2%80%93+omschrijving=0&Duplex+bindende=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+brief%2C+koude+start%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+schrijven%2C+slapen%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28A4%2C+standby%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28kwarto%2C+standby%29=0&Formaten+afwijkende+media=0&Geluidsdruk=0&Geluidsdruk+omstander+%28tijdens+printen%29=0&Geluidskracht=0&Geluidsniveau%2C+buiten+gebruik=0&Geluisdsniveau+tijden+afdrukken=0&Gewicht+optioneel+%28metrisch%29=0&Gewicht+pallet=0&Gewicht+van+het+product+optioneel+%28imperiale%29=0&Hoogte%2C+in+bedrijf+%28brits%2Famerikaans%29=0&Hostmelding=0&Maximum+afmetingen+%28B+x+D+x+H%29=0&Maximum+invoercapaciteit+%28prioriteits-invoerlade%29=0&Mediaformaten+%28lade+2%29=0&Mediaformaten+%28lade+3%29=0&Mediagewicht+lade+2=0&Mediagewicht%2C+lade+3=0&Mediagewichten+per+papierpad=0&Mediatype+en+capaciteit%2C+lade+2=0&Mediatype+en+capaciteit%2C+lade+3=0&Minimum+systeemeisen+voor+Macintosh=0&Ondersteunde+mediaformaten=0&Ondersteunde+mediaformaten+voor+dubbelzijdig+printen=0&Printsnelheid+%28kleur%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+%28zwart%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+dubbelzijdig+%28zwart%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+zwart+%28presentatie%2C+kwarto%29=0&Standaard+mediaformaten=0&Standaard+mediaformaten+%28dubbelzijdig%2C+brits%2Famerikaans%29=0&Stroomverbruik+%28indien+actief%29=0&SureSupply+ondersteuning=0&SureSupply+softwaredriver=0&SureSupply+type+verbinding=0&TEC+%28Typical+Electricity+Consumption%29+nummer=0&Technische+details=0&Upgrademogelijkheden=0&Verwerking+van+uitvoer=0&Afmetingen+%28BxDxH%29=0&Gewicht=0&Aanbevolen+mediagewicht=0&Mediagewicht+lade+1=0&Mediagewichten+per+papierpad=0&TEC+%28Typical+Electricity+Consumption%29+nummer=0&Aantal+papierladen=0&Maximaal+aantal+papierlades=0&Maximum+invoercapaciteit=0&Multifunctionele+lade+capaciteit=0&Standaard+invoercapaciteit=0&Kopie%C3%ABn+vergroten%2Fverkleinen=0&Akoestische+emissie+%28tijdens+kopi%C3%ABren+of+scannen%29=0&Formaten+afwijkende+media=0&Mediaformaten+%28lade+1%29=0&Mediagewicht+lade+2=0&Standaard+mediaformaten=0&Aanbevolen+mediagewicht=0&Aantal+dozen+per+pallet=0&Aantal+lagen+per+pallet=0&Akoestische+emissie+%28gereed%29=0&Automatische+papierherkenning=0&Duplex+bindende=0&Eerste+pagina+%28kleur%2C+schrijven%2C+slapen%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+brief%2C+koude+start%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+schrijven%2C+slapen%29=0&Eerste+pagina+verschijnt+%28zwart+%2F+wit%2C+schrijven%2C+warme+stroom%29=0&Eerste+pagina+verschijnt%2C+kleur+%28A4%2C+standby%29=0&Eerste+pagina+verschijnt%2C+kleur+%28kwarto%2C+standby%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28A4%2C+standby%29=0&Eerste+pagina+verschijnt%2C+monochroom+%28kwarto%2C+standby%29=0&Geluidsdruk+omstander+%28tijdens+printen%29=0&Hoogte%2C+in+bedrijf+%28brits%2Famerikaans%29=0&Media=0&Mediatype+en+capaciteit%2C+lade+2=0&Mediatype+en+capaciteit%2C+lade+3=0&Printsnelheid+%28kleur%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+%28zwart%2C+normale+kwaliteit%2C+US+letter%29=0&Printsnelheid+kleur+%28presentatie%2C+kwarto%29=0&Printsnelheid+zwart+%28presentatie%2C+kwarto%29=0&SureSupply+ondersteuning=0&SureSupply+softwaredriver=0&TEC+%28Typical+Electricity+Consumption%29+nummer=0&Compatibiliteit=0&Mac-compatibiliteit=0&Minimaal+benodigde+schijfruimte=0&Minimaal+RAM=0&Minimale+processor=0&Minimale+systeemeisen=0&Beheerprotocollen=0&Draadloze+opties=0&LAN+met+kabels=0&Lettertypen=0&Ondersteunde+beveiligingsalgoritmen=0&Opties+voor+dubbelzijdig+printen=0&Printmarge+boven+%28A4%29=0&Printmarge+links+%28A4%29=0&Printmarge+onder+%28A4%29=0&Printmarge+rechts+%28A4%29=0&Printtechnologie+resolutie=0&Supported+network+protocols+%28IPv4%29=0&Supported+network+protocols+%28IPv6%29=0&Wireless+LAN+type=0&WLAN+verbinding=0&Custom+media+length=0&Custom+media+width=0&Duplex+ondersteund+mediagewicht%2C+aanbevolen+%28metrisch%29=0&Envelopes+sizes=0&ISO+A-series+sizes+%28A0...A9%29=0&ISO+B-series+sizes+%28B0...B9%29=0&JIS+B-series+sizes+%28B0...B9%29=0&Maximale+printafmetingen=0&Multi-purpose+Tray+media+types=0&Multifunctionele+lade+papiergewicht=0&Non-ISO+print+media+sizes=0&Standard+tray+media+weight=0&Typen+printmedia=0&Duplex+printing=0&Gebruiksindicatie+%28Max.%29=0&Kleur=0&Maximale+maandelijkse+gebruiksindicatie%3A+tot=0&Maximale+resolutie=0&Netwerkgereed=0&Printtechnologie=0&Economisch+printen=0&Opwarmtijd=0&Printsnelheid+%28kleur%2C+standaard%2C+A4%29=0&Printsnelheid+%28zwart%2C+standaardkwaliteit%2C+A4%29=0&Tijdsduur+tot+de+eerste+pagina+%28kleur%2C+normaal%29=0&Tijdsduur+tot+de+eerste+pagina+%28zwart%2C+normaal%29=0&Aantal+printcartridges=0&Printkleuren=0&Printmarge+boven+%28A4%29=0&Printmarge+links+%28A4%29=0&Printmarge+onder+%28A4%29=0&Printmarge+rechts+%28A4%29=0&Standaard+printertalen=0&Stroomverbruik+%28indien+actief%29=0&Built-in+processor=0&Processor-kloksnelheid=0&Processorfamilie=0&Aanbevolen+temperatuur+bij+gebruik=0&Aansluiting=0&Aansluitingen=0&Afdrukbereik=0&Afmetingen+van+het+product+wanneer+het+open+is+%28LxBxD%29=0&Afmetingen+verpakking+%28B+x+D+x+H%29=0&Automatische+papierherkenning=0&Bekabelingstechnologie=0&Blue+Angel-compatibel=0&Capaciteit+cartridge=0&Compatibele+besturingssystemen=0&Compatibele+geheugenkaarten=0&Compatibele+producten=0&Draadloze+opties=0&Draadloze+technologie=0&Drivers+included=0&Elektromagnetische+compatibiliteit=0&Emulatie=0&Energie-effici%C3%ABntieklasse=0&Energy+Star+Typical+Electricity+Consumption+%28TEC%29=0&Envelopinvoer=0&Extra+papierladen=0&Gebundelde+software=0&Geheugentechnologie=0&Geheugenupgrade=0&Geluidsniveau+tijdens+kopi%C3%ABren=0&Geluidsproductie+%28in+werking%29=0&Geluidsproductie+%28standby%29=0&Handmatige+papierinvoer=0&Inclusief+lettertypes=0&Industriestandaard=0&Ingebouwde+webserver=0&Invoercapaciteit+%28lade+2%29=0&Invoercapaciteit+voor+enveloppen+%28primaire+lade%29=0&Kleur+van+het+product=0&Kleurenprinttechnologie=0&Lettertypen=0&Maat=0&Max.+printvolume+voor+A4-formaat+pagina%27s=0&Maximaal+aantal+papierladen=0&Maximum+afmetingen+%28B+x+D+x+H%29=0&Maximum+temperatuur+in+bedrijf=0&N-in-1+function+%28N%3D%29=0&Netwerkfuncties=0&Ondersteunde+gewicht%28en%29+media=0&Opties+voor+dubbelzijdig+printen=0&Papierverwerking=0&Papierverwerking+optioneel%2Finvoer=0&Papierverwerking+optioneel%2Fuitvoer=0&Papierverwerking+standaard%2Finvoer=0&Papierverwerking+standaard%2Fuitvoer=0&Printerbeheer=0&Printkwaliteit+%28kleur%2C+concept%29=0&Printkwaliteit+%28kleur%2C+presentatiekwaliteit%29=0&Printkwaliteit+%28zwart%2C+beste+kwaliteit%29=0&Printkwaliteit+%28zwart%2C+standaard%29=0&Printmarge+boven+%28A4%29=0&Printmarge+links+%28A4%29=0&Printmarge+onder+%28A4%29=0&Printmarge+rechts+%28A4%29=0&Printsnelheid+%28kleur%2C+presentatie%2C+A4%29=0&Printsnelheid+%28zwart%2C+presentatiekwaliteit%2C+A4%29=0&Printsnelheid+dubbelzijdig+%28kleur%2C+normale+kwaliteit%2C+A4%29=0&Printsnelheid+dubbelzijdig+%28Zwart%2C+normale+kwaliteit%2C+A4%29=0&Printtechnologie+resolutie=0&Relatieve+luchtvochtigheid+bij+opslag+%28geen+condensering%29=0&Soort+voeding=0&Standaard+aantal+invoerladen=0&Standaard+uitvoercapaciteit+voor+enveloppen=0&Standaard+uitvoercapaciteit+voor+transparanten=0&Stroomverbruik+%28indien+actief%29=0&Stroomvoorziening=0&SureSupply+ondersteuning=0&Verbinding+met+pc=0&Maximale+uitvoercapaciteit=0&Standaard+uitvoercapaciteit=0&Direct+printen=0&Optionele+connectiviteit=0&PictBridge+%E2%80%93+omschrijving=0&Standard+interfaces=0&USB+2.0+poort%28en%29=0&Toner+cartridge=0&Power+Led+indicator=0&Stand-by+LED=0&Afmetingen+verpakking+%28BxDxH%29=0&Gewicht+pakket=0


Heb al een optie om alleen te filteren met de meest gebruikte filters, maar soms moet je wat specifieker filteren en dan krijg je dus een form met daarin alle filter opties. Met als resultaat deze achterlijk lange url.
 
Ozzie PHP

Ozzie PHP

23/01/2012 20:00:05
Quote Anchor link
Hihi... lol.. da's inderdaad wel een lange url.
 
Erwin H

Erwin H

23/01/2012 20:07:38
Quote Anchor link
Maar als je dit soort parameter namen gebruikt dan vraag je er ook wel een beetje om: "Standaard+uitvoercapaciteit+voor+transparanten"
 
Roy D

Roy D

23/01/2012 21:58:51
Quote Anchor link
De gegevens komen bij Icecat vandaan, bijv: http://icecat.nl/p/samsung/ml-1665/laserprinters-5052179262302-ml-1665-4001236.html

Het is of nietszeggende getallen gebruiken of dit soort (lange) namen.

Inmiddels het systeem op POST draaien, maar lastig ivm doorsturen van overzicht met gekozen filters. En wanneer je op vorige in de browser klikt krijg je dat de pagina verlopen is natuurlijk..

Heb nog wel wat bedacht maar dan krijgen we ook nietszeggende url's:
POST -> gegevens in Database/Session opslaan met een uniek nummer -> redirect naar pagina met bijv. index.php?p=categorie&id=1&filter={uniek_nr}

Andere mogelijkheden cq tips?
 
Ozzie PHP

Ozzie PHP

23/01/2012 22:31:03
Quote Anchor link
Je zou ook e.e.a kunnen combineren. Jij geeft zoveel filters mee dat je praktisch op productniveau bezig bent.

Je zou kunnen kiezen om alleen de belangrijkste filters in de url mee te nemen, bijv. categorie.php?merk=Samsung&diagonaal=18

Alle andere filter opties doe je dan via POST / ajax.

Wellicht is dat een idee?
 
Roy D

Roy D

23/01/2012 22:35:45
Quote Anchor link
Heb al wel onderscheid gemaakt. Een tal van meest gebruikte filters en wanneer het echt specifiek moet worden kunnen alle filters gebruikt worden.

Dank voor de tip! Ga het doorvoeren!
 



Overzicht Reageren