serialisieren der POST-array übergeben können viele Daten über einen link
Ich bin ein noobie problem, meinen Kopf Runde, wie kann ich diese Arbeit machen.
Ich habe eine Seite mit einer Liste die Produkte aus meiner DB. Auf dieser Seite gibt es einen filter bilden, welche Beiträge viele Daten zur Verfeinerung der Produkt-Listung, das heißt, wie viele Ergebnisse pro Seite, Sortierung, pricefrom, priceto sowie eine Reihe von Unterkategorien
Ich habe auch ein paging-system, das ist eben die standard-zencart (splitpageresults::dsplaylinks
incase jemand kennt) paging-system, das zeigt von links für den nächsten, vorherigen und einige Seitenzahlen. Normalerweise übergeben Sie params als $_GET
am Ende des links, aber ich habe alle diese fancy-Filter, die ich gemacht habe.
Meine Idee zu serialisieren, die $_POST
array aus und senden Sie es als $_GET
param in den links:
<a href="index.php&arr=<?php echo serialize($_POST[]);?>">nxt</a>
aber ist das schlecht scheint all das serialisieren und Deserialisieren von.
Was ist der beste Weg, dies zu tun?
Ich kann ' T es herausfinden!
- Besser, speichern Sie die Filter in der Sitzung. Gibt es ein limit auf die Menge der Daten, die übergeben werden können über den url.
- Ah stimmt, ok. Danke für die Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie entfernen Sie die
[]
undurlencode()
die serialisierten Daten:Sondern verwenden Sie besser Sitzungen. Finden Sie die Handbuch.
Blick auf die erweiterte Suche und die erweiterte such-Ergebnis-Seiten für die Beispiele der Handhabung einer Menge von Daten mit POST.
Versuchen, diese
IMHO serialize() und Deserialisieren() auf $_GET oder $_POST ist alles andere als eine gute Idee, es gibt zwei Hauptaspekte, die ich mir denken kann:
Weitere details auf den Aspekt der Sicherheit, check out Stefen Esser OWASP-Präsentation, Seite 27 auf [PDF, owasp.org]. In der Regel nicht so dramatisch, wie viele Leute uns glauben machen wollen, kann jedoch bis zu einem bösen Sicherheitsproblem trotzdem (wie phpBB2, Zend, etc).
Beste Praxis wäre, die Nutzung JSONs (die Funktionen json_encode und json_decode sind die bessere option). Mit JSONs Sie können mehr tun, standards-basierten AJAX-ing, plus Benutzer-freundliche JavaScript-oder jQuery-basierte Paginierung oder Filter.