Upload script

Ich habe ein Problem mit einem script, welches ich gerade geschrieben habe! Kann mir jemand sagen was die Fehler sind? Und wie ich sie beheben kann?
PHP:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Upload</title>
</head>
<body>
<?php
//Name des Unterverzeichnisses in eine Variable schreiben
$uverz="datein";
if($_Post[sent])
{
//Wenn das Unterverzeichniss noch nicht existiert, dieses anlegen
if(!file_exists($uverz))
{mkdir($uverz, 0755);}
//Dateigröße kontrollieren
if($_FILES[neuedatei][size]>100000)
{$fehler="<br>Die Datei ist zu groß";}
//Zulässige Dateitypen kontrollieren
if($_FILES[neuedatei][type]=='image/pjeg' or $_FILES[neuedatei][type] == 'image/gif')
{$fehler .="<br>Der Dateityp ist nicht zulässig.<br>";}
//Datei speichern, wenn kein Fehler vorliegt
if (!$fehler)
{
//Eindeutigen Namen generieren
$name=uniqid(" ");
//Dateiendung je nach typ an den Namen anhängen
switch($_FILES[neuedatei][type])
{
case 'image/pjpeg':
$name.=".jpg";
break;
case 'image/gif':
$name.=".gif";
break;
}
//Den Dateinamen um die Pfadangabe erweitern
$name=$uverz."/".$name;
//DIe Datei in das Unterverzeichniss kopieren
copy($_FILES[neuedatei][tmp_name], $name);
}
else
{echo "<h2><font color=red>".$fehler."</font></h2>";}
}
//Ausgeben der bereits vorhandenen Datein im Unterverzeichnis
echo "<h2>Bisher hochgeladene Datein</h2>";
$i=1;
$verzeichnis=opendir($uverz);
while($file = readdir($verzeichnis))
{
if(is_file($uverz."/".$file))
{
echo "a href=\"".$uverz."/".$file."\" target=\"_blank\">Datei_".$i."</a><br>";
$i++;
}
}
closedir($verzeichnis);
?>
<h2>Eine Datei hochladen</h2>
<form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="sent" value="1">
<p>Die Datei auswählen</p>
<input type="file" name="neuedatei"><br><br>
<input type="submit"><input type="reset" value="Zurücksetzen">
</form>
</body>
</html>
 
Was ist denn der Fehler?

Du hast zum Beispiel beim echo "a href=\"".... das Kleiner-Zeichen / die öffnende spitze Klammer vergessen.

Mamphil
 
Hi!

Wie sieht es mit den Verzeichnisrechten aus? 0755 ist meiner Ansicht nach verkehrt. Ich würde es mal mit 0777 versuchen. Außerdem muss auch das aktuelle Verzeichnis auf 0777 gestellt sein.

Bevor ich mir deinen Code genauer ansehen kann, formatiere ihn bitte mal gemäß der PEAR-Coding-Standards: http://pear.php.net/manual/en/standards.php

Dann ist er nämlich um einiges leichter zu überblicken, zu verstehen und damit auch zu debuggen!

Mamphil
 
Zurück