Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


Probleme mit "move_uploaded_file"

Fragen oder Probleme mit HTML, PHP oder CSS?

Probleme mit "move_uploaded_file"

Beitragvon DjMG am 10.06.2006, 16:18

Hallo liebe User!

"Mein" Uploadscript bereitet mir noch immer Probleme.
Nämlich: Bis zum "move_uploaded_file" geht alles, aber
dort verschiebt er die Datei nicht.
Woran könnte das liegen? Hoster = Funpic

Hier ein Ausschnitt des Codes
Code: Alles auswählen
if(isset($_POST['submit'])) { #if submit 
      $name=$_POST['name']; 
      $themename=$_POST['themename']; 
      $error=0; 
      $msg=""; 
      if(empty($name)) { $error++; 
      $msg="$msg -Sie müssen ihren Namen eingeben
"; 
      } 
      if(empty($themename)) { $error++; 
      $msg="$msg -Sie müssen einen Themenamen eingeben.
"; 
      } 
      if(!isset($_FILES['theme']['tmp_name'])) { $error++; 
      $msg="$msg -Sie müssen ein Theme zum Upload angeben!
"; 
      } else { ##else wenn file da 
        if($_FILES['theme']['size'] > 1536000) { $error++; 
        $msg="$msg -Das Theme darf nicht größer als 1536 KBytes sein! 
"; 
        } 
        $themestr=$_FILES['theme']['name']; 
        $ends=substr($themestr, -3, 3); 
           
        if($ends!="zip" AND $ends!="rar" AND $ends!="nth") {   
        $error++; 
        $msg="$msg -Das Theme muss vom Dateityp .rar, .zip oder .nth sein!".$_FILES['theme']['name']." - $ends   
"; 
        } 
      } ##filecheck ende 
       
       
      if($error!=0) { ##wenn error dann ausgabe 
         
       $themes->assign('handy', $handy); 
       $themes->assign('msg', $msg); 
       $themes->assign('name', $name); 
       $themes->assign('themename', $themename); 
       $themes->display('themes_upload_view.tpl'); 
         
      }else{ ##wenn kein error 
         
       ##### 
         
       $filename = $_FILES['theme']['name']; 
       if(file_exists( "./$handy/themes/$filename" )) { ##wenn datei existiert 
         
        $first = substr($filename,0,1); 
        $a=1;       
        do{  ##do start     
         $filename_new = $first."".$a."".$filename; 
           
         if(file_exists("/".$handy."/themes/".$filename_new)) { 
          $loop=false; 
          $a++; 
         }else{ 
          $loop=true; 
         }   
           
        }while($loop==false);    ##do ende   
         
           
       } else { ##wenn datei existiert ende 
        $filename_new = $_FILES['theme']['name']; 
       } 
         
          $datum =  date("Y-m-d H:i:s",time());   
         
   
         
       move_uploaded_file($_FILES['theme']['tmp_name'], "./$handy/themes/$filename_new") or die("upload fehlgeschlagen!");
   
           
            mysql_query("insert into themes ( cat, handy, name, uploader, theme, upload) VALUES ( '1', '$handy', '$themename', '$name', '$filename_new', '$datum' )") or die(mysql_error()); 
   
         
       $themes->display('themes_upload_complete.tpl'); 
   
         
      }  #wenn kein error ende 
       
       
       
    }else{ #submitted ende 
       
      $themes->assign('handy', $handy); 
      $themes->assign('msg', ''); 
      $themes->display('themes_upload_view.tpl'); 
       
    } #ende


Danke für eure Hilfe!
LG
DjMG
DjMG
 
Beiträge: 54
Registriert: 12.11.2003, 17:00


Beitragvon AbcAeffchen am 10.06.2006, 16:48

Hi,

Soweit ich weis bauchen die ordner in die du die dateien lädst auch schreibrechte. das könne ein fehler sein. dann könnte es auch sein der der ordner nicht existiert.
Prüfe das mal :)
AbcAeffchen
 
Beiträge: 305
Registriert: 28.10.2003, 20:54
Wohnort: Offenbach am Main

Beitragvon dragonl am 10.06.2006, 16:58

Hmm... an die CHMOD-Rechte habe ich jetzt gar nicht gedacht gehabt :shock:

