Upload-Skript macht Probleme!!!

#0
01.01.2006, 21:49
Member

Beiträge: 328
#1 Tag!

Ich sitze an einem Upload-Skript für ein Photogallerie:

PHP Code


<?php
//Holen der Daten
$file $_FILES['file'];
$submit $_POST['submit'];

//Wenn auf Formularbutton gedrückt wurde...
if ($submit == "Hochladen"){

//Extrahieren der Dateiendung
$data_name explode("."$file_name);
$data_name_size count($data_name);
$data_ext $data_name[$data_name_size-1];

//Kleinbuchstaben
$data_ext strtolower($data_ext);

// Nr.1
if (($file_size>&amp;amp;&amp;amp$file_size<1048576) &amp;amp;&amp;amp; ($data_ext=="gif" || $data_ext=="jpg" || $data_ext=="bmp" || $data_ext=="jpeg")){
// Nr.2
if (move_uploaded_file($file"$username/$file_name")){
//Wenn Hochladen erfolgreich...
//Ausgabe
echo "Foto-Upload erfolgreich durchgeführt!";
?>
<br>
<table cellspacing="15">
<tr>
<td><a href="photo_admin.php">Zurück zur Administratoroberfläche</a></td>
<td><a href="/gallery/photo_view.php">Zurück zur Albenübersicht</a></td>
<td><a href="photo_upload_form.php">Noch ein Photo hochladen</a></td>
</tr>
</table>
<?php
//Schreiben des Namens des neu hochgeladenen Fotos
$dateiname "photo.txt";
$datei=fopen($dateiname"r");
$x 0;
$saved = array();
while(!
feof($datei)) {
      
$x++;
      
$saved[$x] = fgets($datei1024);
      }
fclose($datei);

$saved array_push($saved$file_name);

$datei=fopen($dateiname"w");
  for (
$i=1;$i <= $x$i++) {
                
fwrite($datei"$saved[$i]");
      }         
fclose($datei);
         
//End
}
// Nr.2
else {
echo 
"Datei konnte nicht hochgeladen werden! <a href=photo_upload_form.php>Zurück zum Upload-Formular</a>";
}
}
// Nr.1
else{
echo 
"Datei nicht vorhanden '\n' oder keine Bild-Datei (jpeg, bmp, gif)!!! <a href=photo_upload_form.php>Zurück zum Upload-Formular</a>";
}
}
?>



Nun, mein Skript führt aber immer den else{echo "Datei konnte nicht hochgeladen werden! Zurück zum Upload-Formular";}-Teil aus. Warum?
Die Syntax von move_uploaded_file() stimmt doch oder?
Das Holen der Formulardaten ist schon richtig. Habe es durch Ausgaben und so schon gecheckt.

Und mein Webspace erlaubt Datei-Uploads, hab das auch schon geprüft. Und chmod777 für den Ordner habe ich auch schon durchgeführt.


MfG J!M!

/////
Um die Fehlersensibilität zu erhöhen, habe ich noch

"echo $_FILES['file']['error'];" in den erwähnten else{}-Teil hinzugefügt.

DIe Ausgabe ist: "0".

Das heißt kein Error beim Hochladen. Warum funktioniert mein Skript aber nicht? :-(

P.S.: Eigentlich ist das ja ein Webmaster-Problem, aber da es nicht wirklich etwas mit Sicherheit zu tun hat, schreibe ich es in dieses Unterforum.
Dieser Beitrag wurde am 01.01.2006 um 21:53 Uhr von J!M! editiert.
Seitenanfang Seitenende
01.01.2006, 23:23
Member
Avatar Xeper

Beiträge: 5291
#2 http://www.ninth-art.net/files/phps/upload.phps

Da findeste nen code der funktioniert, im moment kann ich mir deinen code net anschaun. Vielleicht später....
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
02.01.2006, 12:14
Member

Beiträge: 13
#3 Moin Moin,

also erstmal was mir komisch vorkommt:

$file_name: WO soll die Variable herkommen? Da $file ein Array ist, musst du da anders drauf zugreifen und zwar mit $file[] ...
http://us2.php.net/features.file-upload

Dann macht du die Variable $data_name, die du im scritpt nicht weiter verwendest ..., wozu brauchst du die denn dann?

Ich glaube es wird immer die else Anweisung ausgeführt weil du falsch auf $file zugreifst ...

Ich hoffe ich konnte helfen.

mfg
tischler
__________
#protecus @ irc.freenode.net
Seitenanfang Seitenende
02.01.2006, 17:51
Member

Themenstarter

Beiträge: 328
#4

Zitat

Ich glaube es wird immer die else Anweisung ausgeführt weil du falsch auf $file zugreifst ...
Stimmt, habe ich auch mittlerweile bemerkt... ;-)

MfG J!M!

"$date_name" brauche ich sehr wohl: Um die Extension zu extrahieren.

Denn diese Art den Dateityp abzufragen ist besser.

Mit image/jpeg z.B. gibt es oft Probleme, wenn man z.B. vergisst auch nocht image/pjpeg zu schreiben.
Seitenanfang Seitenende
02.01.2006, 22:06
Member
Avatar Xeper

Beiträge: 5291
#5

Zitat

"$date_name" brauche ich sehr wohl: Um die Extension zu extrahieren.

Denn diese Art den Dateityp abzufragen ist besser.
Ist sie nicht, könnte ja nen ganz anderer Dateityp sein als die sogenannte `extension` vermittelt.
Schau dir lieber das an:
http://de3.php.net/manual/en/function.exif-imagetype.php
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: