Hallo DannyLupo,
a) nicht die Rechte hast, um die Datei zu ueberschreiben
Doch. chmod ist 777.
Bist Du sicher oder vermutest Du das? Was wird ausgegeben, wenn du unmittelbar vor dem Kopieren einfuegst:
clearstatcache();
echo substr(sprintf('%o', fileperms("$pfad/$actual_user.jpg")), -4);
b) noch irgendwo ein Handle auf der Datei liegt
Diese Möglichkeit verstehe ich inhaltlich nicht.
Wenn ein Programm (beispielsweise das vorherige Ausfuehren von copy()) eine Dateioperation durchfuehrt, hat es fuer diese Zeit und haeufig auch danach "den Daumen auf der Datei". Du kennst das sicher von Windows, wenn du vergebens versuchst, eine Datei zu loeschen, die irgendwo geoeffnet ist. Wenn dem so ist, kannst du die Datei natuerlich auch nicht ueberschreiben.
Es wird keine Fehlermeldung angezeigt!
Du hast error_reporting(2047) gesetzt und das @ entfernt? Setze das error_reporting unmittelbar vor clearstatcache(). Setze ein echo vor copy(), schau ins Handbuch, was copy() returnt
Gruß,
Dieter