TS: Permission denied beim PHP/MySQL Load into Table

Beitrag lesen

Hello,

machen wir es mal langsam:

wenn ein mysql_error > 0 auftritt, kannst Du in der Schleife schon mal mit continue zum Ende der Schleife springen.

Außerdem solltest du den Filename nur einmal bestimmen und nicht für jede Verwendung neu zusammenbauen. Dann kannst Du ihn im Fehlerfall auch mit ausgeben, bzw loggen lassen.

Bevor Du das SQL-Statement aufrufst, bzw. schon, bevor Du es zusammenbaust, könntest Du mit file_exists() und mit is_readable() auch prüfen, ob der Pfad gültig und lesbar ist. Genaugenommen ist das aber nur Kosmetik und es besteht da dann immer noch eine TOCTTOU-Lücke, aber Du wertest ja noch den SQL-Fehler aus. Das reicht im Prinzip auch. Das TOCTTOU-Problem baust Du dir schon mig Glob() auf. Wenn Du die damit erstellte Liste erst später abarbeitest, kann die im Dateisystem schon wieder ungültig sein. Kommt darauf an, ob parallele Prozesse ablaufen. Das isg aber in einem Netzwerk üblich.

Den Fehler musst Du also genau an der Stelle feststellen, an der Du das auch schon tust. Du musst nur auch darauf reagieren.

Bau also die Directorystruktur erstmal so um, dass Du nicht mitten im Dateinamen rumfummeln musst, sondern dass es ganz klare Verzeichnisse für Quelle und Ziel gibt, in denen die Dateien sich dann befinden.

Und lass Dir den nicht gefundenen Dateinamen mit ausgeben.

Du könntest auch die Glob-Liste am Anfang ausgeben. Das kostet Dich ein müdes Runzeln und verschafft Dir Übersicht.

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.