Vinzenz Mai: Mit PHP Script eine lokale URL in URL auf Webserver umwandeln..

Beitrag lesen

Hallo,

Trotzdem hat es nicht geklappt...

dann hast Du etwas falsch gemacht.

Zwar verstehe ich, was man alles mit den Zeichenmanipulationen und den magic quotes anstellen kann,

Du sollst die Magic Quotes deaktivieren, wenn möglich.
Ist das nicht möglich, dann musst Du als allererstes den Mist, den diese fabrizieren, rückgängig machen. Die Magic Quotes sind einfach Blödsinn und werden aus gutem Grund mit PHP6 verschwinden.

So funktionierts, aber warum jeder Browser wieder die ganze Sache anders interpretiert,

Den Browsern ist das völlig egal. Die bekommen HTML ausgeliefert.

Ihr habt mich also falsch verstanden, wenn ihr schreibt : "1. Finde die Position des letzten Backslashes in der Ausgangszeichenkette strrpos()".

Was heißt "falsch verstanden"? Du hast es ja nicht erklärt. Ich bin kein Hellseher.

Nur der Teil von "C:\WINDOWS\Desktop" muss durch z.B. "www.homepage.com" ersetzt werden, und wenn die Schrägstrich-Umwandlung geklappt hätte, hätte auch das vorige Script funktioniert.

  • "C:\WINDOWS\Desktop\Projekt_01\test.htm"
  • "C:\WINDOWS\Desktop\Projekt_02\akte_11\texte.htm"
  • "C:\WINDOWS\Desktop\Projekt_01\akte_11\detail_05\bilder.htm"

Easy:

0. Deaktiviere die Auswirkungen der Magic Quotes, falls notwendig.
   Du hast jetzt eine Zeichenkette mit einfachen Backslashes

1. Nimm die Teilzeichenkette ab dem Backslash hinter
   C:\Windows\Desktop kommt.

2. Ersetze mit str_replace die Backslashes durch Slashes

3. Setze "http://www.example.com" davor.

"Zwergnase : Deshalb meine - vielleicht zum 1.500 Mal gestellte - Frage :
Wie bekomme ich die Magic Quotes GPC auf ON umgestellt ?

Wer will diese auf ON haben will, hat sie nicht verstanden. Wer sie verwendet, ist *** (zensiert).

Bei meinem Provider konnte ich es einschalten, indem ich in der .htaccess Datei folgende Zeile hinzugefügt habe:
php_flag magic_quotes_gpc on"

Schalte sie aus! Wenn Du etwas in eine MySQL-Datenbank schreiben willst, dann verwende die angemessene Behandlungsfunktion von PHP, das wären zum Beispiel mysql_real_escape_string() bzw. mysqli_real_escape_string. Noch besser wären Prepared Statements mit mysqli.

Du hast hier gar keinen SQL-Kontext, Du hast einen HTML-Kontext (und einen URL-Kontext).

Freundliche Grüße

Vinzenz