GET Variable mit Leerzeichen ?

Alles, was PHP betrifft, kann hier besprochen werden.

Re: GET Variable mit Leerzeichen ?

Postby Altrea » 29. March 2010 09:32

Hi

ChristianDannenberg wrote:Ich weis, das ich dies beim Thema Sicherheit ändern sollte.

Nichtnur beim Thema Sicherheit, sondern auch um deine Scripte zukunftssicher und plattformunabhängig lauffähig zu machen

ChristianDannenberg wrote:Momentan liegt mir aber leider nicht die zeit vor.

Das ist immer eine beliebte Ausrede für unliebsame Aufgaben. Man kann seinen Problemen aber nicht dauerhaft davonlaufen.

ChristianDannenberg wrote:Das Problem besteht darin, das bei einer Übergabe von ?=VarA=1&VarB= &VarC=1 alles nach dem Leerzeichen abgeschnitten wird, somit wird Var C ignoriert.

Was absolut verständlich und korrekt ist. Leerzeichen haben uncodiert in einer URL nichts zu suchen, ohne wenn und aber.

ChristianDannenberg wrote:Bei der alten PHP Version gab es hierbei keine Probleme.

Deshalb gibt es jetzt PHP5 und nichtmehr PHP4. Die Entwicklung schreitet voran, alles wird besser :)

ChristianDannenberg wrote:Vieleicht kenntjemand eine Lösung.

bei php gibt es für das Maskieren von nichterlaubten Zeichen in einer url die Funktion urlencode(). Du kannst das Leerzeichen auch von Hand ersetzen (%20 = Leerzeichen).
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: GET Variable mit Leerzeichen ?

Postby Nobbie » 29. March 2010 12:07

ChristianDannenberg wrote:Ich werde es mal mit %20 und urlencode() versuchen!


Wie grausam, das ist doch wieder nur die halbe Lösung. Leerzeichen haben in Bezeichnern nichts verloren, und nur weil es eine Umgehungslösung gibt, kann man das doch nicht ernsthaft weiterbetreiben.

Solche Dinge entwickeln meistens eine beachtliche Eigendynamik und irgendwann kommt man an einen Punkt, wo es wirklich nicht mehr weiter geht. Nachher sollen diese Leerzeichen auch in die Spaltennamen der MySQL Tabelle und weil MySQL das "kann", wird es so gemacht. Und irgendwann soll das Projekt dann auf Oracle oder eine andere ANSI SQL Implementierung umgestellt werden - und dann ist der Aufwand auf einmal riesengroß, diese fehlerhafte Design zu korrigieren.

Mit anderen Worten: wenn Du Dir jetzt sowieso die Mühe machst und das Design änderst, dann ändere es so, dass es nicht irgendwann wieder geändert werden muss. Und niemand kann mir erzählen, dass es technisch notwendig ist, Leerstellen in Bezeichner zulassen zu müssen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 34 guests