es handelt sich hierbei um ein admin-panel.
Ok, das legitimiert die Vorgehensweise, dass der Pfad clientseitig bestimmt werden darf. Aus philosophischen (bzw. ganz praktischen, sicherheitsbedingten) Gründen würde ich Dir trotzdem dringend raten, sowohl die angegebenen Pfade serverseitig zu prüfen, als auch die Rückgabewerte der benutzten Funktionen auszuwerten und gegebenenfalls Fehler kontrolliert abzufangen. Dann hättest Du auch schneller und allein rausgefunden, dass
> $size = getimagesize("../gallery/" . $npfolder . "/" . $npicure2);
hier ein t im letzten Variablennamen fehlt und daher nix klappt[1] ;-)
Zum Thema Variablen umschreiben: Ich will Dir wirklich nicht in Deinen Programmierstil reinquatschen, sage Dir aber meine Meinung:
Durch überflüssiges Variablenumschreiben machst Du aus einem 5-Zeilen-Code einen 10-Zeilen-Code mit dem Effekt, dass Du im eigentlichen Code den Variablen nicht mehr ansiehst, wo sie herkommen und welche die vom Benutzer übergebenen Werte sind. Die Benutzung der superglobalen Arrays ($_POST, $_FILES, ...) direkt ist gewöhnungsbedürftig, aber sehr sehr sinnvoll: man sieht den gefährlichen, weil vom Client kommenden Variablen an, dass sie eben solche sind. Dadurch ist, wenn man sich mal daran gewöhnt hat, der Code dann auch übersichtlicher, finde ich.
[1] Ich hab das beim ersten Mal auch nicht gesehen - nicht dass Du denkst, ich hätte es Dir aus Spaß nicht gesagt ;-)
Viele Grüße
der Bademeister