Egal, der "Hauptfehler" hier ist aber dass "move_uploaded_file()" als destination eine ABSOLUTE Pfadangebe braucht.

Habe mir hier eben selber ein Scripte gebastelt und bei dem ging es nur mit dem absolutem Pfad zum Zielordner

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon DjMG am 11.06.2006, 11:37

Hallo!

Danke für die Antwort.
- CHMOD's sind vergeben auf "0777"
- Absolute Pfade bringen nichts
- $_FILES['theme']['tmp_name'] ... ist leer
- print_r($_FILES) bringt auch nichts raus
- $_FILES['theme']['name'] existiert aber
- ['size'] auch, ['type'] auch

LG
DjMG
DjMG
 
Beiträge: 54
Registriert: 12.11.2003, 17:00

Beitragvon dragonl am 11.06.2006, 14:58

Hallo DjMG,

also ich beschäftige mich jetzt zum erstem mal mit dem Uploaden von Files ;)

Hast du in deinem Uploadformular im <form>-Tag enctype="multipart/form-data stehen ?
z.B.: <form enctype="multipart/form-data" action="test.php" method="post">
Habe eben getestet das es ohne "enctype=..." nicht funktioniert.

MfG
dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon DjMG am 11.06.2006, 17:05

Ja, enctype ist drinnen - das Formular sieht wie
folgt aus:

Code: Alles auswählen
<form action="themes.php?upload=view&handy={$handy}" method="post" enctype="multipart/form-data" name="form" id="form"> 
       <input type="hidden" name="max_file_size" value="1536"> 
       <table width="400" border="0" cellspacing="0" cellpadding="5"> 
        <tr> 
          <td>Dein Name: </td> 
          <td><input name="name" type="text" id="name" value="{$name}" maxlength="50" /> 
          </td> 
        </tr> 
        <tr> 
          <td>Themename</td> 
          <td> 
            <input name="themename" type="text" id="themename" value="{$themename}" maxlength="50" />          </td> 
          </tr> 
        <tr> 
          <td>Theme:</td> 
          <td><input type="file" name="theme" /></td> 
          </tr> 
        <tr> 
          <td>&nbsp;</td> 
          <td><input name="submit" type="Submit" value="Upload" />   
 
</td> 
        </tr> 
      </table>   
      </form>


LG
DjMG
DjMG
 
Beiträge: 54
Registriert: 12.11.2003, 17:00

Beitragvon dragonl am 11.06.2006, 18:19

Hmm..., kein plan wo bei dir jetzt der Fehler ist !?

Mein Testscript funktioniert auch bei Funpic !
test.php
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <head>
    <title>File-uploader v1</title>
  </head>
  <body>
    <h3>File-uploader v1</h3>
    <?php
    $move = move_uploaded_file($_FILES['ufile']['tmp_name'],"bild.jpg");
    if($_FILES['ufile']['error']){ echo 'ahhhhh FEHELER ahhhhh'; }
    if($move){
       echo 'Datei ('.$_FILES['ufile']['tmp_name'].') wurde hochgeladen !';
       }
       else{
    ?>
    <p>Bitte w&auml;hlen Sie die hochzuladene Datei aus:</p>
    <form enctype="multipart/form-data" action="test.php" method="post">
      <input type="file" name="ufile" />
      <input type="submit" name="submit_btn" value="Hochladen" />
    </form>
    <?php
            }
    ?>
  </body>
</html>

Kannst ja mal desten ob es auch bei dir geht. Es gibt ja eigendlich keinen Grund warum es nicht laufen sollte, aber man weiss ja nie ;)

Vieleicht findes dan ja selber noch den Fehler.

Viel Erfolg
MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon DjMG am 11.06.2006, 19:07

Ich habs :)
Lag am HTML Teil bei der max.filesize

LG
DjMG
DjMG
 
Beiträge: 54
Registriert: 12.11.2003, 17:00

Beitragvon dragonl am 11.06.2006, 19:37

Öhm... keine ahnung !
was war denn da falsch ?
Damit
1. ich selber weiss worauf ich beim nächstem mal achten muss und
2. damit auch anderren geholfen werden kann ;)

Aber schön das es doch noch funktioniert :)

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen



Ähnliche Themen


Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste