vor welche Sonderzeichen müssen Backslashes
romy
- php
0 Cheatah0 romy0 Thomas Schmieder0 romy0 Cheatah
0 Andreas Korthaus
0 Cheatah
0 Andreas Korthaus
hi,
bei welchen Sonderzeichen muss ich Backslashes davorsetzen, wenn ich einen string zusammenbaue?
ich weiss nur bei " und ' und...?
header = "Location:http://netxp.intra.net/~romy/ordner.1/index-tables.php?request=1";
geht nämlich nicht, es gibt einen parse error
und das kann ja nur an sowas liegen
danke
ciao
Hi,
bei welchen Sonderzeichen muss ich Backslashes davorsetzen, wenn ich einen string zusammenbaue?
Sonderzeichen müssen vor jedes Zeichen, welches eine besondere Bedeutung hat, wenn diese nicht erwünscht ist. Dazu gehört immer auch das Escape-Zeichen, also der Backslash selbst.
header = "Location:http://netxp.intra.net/~romy/ordner.1/index-tables.php?request=1";
geht nämlich nicht, es gibt einen parse error
Da es für mich normal aussieht (abgesehen davon, dass hinter "Location:" ein Leerzeichen stehen sollte - und das die Tilde "~" in URLs nicht erlaubt ist und als "%7E" kodiert zu werden hat), unterstelle ich den Fehler kurz vor dieser Zeile. Ein Parser meldet einen Fehler erst dann, wenn er etwas nicht mehr interpretieren kann; unabhängig davon, wo der Mensch dann die Lösung platziert.
Cheatah
Hi,
unterstelle ich den Fehler kurz vor dieser Zeile. Ein Parser meldet einen Fehler erst dann, wenn er etwas nicht mehr interpretieren kann; unabhängig davon, wo der Mensch dann die Lösung platziert.
mhm, das mag echt sein, ich hab noch ne Idee
wenn ich ne Get-variable abfrage, ist die dann als string gespeichert?
also if($_get["link"] == 1) geht nicht, da ich anführungszeichen drumrummachen muss?
kann gerade nicht probieren!
danke der rest hat mir sehr geholfen
PS: du schreibst immer wieder unter postings, das gewisse zeichen im url-string ausgetauscht werden müssen, zB auch das &
wo gibt es denn eine Liste, welche zeichen womit codiert werden müssen?
ciao
Cheatah
Hi Romy,
PS: du schreibst immer wieder unter postings, das gewisse zeichen im url-string ausgetauscht werden müssen, zB auch das &
wo gibt es denn eine Liste, welche zeichen womit codiert werden müssen?
Habe cih neulich auch schon mal danach gefragt, nach welchem Zeichensatz das denn geht. Konnt mier auch keiner sagen. Extended ASCII scheint es nicht zu sein.
Aber es gibt ja die Funktionen ulrdecode() und urlemcode(). Wenn Du Deine Strings da durchschickst, werden sie entsprechend behandelt. Oder wenn Du ein Formular per method="get" verschickst, macht das Codieren der Browser für dich. Ist doch nett, oder?#
Grüße
Tom
Hi Romy,
Aber es gibt ja die Funktionen ulrdecode() und urlemcode(). Wenn Du Deine Strings da durchschickst, werden sie entsprechend behandelt. Oder wenn Du ein Formular per method="get" verschickst, macht das Codieren der Browser für dich. Ist doch nett, oder?#
natürlich, extrem nett ! *g*
d.h also, so viele Gedanken muss ich mir darum gar nicht machen?
ausser ich setze ein URL selbst zusammen und diese Zeichen kommen vor
wieso hab ich da eigentlich nie Probleme bekommen bis jetzt?
Tolerieren viele Browser die Fehleingaben?
ciao und ganz liebe Grüsse
romy
Grüße
Tom
Hi,
d.h also, so viele Gedanken muss ich mir darum gar nicht machen?
ausser ich setze ein URL selbst zusammen und diese Zeichen kommen vor
jupp.
wieso hab ich da eigentlich nie Probleme bekommen bis jetzt?
Tolerieren viele Browser die Fehleingaben?
Die meisten "modernen" (sprich: graphischen, auch weniger netzinternen Usern bekannten) Browser haben ob ihrer Fehlerkorrekturen mit einem <a href="?bla=1&blub=2"> kein Problem - meistens. Wenn es dann z.B. "?bla=1©=2" heißt, sieht es plötzlich ganz anders aus, weil davon "?bla=1©=2" übrig bleibt. Beim IE 4 konnte ich sogar beobachten, dass er in "¤cy=" das "¤" erkannt hat und es schlussendlich "¤cy=" hieß.
Cheatah
Hallo!
Habe cih neulich auch schon mal danach gefragt, nach welchem Zeichensatz das denn geht. Konnt mier auch keiner sagen. Extended ASCII scheint es nicht zu sein.
Vielleicht hilft Dir: http://selfhtml.teamone.de/html/allgemein/referenzieren.htm#uri
Grüße
Andreas
Hi,
wenn ich ne Get-variable abfrage, ist die dann als string gespeichert?
ja, natürlich. Sie wurde schließlich aus einem String ermittelt.
also if($_get["link"] == 1) geht nicht, da ich anführungszeichen drumrummachen muss?
Könnte sein, sollte aber nicht für einen Parsing-Error verantwortlich sein. 1=="1" ergibt eben false, das ist alles.
kann gerade nicht probieren!
Schau mal nach, ob da in der Region noch irgendwas anderes falsch sein könnte - beispielsweise auch "merkwürdige" Whitespaces.
PS: du schreibst immer wieder unter postings, das gewisse zeichen im url-string ausgetauscht werden müssen, zB auch das &
Nichts durcheinanderbringen, bitte :-) Es gibt unterschiedliche Kodierungen, die immer genau(!) dann eingesetzt werden müssen, wenn der Wert im für die Kodierung gedachten Bereich eingesetzt wird. Welche Zeichen in einer URL gültig sind, steht in RFC 1738 (http://www.ietf.org/rfc/rfc1738.txt); welche Zeichen in einem URL-_Parameter_ (bzw. dessen Wert) stehen dürfen ist davon abhängig, wie "URL-Parameter" definiert ist: Gewöhnlich wird an "&" und "=" getrennt, d.h. auch diese Zeichen müssen innerhalb von Name und Wert kodiert sein, sonst gelten sie als Trenner.
Wenn ich darauf hinweise, dass ein "&" kodiert werden muss, dann geschieht dies gewöhnlich im Zusammenhang mit HTML: Dort ist dies nämlich das Escape-Zeichen, es leitet eine Entität ein, ist also vergleichbar mit dem Backslash in Strings z.B. bei PHP. Mit URLs hat diese Kodierung per se nicht das geringste mehr zu tun - in diesem _semantischen_ Zusammenhang taucht das Problem einfach nur am häufigsten auf.
wo gibt es denn eine Liste, welche zeichen womit codiert werden müssen?
"hier gültiges Sonderzeichen" mit "hier gültigem Escape-Zeichen". Das gilt für jedes "hier". Ein Sonderzeichen ist entweder ein Zeichen mit einer besonderen Bedeutung, oder eines, welches an der Stelle überhaupt nicht erlaubt ist (in URLs beispielsweise alles jenseits von chr(127)).
Cheatah
Hi,
Schau mal nach, ob da in der Region noch irgendwas anderes falsch sein könnte - beispielsweise auch "merkwürdige" Whitespaces.
ich habs gefunden
<blind> man sollte doch ein $ vor die Variable machen </blind>
wenn man schnell tippt, macht man aber auch merkwürdige Fehler
Nichts durcheinanderbringen, bitte :-)
okay, ich hüte mich ;)
danke für die restlichen Ausführungen
ich hätte mal noch ne Frage, will aber dafür keinen neuen Thread aufmachen:
wenn ich daten in einer sql-datenbank speichere, wo sind dann die daten
ich weiss nur wo die Datei liegt, die die DB anlegt und mit Vorwerten füllt, aber wo ist dann der Teil, wo die ganzen Daten dann eingefügt werden
das muss ja auch ne Datei sein <bloedfrag> welche Dateiendung hat die und wo wird die intern abgelegt (speziell interessiert mich das für linux)
???
wünsch Dir was
ciao
Hi,
wenn ich daten in einer sql-datenbank speichere, wo sind dann die daten
in der Eigenverwaltung der Datenbank. In aller Regel sind die Daten in irgendeiner Form in einer Datei gespeichert; wo das ist ist vom DBMS abhängig, und ob die Daten für jemand anders als das System selbst lesbar sind, ist zumindest anzuzweifeln.
das muss ja auch ne Datei sein <bloedfrag> welche Dateiendung hat die und wo wird die intern abgelegt (speziell interessiert mich das für linux)
Das Betriebssystem dürfte damit i.d.R. nicht das geringste zu tun haben, sondern es liegt nur am DBMS - und je nach DBMS ist es dann auch OS-abhängig. Ich persönlich denke aber, dass das für einen nicht-Hardcore-DBA völlig uninteressant ist: Es ist schließlich der _Job_ eines DBMS, genau das zu wissen, so dass es niemand anders mehr wissen muss.
Cheatah
Hallo!
bei welchen Sonderzeichen muss ich Backslashes davorsetzen, wenn ich einen string zusammenbaue?
Steht im Manual: http://www.php3.de/manual/de/language.types.string.php
Grüße
Andreas