order_step2

[php]
error_reporting(E_ALL);

// Funktionen definieren
// ———————————————–
function checkUpload($myFILE, $file_extensions, $mime_types, $maxsize)
{
$errors = array();
// Uploadfehler prüfen
switch ($myFILE[‚error‘]){
case 1: $errors[] = „Bitte wählen Sie eine Datei aus, die kleiner als „.ini_get(‚upload_max_filesize‘).“ ist.“;
break;
case 2: $errors[] = „Bitte wählen Sie eine Datei aus, die kleiner als „.$maxsize/(1024*1024).“ MB ist.“;
break;
case 3: $errors[] = „Die Datei wurde nur teilweise hochgeladen.“;
break;
case 4: $errors[] = „Es wurde keine Datei ausgewählt.“;
return $errors;
break;
default : break;
}
// MIME-Type prüfen
if(count($mime_types)!=0 AND !in_array(strtolower($myFILE[‚type‘]), $mime_types)){
$fehler = „Falscher MIME-Type („.$myFILE[‚type‘].“).
„.
„Erlaubte Typen sind:
\n“;
foreach($mime_types as $type)
$fehler .= “ – „.$type.“\n
„;
$errors[] = $fehler;
}
// Dateiendung prüfen
if($myFILE[’name‘]==“ OR (count($file_extensions)!=0 AND !in_array(strtolower(getExtension($myFILE[’name‘])), $file_extensions))){
$fehler = „Falsche Dateiendung („.getExtension($myFILE[’name‘]).“).
„.
„Erlaubte Endungen sind:
\n“;
foreach($file_extensions as $extension)
$fehler .= “ – „.$extension.“\n
„;
$errors[] = $fehler;
}
// Dateigröße prüfen
if($myFILE[’size‘] > $maxsize){
$errors[] = „Datei zu groß („.sprintf(‚%.2f‘,$myFILE[’size‘]/(1024*1024)).“ MB).
„.
„Erlaubte Größe: „.$maxsize/(1024*1024).“ MB\n“;
}
return $errors;
}

// gibt die Dateiendung einer Datei zurück
function getExtension ($filename)
{
if(strrpos($filename, ‚.‘))
return substr($filename, strrpos($filename, ‚.‘)+1);
return false;
}

// erzeugt einen Zufallswert
function getRandomValue()
{
return substr(md5(rand(1, 9999)),0,8).substr(time(),-6);
}

// erzeugt einen neuen Dateinamen aus Zufallswert und
// Dateiendung
function renameFile ($filename)
{
return getRandomValue().“.“.getExtension($filename);
}

// Werte zur Dateiprüfung initialisieren
// ———————————————–
$maxsize = 2*1024*1024;
$file_extensions = array(‚jpg‘, ‚jpeg‘, ‚jpe‘, ‚gif‘, ‚png‘);
$mime_types = array(‚image/pjpeg‘, ‚image/jpeg‘, ‚image/gif‘, ‚image/png‘, ‚image/x-png‘);

// Upload-Ordner definieren
// ———————————————–
$ordner = „uploads/“;

// Beginn des Skriptes
// ———————————————–

echo „\n“;
echo „\n“;
echo „\n“;
echo “ Datei-Upload\n“;
echo „\n“;
echo „\n“;

// Falls der Benutzer auf „Upload“ gedrückt hat,
// wird die Datei überprüft
if(isset($_POST[’submit‘]) AND $_POST[’submit‘]==’Upload‘){
// Fehlerarray erzeugen
$errors = array();
$myFILE = $_FILES[‚Datei‘];
$errors = checkUpload($myFILE, $file_extensions, $mime_types, $maxsize);
if(count($errors)){
echo „

\n“.
„Die Datei konnte nicht gespeichert werden.
\n“;
foreach($errors as $error)
echo $error.“
\n“;
echo „Zurück zum Upload-Formular\n“.

\n“;
}
else {
do {
$neuer_name = renameFile($myFILE[’name‘]);
} while(file_exists($ordner.$neuer_name));
if(@move_uploaded_file($myFILE[‚tmp_name‘], $ordner.$neuer_name)){
echo „

\n“.
„Die Datei wurde erfolgreich gespeichert.
\n“.
Zurück zum Upload-Formular\n“.

\n“;
}
else{
echo „

\n“.
„Die Datei konnte nicht gespeichert werden.
\n“.
„Es ist ein Upload-Fehler aufgetreten.
\n“.
„Bitte versuchen Sie es später erneut.
\n“.

\n“.
„Sollte der Upload noch immer nicht funktionieren, informieren Sie uns bitte per Email.
\n“.
Zurück zum Upload-Formular\n“.

\n“;
}
}
}
// Beim ersten Aufruf des Skriptes wird das
// Upload-Formular angezeigt
else{
echo „

Laden Sie ein Bild hoch!

\n“;
echo „

Erlaubte Dateiendungen sind:

\n“;
foreach($file_extensions as $extension)
echo “ – „.$extension.“\n
„;
echo „

Erlaubte Dateigröße:

\n“;
echo “ – maximal „.($maxsize/(1024*1024)).“ MB\n
„;
echo “

\n“;
echo “ \n“;
echo “ \n“;
echo “ \n“;
echo “ \n“;
echo “

\n“;
}

echo „\n“;
echo „\n“;
[/php]