Hio,
if($file!='none')
{$dname = strtr($file_name," ","_");
copy ($file, "../upload_referenz/".$dname);
}
das if ($file!='none') hatte ich früher durch if(!$file) geschrieben, was imho auch richtig ist, aber auf meinem WAMP nicht klappt.
das geht zwar nicht direkt auf deine Frage ein, denoch ein gut gemeinter Tipp.
Ich nehme mal an $file kommt von deinem upload-Feld (<input type="file" name="file">), dann stellt PHP dieses als Variable zur Verfügung, jedoch _nur_ solange register_globals[1] auf on steht. Dies stellt jedoch die ein oder andere Sicherheitslücke dar. Z.b. könnte ich in diesem Skript ein Upload "simulieren" und so evtl an wichtige Dateiinhalte kommen. Mit z.b.
<input type="hidden" name="file" value="c:/autoexec.bat">
<input type="hidden" name="file_name" value="c:\scary.txt">
<input type="hidden" name="file_type" value="text/plain">
<input type="hidden" name="file_size" value="2000">.
Besser ist über $_FILE (ab PHP 4.1 verfügbar) oder $HTTP_POST_VARS zu gehen. also isset($_FILES["file"]). Eine weitere Sicherheitslücke kann das blosse kopieren einer Datei darstellen, deswegen sollte man entweder immer mit is_uploaded_file prüfen oder gleich move_uploaded_file()[3] anstatt copy benutzen.
gl & hf
Thorsten
[1] http://www.php.net/manual/de/configuration.php#ini.register-globals
[2] http://www.php.net/manual/de/reserved.variables.php#reserved.variables.files
[3] http://www.php.net/manual/de/function.move-uploaded-file.php