PHP-Prüfung auf gültige Verzeichnis- und Dateinamen (Linux-Server)
Linuchs
- dateisystem
- php
0 dedlfix0 Rolf B1 Regina Schaukrug0 Robert B.0 pl
Moin,
letztens hatte ich per Filezilla Verzeichnisse und Dateien auf den Linux-Server hochgeladen, die ich per Mailanhang bekommen habe. Einige mit Umlaut im Namen.
Nach dem Hochladen waren die auf der Server-Seite in Filezilla zwar mit verkrüppeltem Umlaut sichtbar, aber nicht öffnenbar und löschbar:
Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967
…
Befehl: cd "Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967"
Fehler: Directory /home/.../Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967: no such file or directory
Nun sollen Administratoren Verzeichnisse anlegen können. Ich habe keine Ahnung, welche Zeichen sicher sind. Chinesische vermutlich nicht?
Wie lautet eine PHP-Prüfung auf gültige Verzeichnis- und Dateinamen?
Gruß Linuchs
Tach!
Nun sollen Administratoren Verzeichnisse anlegen können. Ich habe keine Ahnung, welche Zeichen sicher sind.
a-zA-Z0-9 sowie Bindestrich und Unterstrich. Alles andere ist mehr oder weniger Glückssache, weil man mit dem Dateisystem keine Zeichenkodierung vereinbaren kann.
dedlfix.
Hallo dedlfix,
a-zA-Z0-9 sowie Bindestrich und Unterstrich. Alles andere ist mehr oder weniger Glückssache, weil man mit dem Dateisystem keine Zeichenkodierung vereinbaren kann.
Ich limitiere mich da sogar noch weiter. Nur klein(wegen systemkompatibel) und keinen Bindestrich( weil wenn da ein Leerzeichen mit dazu rutscht kann es bei manchen Systemen böse Überraschungen geben, habe ich zumindest mal gehört/gelesen. Irgendwas mit inode usw…). Auch für SEO soll Unterstrich besser sein, weil dann als ganzer Begriff, während bei Bindestrich nicht, na ja obs stimmt… egal also für mich nur klein/zahlen/unterstrich.
@Linuchs
Aber jeder so wie er möchte daher(anpassungsfähig) #^[\w_]+\.[\w]+$#is
oder hier testen.
Gruss
Henry
hallo
Ich limitiere mich da sogar noch weiter. Nur klein(wegen systemkompatibel) und keinen Bindestrich( weil wenn da ein Leerzeichen mit dazu rutscht kann es bei manchen Systemen böse Überraschungen geben, habe ich zumindest mal gehört/gelesen. Irgendwas mit inode usw…). Auch für SEO soll Unterstrich besser sein, weil dann als ganzer Begriff, während bei Bindestrich nicht, na ja obs stimmt… egal also für mich nur klein/zahlen/unterstrich.
Hallo Henry,
#^[\w_]+\.[\w]+$#is
\w
beinhaltet bereits [A-Za-z0-9_]
(samt Unterstrich, Groß- und Kleinbuchstaben)\w
in eine [
Zeichenklasse]
setzen?.
für den der s
Modifikator gesetzt wurde?#^\w+\.\w+$#
täts wohl auch. Nur so als Randbemerkung.
Schönen Abend, Robert
Hallo Jonny(Robert),
#^\w+\.\w+$#
täts wohl auch. Nur so als Randbemerkung.
Darum sagte ich ja auch anpassungsfähig. 😉 Bei mir läuft so was meist auf Try&Error hinaus, aber da dies hier ja keine FAQ ist, sondern ein Forum, war mir auch klar, dass es schon einer(danke) verbessern wird und solange tut's halt meine Version dann auch.
Gruss
Henry
Hallo Linuchs,
Was hast Du in Filezilla im Servermanager als Zeichensatz eingestellt?
Damit konnte ich eine Datei täst.html auf einen Ubuntu Server hochladen (weiß nicht welcher FTP Daemon das war) und nachher per HTML abrufen. Habe keinen Root- oder Shell-Zugang, weiß also nicht wie das Ding jetzt im Dateisystem aussieht.
Ob der FTP Server UTF8 unterstützt, kannst Du ihn fragen. Mit Filezilla kannst Du Serverbefehle absetzen, im (ta-da!) Server-Menü, sag ihm FEAT (wie Features). Wenn UTF8 dabei ist, sollte er es können.
Rolf
Ich habe keine Ahnung, welche Zeichen sicher sind.
Unter Linux sind generell alle Zeichen - bis auf das NUL-Byte und den Verzeichnistrenner- in Datei und Verzeichnisnamen gültig und "sicher".
Hallo Linuchs,
Nach dem Hochladen waren die auf der Server-Seite in Filezilla zwar mit verkrüppeltem Umlaut sichtbar, aber nicht öffnenbar und löschbar:
Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967 … Befehl: cd "Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967" Fehler: Directory /home/.../Klassenreise 12b, Lübeck_ Priwall, 8.-10.6.1967: no such file or directory
Von wem kommt denn diese Fehlermeldung – von FileZilla oder von einem PHP-Skript?
Nun sollen Administratoren Verzeichnisse anlegen können. Ich habe keine Ahnung, welche Zeichen sicher sind. Chinesische vermutlich nicht?
Doch. Gängige Dateisysteme können damit umgehen.
Wie lautet eine PHP-Prüfung auf gültige Verzeichnis- und Dateinamen?
Das hängt vom Dateisystem ab. Aber vielleicht meinst du portabel.
Viele Grüße
Robert
Moin,
Wie lautet eine PHP-Prüfung auf gültige Verzeichnis- und Dateinamen?
PHP bestimmt das gar nicht, vielmehr bestimmt das Dateisystem darüber was gültig ist oder nicht. Unabhängig davon kannst Du auch Deine eigenen Festlegungen treffen. Am besten die Namen selber festlegen. Was auch eine Frage der Sicherheit ist.
MfG