Maximale Länge der $_GET Variabel von PHP erhöhen

  • Hallo zusammen,


    ich habe derzeit ein PHP-Script das grössere Mengen an Daten per $_GET "ausliest". Ab 512 Zeichen wird der Parameter nicht mehr vom Script übernommen. Da diese Grenze bei meinem Webspace-Paket (nicht Netcup) nicht besteht habe ich gedacht das könnte man in der php.ini umstellen.


    Das einzige was ich dazu gefunden habe waren ein paar Werte von suhosin. Die Überschreibung der Werte per .htaccess hat aber keinen Erfolg erzielt.

    [LEFT]
    [/LEFT]
    Hat sonnst jemand eine Ahnung wo man dieses Limit ändern kann?


    Gruss

  • Hast du nen (v)Server?
    Dann findest du die Settings unter

    Code
    /etc/php5/apache2/conf.d/suhosin.ini

    Mein Server:
    v(olks)Server 1. Serie: 2,5GHz, 1024MB RAM, 1024MB Swap, 2x60GB-Raid1-HDD, Traffic-Flat
    Node:
    78.46.117.9x | hos-tr2.ex3k4.rz7.hetzner.de

  • Zitat von Artimis;18224

    Hast du nen (v)Server?
    Dann findest du die Settings unter

    Code
    /etc/php5/apache2/conf.d/suhosin.ini


    Ja ;)


    reicht es nicht wenn ich die Default-Werte per .htaccess überschreibe? Weil das funktioniert leider nicht... Global möchte ich das nicht unbedingt ändern.

  • Sry, ich weiß nicht, ob das klappt.
    Suhosin ist ja "nur" ein Modul von PHP. Ob man da mit den Settings per .htaccess rumspielen kann, weiß ich nicht.


    Warum lässt du die Daten nicht per $_POST schicken? Oder du änderst schlicht das Limit. Sooo sicherheitsrelevant ist das nun auch nicht, früher ist man ohne so etwas gefahren.

    Mein Server:
    v(olks)Server 1. Serie: 2,5GHz, 1024MB RAM, 1024MB Swap, 2x60GB-Raid1-HDD, Traffic-Flat
    Node:
    78.46.117.9x | hos-tr2.ex3k4.rz7.hetzner.de

  • Ich werde heute ABend das Limit mal direkt in der .ini ändern. Hab hier leider gerade keine Shell zur Verfügung / der Port ist blockiert :D


    Deswegen wäre per .htaccess leichter gewesen ;)

  • Nichts! Du hast mich falsch verstanden, natürlich muss man Requests nutzen um Daten vom Client and den Server zu übermitteln, nur kenn ich seine Situation nicht genau und halte es für möglich dass man es bei ihm vielleicht besser lösen könnte :-).

  • Zitat von Michael;18235


    Was willst Du eigentlich übergeben?


    Übergeben werden verschiedene Key-Words für einen Performance-Test der Datenbank.


    Zitat von sim4000;18238

    Was spricht gegen POST?


    Eigentlich nichts :D Nur ist es leichter per Java einen GET-Request abzusenden anstatt einen POST. ( ice-breaker ja ich weiss das dies nicht gut gelöst ist ;) )


    Ich hab nur zur Zeit keine Lust gross an dem Script zu basteln daher habe ich gedacht, es wäre einfacher die Werte kurz zu überschreiben.


    Das ganze wird später auf einem Produktiv-System nicht so gelöst!

  • Zitat von Xot;18247

    ice-breaker ja ich weiss das dies nicht gut gelöst ist ;)


    ich wollte doch gar nichts sagen :D


    Bedenke aber, dass im HTTP-Standard eine max. Anzahl an Zeichen für die URL definiert wurde, genaue Zahlen weiß ich nicht auswendig.


    Zitat von sim4000;18266

    Reden wir von Java oder von JavaScript?
    Du redest in einem Satz von Java und in dem anderen von einem Script. :)


    ich vermute mal Java und ein PHP-Script ;)

  • Zitat von TheReaper;18280

    Wieso nicht einfach eine Java Client / Server Alternative? Bzw. wozu der Umweg über Apache2/PHP


    Wie gesagt: Die Webapplikation ist auf PHP aufgebaut. Für diverse Performance-Tests habe ich ein Java-Prg. geschrieben, welches verschiedene Szenarien simuliert und Geschwindigkeit misst. Dazu werden verschiedene PHP-Scripts mit bestimmten Parametern aufgerufen.

  • Aso du willst die Webseite testen. Kann ab nicht eigentlich auch Parameter verwenden?


    Zudem wenn du mehr Parameter als erlaubt nutzt, wie funktioniert denn dann deine Webseite fehlerfrei?

  • Zitat von TheReaper;18282

    Kann ab nicht eigentlich auch Parameter verwenden?


    Was meinst du damit genau?


    Zitat von TheReaper;18282


    Zudem wenn du mehr Parameter als erlaubt nutzt, wie funktioniert denn dann deine Webseite fehlerfrei?


    Die Tests sind nicht da um die Webseite zu testen sondern die Performance:


    Ich habe zum Beispiel auf meiner Webseite folgenden Query:

    SQL
    INSERT INTO `newUrls` (`url`, `addTime`) VALUES ('%s', %d);

    Nun lautet mein PHP-Script zB so:

    (Nur ein Beispiel. Kann Fehler enthalten!)


    Nun ruft mein Script die PHP-Datei mit einer bestimmten Anzahl an Parametern auf. Dabei wird dann pro Paramter die foreach Schleife einmal durchlaufen.


    Das ganze hier ist nur ein Beispiel: Bei meinen Szenarien werden komplexere Joins getestet.
    Da ich aber mein Java-Programm nicht nur zum testen dieser Anwendung gebrauche würde ich dieses nur ungern ändern.

  • Du könntest auch die Daten statisch speichern und per Java-Programm nur noch den Befehl zum Testen (und in diesem Fall Einfügen) dieser Daten geben.


    Also die Testdaten in jeweils eine Datei schreiben und z.B. dann per include einlesen.
    Sollte sogar noch bessere Werte liefern als dein oben beschriebener Weg, da hier der Upload der Daten durchaus eine Rolle spielen kann.