uploadscript funktioniert nicht! warum?

nero_85

Erfahrenes Mitglied
Mein Upload-Script sieht so aus (im Grunde der selbe Code wie der aus dem Tutorial hier auf der Seite):

PHP:
$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 
$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 

if($type != "image/gif" && $type != "image/pjpeg") { 
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
} 
if($size > "50000") { 
    $err[] = "die datei die sie hochladen wollten ist zu groß. maximale größe beträgt 50 kB."; 
} 
if(empty($err)) { 
    copy("$tempname", "$name"); 
    echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
} 
else { 
    foreach($err as $error) 
    echo "$error<br>"; 
}
echo "<a href='javascript:history.back()' target='_top'>&lt;&lt;zurück</a>";

Das dürfte doch eigentlich keine Probleme geben, doch wenn ich im Formular auf "hochladen" klicke, kommen folgende Fehlermeldungen:

Code:
Notice: Undefined index: file in D:\www\meineSeite\upload.php on line 18

Notice: Undefined index: file in D:\www\meineSeite\upload.php on line 19

Notice: Undefined index: file in D:\www\meineSeite\upload.php on line 20

Notice: Undefined index: file in D:\www\meineSeite\upload.php on line 21
nur gif und jpeg Dateien dürfen hochgeladen werden.
<<zurück

Hier noch das Formular:

Code:
<table width="95%" border="1" bordercolor="#000000" cellspacing="0" cellpadding="2" style="border-collapse:collapse;">
  <form enctype="multipart/form-data" action="upload.php" method="post">
  <tr bgcolor="#770000"> 
    <td colspan="2" height="40"><font color="#CCCCCC" size="2">
    <b>neues bild hochladen [nur jpg und gif] (<i>upload new picture [only gif and jpg]</i>):</b></font>
    </td>
  </tr>
  <tr bgcolor="#aaaaaa">
     <td width="73%">
     <input type="file" name="file"></td>
     <td width="27%">
     <input type="hidden" value="ok" name="ok">
     <input type="submit" value="hochladen/upload">
  </td>
  </tr></form>
</table>

Bitte helft mir! wo liegt denn der Fehler
 
Wieso werden eigentlich global verfügbare Variablen immer zusätzlich neuen Variablen zugewiesen?
PHP:
<?php

	if( isset($_FILES['file']) ) {
		$err = array();
		if( $_FILES['file']['error'] !== UPLOAD_ERR_OK ) {
			$err[] = 'Beim Hochladen der Datei ist ein Fehler aufgetreten.';
		}
		if( $_FILES['file']['type'] != 'image/gif' && $_FILES['file']['type'] != 'image/pjpeg' ) {
			$err[] = 'Nur GIF- und JPEG-Dateien dürfen hochgeladen werden.';
		}
		if( $_FILES['file']['size'] > 50000 ) {
			$err[] = 'Die datei die Sie hochladen wollten ist zu groß. Maximale Größe beträgt 50 kB.';
		}
		if( empty($err) ) {
			copy($tempname, $name);
			echo 'Die Datei '.$_FILES['file']['name'].' wurde erfolgreich hochgeladen!';
		} else {
			echo '<ul>';
			foreach($err as $error) {
				echo '<li>'.$error.'</li>';
			}
			echo '</ul>';
		}
		echo '<a href="javascript:history.back()" target="_top">&lt;&lt;zurück</a>';
	}

?>
 
Danke für die schnelle Antwort!

Jetzt kommen zwar keine Fehlermeldungen mehr, dafür kommen auch keine Erfolgsmeldungen! Das Einzige, das mir das Script hinschreibt, ist der Link "<<zurück". Das wars aber auch schon. :confused: :confused:
 
Also schaffst du es nicht alleine diese vier Zeilen Code in dem Skript zu überarbeiten, die sich wohl als Flüchtigkeitsfehler eingeschlichen haben?!
PHP:
if(empty($err)) {
    copy($_FILES['file']['tmp_name'], $_FILES['file']['name']);
    echo "Die Datei $_FILES['file']['name'] wurde erfolgreich hochgeladen!";
}
 
Du hast mich erwischt! Hab bloß kopiert und eingefügt! :rolleyes:
Wollts einfach schnell hinter mich bringen! :-)
Danke trotzdem für eure Hilfe!

Funktioniert perfekt!!

greetz
 
Zurück