PHP Leerzeichen aus GET ausgeben bzw in Variable speichern

furryhamster

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.101
Hi,

habe einen GET-Link, den ich verarbeiten muss. um zu testen ob das ganze funktioniert versuche ich den Link mit echo wiederzugeben.

wenn ich ein leerzeichen im Link mit ins URL Feld des Browsers eingeben wird das leerzeichen ja mit %20 interpretiert, wenn ich den getlink mit urlencode übergebe wird das leerzeichen ja mit + übersetzt. in beiden fällen wird mir aber weder mit echo noch mit print überhaupt was für dieses get ausgegeben.

was kann ich da machen

ps: eine begrenzung wie lang bzw wie viele variablen per get übermittelt werden gibt es nicht oder?
 
Hallo,

es wäre hilfreich den Code zu sehen, mit dem du das GET ausgeben lässt.

Und ich hoffe du übergibst nicht nur ein Leerzeichen, willst es dir dann anzeigen und wunderst dich über einen leeren Bildschirm ;)

Ansonsten halt $_GET['Variablenname'] ansprechen, müsste die Variable rausholen.
 
habe es mit
- print ($_GET['k']."<br>");
- echo $_GET['k']."<br>";
probiert.
Das k enthällt eine Adresse z.B. "Straße 5"
Einmal wird es in der Adresszeile mit "&k=strasse+5" und einmal mit "&k=strasse 5" übergeben. Beide Varianten Funktionieren nicht
 
Wie sieht es mit serialize($_GET); aus?

Wie sieht deine URL generell aus?

PHP Interpreter auf dem Server aktiv, also geht PHP überhaupt?
 
php ist auf jeden fall aktiv. alles gets ohne leerzeichen funktionieren. mit serialize($_GET) zeigt er mir sogar das darauffolgende get nicht mehr an.

hier mal die url
-http://localhost/test.php?a=Herr&b=&c=Vorname&d=Nachname&e=&f=xxx@xxx.de&g=gsdjklgsdl&h=&i=&j=&k=strasse+5&k=44444&m=ort&n=D&o=&p=&q=537529&r=&s=&t=
 
Auf meinem Localhost funktioniert das problemlos mitm XAMPP.

Hast du die Fehlerausgabe eingeschaltet?

ansonsten mal vor die Ausgabe error_reporting(E_ALL); setzen
 
nutze auch xampp. genau mein link dürfte denke nicht bei dir gehen.

dank dem tipp mit error_reporting(E_ALL); hab ich den fehler gefunden. ich hatte "k" 2x defniert. die plz habe ich jetzt mit "l" definiert. jetzt geht es auch. danke nochmal :)
 
Wärs nicht sinnvoller die Variablen so zu wählen, dass du mit der Bezeichnung auch was anfangen kannst? $str für Straße, $plz für PLZ usw. Das würde dir wahrscheinlich solche Fehler ersparen.
 
selbstverständlich ist das sinnvoller. allerdings ging es mir nur darum zu testen ob man mit get quasi "unbegrenz" daten übermitteln kann, daher die kurzen variablennamen um zeit zu sparen, auch wenn es letzendlich jetzt länger gedauert hat ^^

das ganze wird später noch ordentlich implementiert sodass man das auch noch nachvollziehen kann
 
Was meinst du mit unbegrenzt?

Die Länge der URL ist durchaus begrenzt, ggf. vom Server oder aber auch vom Browser.
 
Wieso speicherst du diese Daten einfach nicht in einer Session und übergibst einfach die Session ID bzw. versuchst den ganzen Spaß erstmal in eine Cookie abzusetzen, und wenn dies nicht möglich ist wird einfach die Session ID an die URL angehangen. Es gibt natürlich auch noch viele andere Lösungen, dies wäre aber wahrscheinlich mit einer der Saubersten. Ich empfehle dir einfach mal dieses Tutorial anzusehen: http://www.php-space.info/php/space/session_php.php
 
habe mal etwa 300-400 zeichen per get übertragen. ging problemlos.

session wird nicht gehen. das problem ist, dass daten, die auf einer mysql datenbank auf eine informix datenbank müssen. diese informixdatenbank ist abgeschottet und kann nicht direkt "angesprochen" werden. die daten werden daher per email in einem get link übertragen und auf der informix datenbank ausgewertet
 
Was hat das damit zu tun, mit GET überträgst du Daten. Wenn du diese Daten in eine Session speicherst und danach in deiner nächsten Seite aus der Session wieder abfragst, wirst du den gleichen Effekt haben. Dies hat absolut nichts damit zu tun, der Vorteil bei einer Session Übertragung liegt darin, dass man weniger manipulieren kann als wie bei einer GET Übertragung. Zusätzlich gibt es ein Limit bei der GET Übertragung. Bei einer Session, kannst Du bedeutend mehr Daten speichern und wieder abfragen.

Zur Info: Die maximale Länge der URL, samt Get-Parameter darf dabei ca. 2 Kilobyte betragen. Bei älteren Webservern lag die Grenze bei maximal 255 Byte.

Dazu kommt, daß einige ältere Browser wohl ebenfalls nur 255 Zeichen versenden.
 
verrat mal wie du auf die daten in der session zugreifen willst. aus meiner sicht ist das nicht möglich

die daten der session werden auf dem server mit einer mysql datenbank hinterlegt. ein ganz anderer server mit informix muss die daten allerdings bekommen. da dieser server allerdings nicht mit dem internet verbunden ist kann der wohl schlecht auf eine session zugreifen.

da das ganze system nur intern von einem server auf den anderen übertragen werden soll per get, ist ein zu alter browser ausgeschlossen, da alle firefox 3 nutzen. 2kb an daten sollte auch reichen. eine adresse + 3-4 zusatzfelder dürften denke platz finden.
inwiefern unser webserver das übertragen kann muss ich noch testen, mitm aktuellen xampp gehts zumindest
 
Zuletzt bearbeitet:
Zurück
Oben