Probleme mit LINK
Probleme mit LINK
Hallo zusammen,
derzeit stehe ich vor einem größeren Problem. Das phpBB-Forum wird in Version 3.0 RC5 im Intranet verwendet.
Jetzt stehe ich vor einem schier unlösbarem Problem.
Ich möchte auf eine Datei verweisen die folgenden Link hat:
file:\\ordner1\ordner2\ordner3\Dokumentation.pdf
Problem sind hierbei jedoch die backslashs. Dank irgendeiner störenden Filterung, werden diese Verweise leider nicht angenommen und im Klartext angezeigt. Beispiel:
[url]file:\\ordner1\ordner2\ordner3\Dokumentation.pdf[/url]
sollte aber so aussehen
http://www.google.de
Jedoch muss ich unbedingt auf unser FileSystem verweisen! Sonst muss ich die Datei mal wieder an hunderten Stellen pflegen.
Ich habe schon Ewigkeiten gesucht. Kann es an der Funktion get_preg_expression liegen?
Mit freundlichen Grüßen
Maximilian Kalinowski
derzeit stehe ich vor einem größeren Problem. Das phpBB-Forum wird in Version 3.0 RC5 im Intranet verwendet.
Jetzt stehe ich vor einem schier unlösbarem Problem.
Ich möchte auf eine Datei verweisen die folgenden Link hat:
file:\\ordner1\ordner2\ordner3\Dokumentation.pdf
Problem sind hierbei jedoch die backslashs. Dank irgendeiner störenden Filterung, werden diese Verweise leider nicht angenommen und im Klartext angezeigt. Beispiel:
[url]file:\\ordner1\ordner2\ordner3\Dokumentation.pdf[/url]
sollte aber so aussehen
http://www.google.de
Jedoch muss ich unbedingt auf unser FileSystem verweisen! Sonst muss ich die Datei mal wieder an hunderten Stellen pflegen.
Ich habe schon Ewigkeiten gesucht. Kann es an der Funktion get_preg_expression liegen?
Mit freundlichen Grüßen
Maximilian Kalinowski
- cYbercOsmOnauT
- Ehemaliges Teammitglied
- Beiträge: 3820
- Registriert: 18.02.2004 23:02
- Wohnort: Göttingen
- Kontaktdaten:
Re: Probleme mit LINK
Wenn Du einen Link per file:\\ (oder halt file://) in eine Seite einbaust, erzeugst Du damit einen lokalen Link. Beispiel: file:\\c:\Dokumente\Dokumentation.pdf lässt den Browser lokal auf dem Rechner des Seitenbesuchers in Verzeichnis C:\Dokumente\Dokumentation.pdf schauen. Mir ist nicht ganz klar, was Dir das bringen soll. Normalerweise befinden sich die Dateien unterhalb des DOCROOT des Webservers und sind dann per "normalem Link" aufrufbar.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
• Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
• Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
- StarWolf3000
- Mitglied
- Beiträge: 1019
- Registriert: 25.07.2005 10:20
- Wohnort: Stolpen
- Kontaktdaten:
Re: Probleme mit LINK
Wäre anstatt eines lokalen Verweises auf eine Datei nicht ein Verweis auf eine Netzwerk-Ressource besser? Denn ansonsten wird trotz Intranet versucht, die Datei vom Rechner desjenigen zu laden, der phpBB im Browser aufruft. Das setzt dann voraus, dass die Datei bei jedem im Intranet an der gleichen Stelle im Dateisystem vorhanden sein muss.
Backslashes sollten in URLs vermieden werden. Dein Aufruf müsste nach den Regeln des file-Protokolls folgendermaßen aussehen:
Bei UNC-Pfaden (Netzwerkfreigaben) stattdessen so:
Backslashes sollten in URLs vermieden werden. Dein Aufruf müsste nach den Regeln des file-Protokolls folgendermaßen aussehen:
Code: Alles auswählen
[url]file:///C:/ordner1/ordner2/ordner3/Dokumentation.pdf[/url]
Code: Alles auswählen
[url]file://///servername/ordner1/ordner2/ordner3/Dokumentation.pdf[/url]
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Re: Probleme mit LINK
Danke StarWolf3000,StarWolf3000 hat geschrieben:Wäre anstatt eines lokalen Verweises auf eine Datei nicht ein Verweis auf eine Netzwerk-Ressource besser? Denn ansonsten wird trotz Intranet versucht, die Datei vom Rechner desjenigen zu laden, der phpBB im Browser aufruft. Das setzt dann voraus, dass die Datei bei jedem im Intranet an der gleichen Stelle im Dateisystem vorhanden sein muss.
Backslashes sollten in URLs vermieden werden. Dein Aufruf müsste nach den Regeln des file-Protokolls folgendermaßen aussehen:Bei UNC-Pfaden (Netzwerkfreigaben) stattdessen so:Code: Alles auswählen
[url]file:///C:/ordner1/ordner2/ordner3/Dokumentation.pdf[/url]
Code: Alles auswählen
[url]file://///servername/ordner1/ordner2/ordner3/Dokumentation.pdf[/url]
das Problem, was ich habe ist ja nicht das der Pfad fehlerhaft o.ä. ist, sondern das der Link nicht angezeigt wird. Oder habe ich dich jetzt falsch verstanden?
Es steht dann folgender Text da:
[url]file://///servername/ordner1/ordner2/ordner3/Dokumentation.pdf[/url]
und leider nicht solch einer:
http://www.google.de
Ich hoffe ich konnte das Problem jetzt ein bisschen besser schildern.
EDIT:
Ich darf ergänzen ich habe jetzt etwas neues herausgefunden!
In der Datenbank wird jeder gültiger Link folgendermaßen abgespeichert
Code: Alles auswählen
[url:c3bb5]http://www.google.de[/url:c3bb5]
Code: Alles auswählen
[url:c3bb5]http://www.google.de[/url:c3bb5]
Mit freundlichen Grüßen
Maximilian Kalinowski
Re: Probleme mit LINK
Hallo zusammen,
ich habe jetzt das Problem gelöst! Jedoch gibt es einen kleinen Kompromiss, den ich eingehen musste.
Ich habe jetzt in der Datei "message_parser.php" folgendes geändert:
Dieser Code befindet sich bei circa Zeile 900 - Wichtig ist, das in Zeile 907 die Variable "$valid" auf "true" ist. Daher habe ich den Code etwas angepasst.
Diese Zeile habe ich in die if-abfrage hinzugefügt:
Und schon war das Problem gelöst!
Mit freundlichen Grüßen
Maximilian Kalinowski
ich habe jetzt das Problem gelöst! Jedoch gibt es einen kleinen Kompromiss, den ich eingehen musste.
Ich habe jetzt in der Datei "message_parser.php" folgendes geändert:
Dieser Code befindet sich bei circa Zeile 900 - Wichtig ist, das in Zeile 907 die Variable "$valid" auf "true" ist. Daher habe ich den Code etwas angepasst.
Code: Alles auswählen
// Checking urls
if (preg_match('#^' . get_preg_expression('url') . '$#i', $url) ||
preg_match('#^' . get_preg_expression('www_url') . '$#i', $url) ||
preg_match('#^' . preg_quote(generate_board_url(), '#') . get_preg_expression('relative_url') . '$#i', $URL))
{
$valid = true;
}
Code: Alles auswählen
preg_match('/\\\\/', $url)
Mit freundlichen Grüßen
Maximilian Kalinowski
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Probleme mit LINK
Dir ist aber schon klar, dass du damit alles als valide URL erkennst, wenn es nur zwei aufeinanderfolgende Backslashes enthält, oder?
Ich würde vorschlagen du passt stattdessen die includes/functions.php so an, dass die Funktion get_preg_expression mit dem Parameter 'url' einen Regulären Ausdruck liefert, der die file URLs mit umfasst.
Das ist zwar ne ziemlich lange Zeile:
aber vermutlich ist das Problem primär die Zahl der Slashes nach dem Protokoll:
Daher musst du vermutlich lediglich ganz am Anfang aus: das machen:
Ich würde vorschlagen du passt stattdessen die includes/functions.php so an, dass die Funktion get_preg_expression mit dem Parameter 'url' einen Regulären Ausdruck liefert, der die file URLs mit umfasst.
Das ist zwar ne ziemlich lange Zeile:
Code: Alles auswählen
return "[a-z][a-z\d+\-.]*:/{2}(?:(?:[^\p{C}\p{Z}\p{S}\p{P}\p{Nl}\p{No}\p{Me}\x{1100}-\x{115F}\x{A960}-\x{A97C}\x{1160}-\x{11A7}\x{D7B0}-\x{D7C6}\x{20D0}-\x{20FF}\x{1D100}-\x{1D1FF}\x{1D200}-\x{1D24F}\x{0640}\x{07FA}\x{302E}\x{302F}\x{3031}-\x{3035}\x{303B}]*[\x{00B7}\x{0375}\x{05F3}\x{05F4}\x{30FB}\x{002D}\x{06FD}\x{06FE}\x{0F0B}\x{3007}\x{00DF}\x{03C2}\x{200C}\x{200D}\pL0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[a-z0-9.]+:[a-z0-9.]+:[a-z0-9.:]+\])(?::\d*)?(?:/(?:[^\p{C}\p{Z}\p{S}\p{P}\p{Nl}\p{No}\p{Me}\x{1100}-\x{115F}\x{A960}-\x{A97C}\x{1160}-\x{11A7}\x{D7B0}-\x{D7C6}\x{20D0}-\x{20FF}\x{1D100}-\x{1D1FF}\x{1D200}-\x{1D24F}\x{0640}\x{07FA}\x{302E}\x{302F}\x{3031}-\x{3035}\x{303B}]*[\x{00B7}\x{0375}\x{05F3}\x{05F4}\x{30FB}\x{002D}\x{06FD}\x{06FE}\x{0F0B}\x{3007}\x{00DF}\x{03C2}\x{200C}\x{200D}\pL0-9\-._~!$&'()*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[^\p{C}\p{Z}\p{S}\p{P}\p{Nl}\p{No}\p{Me}\x{1100}-\x{115F}\x{A960}-\x{A97C}\x{1160}-\x{11A7}\x{D7B0}-\x{D7C6}\x{20D0}-\x{20FF}\x{1D100}-\x{1D1FF}\x{1D200}-\x{1D24F}\x{0640}\x{07FA}\x{302E}\x{302F}\x{3031}-\x{3035}\x{303B}]*[\x{00B7}\x{0375}\x{05F3}\x{05F4}\x{30FB}\x{002D}\x{06FD}\x{06FE}\x{0F0B}\x{3007}\x{00DF}\x{03C2}\x{200C}\x{200D}\pL0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[^\p{C}\p{Z}\p{S}\p{P}\p{Nl}\p{No}\p{Me}\x{1100}-\x{115F}\x{A960}-\x{A97C}\x{1160}-\x{11A7}\x{D7B0}-\x{D7C6}\x{20D0}-\x{20FF}\x{1D100}-\x{1D1FF}\x{1D200}-\x{1D24F}\x{0640}\x{07FA}\x{302E}\x{302F}\x{3031}-\x{3035}\x{303B}]*[\x{00B7}\x{0375}\x{05F3}\x{05F4}\x{30FB}\x{002D}\x{06FD}\x{06FE}\x{0F0B}\x{3007}\x{00DF}\x{03C2}\x{200C}\x{200D}\pL0-9\-._~!$&'()*+,;=:@/?|]+|%[\dA-F]{2})*)?";
[url]file://xyz.de[/url]
[url]file:///xyz.de[/url]
Daher musst du vermutlich lediglich ganz am Anfang aus:
Code: Alles auswählen
[a-z][a-z\d+\-.]*:/{2}
Code: Alles auswählen
[a-z][a-z\d+\-.]*:/{2,4}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.