Hallo,
ich habs so übernommen und das genügt meistens.
<?php ### upload.php ###
ini_set('track_errors','1');
error_reporting(E_ALL);
if(!isset($_POST['id']) or $_POST['id'] != strval('12345678')) die('keine Berechtigung');
if(!isset($_POST['ziel'])) die('kein Zielverzeichnis angegeben');
if(!isset($_FILES['file']['error']) or $_FILES['file']['error'] !== 0)
die('Kein File fehlerfrei übertragen');
if (!is_dir('./'.$_POST['ziel'])) die('Angegebenes Verzeichnis ist falsch');
if(!is_readable($_FILES['file']['tmp_name'])) die('Temprärer Upload-File nicht lesbar');
if(!is_writable('./'.$_POST['ziel'])) die('Zielverzeichnis nicht beschreibbar');
if(!copy($_FILES['file']['tmp_name'],'./'.$_POST['ziel'].'/'.basename($_FILES['file']['name'])))
die("PHP-Fehler: $php_errormsg");
echo "File kopiert";
?>
Und die HTML-Datei dazu:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">
<HTML style="height:100%;">
<HEAD>
<TITLE>Upload</TITLE>
</HEAD>
<BODY>
<form action="http://domain.tld/upload.php"
method="post"
enctype="multipart/form-data">
File: <input type="file" name="file" size="70"><br>
Verzeichnis:<input type="text" name="ziel" size="70"><br>
<input type="hidden" name="id" value="12345678">
<input type="submit" name="btn[upload]" value="Upload">
</form>
</BODY>
</HTML>
Der "Sicherheitsmechanismus" sollte anschließend nicht offen bleiben. Man könnte mit Bruteforce zu leicht eindringen.
LG
Chris