Upload SKript mit Fehler, den ich nicht finde.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Upload SKript mit Fehler, den ich nicht finde.

    Hallo,

    n Freund von mir hat ein Upload Skript gebaut. Bei ihm funktioniert es, bei mir nicht. Obwohl wir das gleiche Skript verwendne.

    Code:

    PHP-Code:
     <?php
     $user 
    "user";
     if(isset(
    $_POST['submit'])){
     
    $dateien $_GET['dateien'];
     
     
    $i 01;
     while (
    $i<=$dateien){
              
    $i sprintf("%02d"$i);
     
                       if(@
    opendir("/".$user."/") != "false"){
                              
    $source $_FILES["datei".$i]['tmp_name'];
                              
    $target $user."/".$_FILES["datei".$i]['name'];
                              
    move_uploaded_file($source$target);
                              echo 
    $_FILES["datei".$i]['name'].'erfolgreich hochgeladen!<br />\n';
                       }else{
                       echo 
    "Das Verzeichnis existiert nicht!";
                       }
     
              
    $i++;
     }
     }else{
     
     if(isset(
    $_GET['dateien'])){$dateien $_GET['dateien'];} else {$dateien 5;};
     
    $dateien sprintf("%02d"$dateien);
     
     echo 
    'Dateien hochladen<br /><br />';
     echo 
    '<form enctype="multipart/form-data" action="upload.php?dateien=$dateien" method="post">';
     echo 
    '<input type="hidden" name="MAX_FILE_SIZE" value="2621440" />';
     
     
    $p=01;
     while(
    $p<=$dateien){
     echo 
    "<input type=\"file\" name=\"datei".sprintf("%02d"$p)."\" size=\"35\" /><br />\n";
              
    $p++;
     }
     
     echo 
    '<br /><input type="Submit" name="submit" value="Hochladen">';
     echo 
    '</form>';
     
     }
     
     
    ?>
    Warum kommt bei ihm die Meldung, dass alles hochgeladen wurde (nachdem man den Ordner mit dem Namen user angelegt hat) und bei mir nur ne weiße Seite?

    Vielen Dank!

    kageMurai
    Zuletzt geändert von KageMurai; 22.08.2007, 10:59.

  • #2
    Code:
    if(@opendir("/".$user."/") != "false"){
    Mach erstmal das @ weg, dann wird der dir schon sagen, dass das verzeichnis sicher nicht existiert.

    Dann

    Code:
    echo '<form enctype="multipart/form-data" action="upload.php?dateien=$dateien" method="post">';
    du mischst $_GET mit $_POST, böse!
    Der springt daher nicht in die whileschleife und gibt dir daher eine leere seite aus (da er auch nicht in den else teil unten geht)

    MfG

    Kommentar


    • #3
      du mischst $_GET mit $_POST, böse!
      Der springt daher nicht in die whileschleife ...
      das ist nicht der grund, $_GET und $_POST können gleichzeitig existieren.

      viel mehr zweifele ich
      Bei ihm funktioniert es, ...
      an, da das skript in dieser form müll ist. und
      PHP-Code:
      echo '<form enctype="multipart/form-data" action="upload.php?dateien=$dateien" method="post">'
      ist ein klassisches "ich habe heute morgen beim duschen im radio gehört, wie die php syntax funktioniert, also ist ein blick ins manual völlig überflüssig".

      PHP-Code:
      $p=01
      bis man damit auf die fresse fliegt, kann noch etwas dauern..

      Kommentar


      • #4
        bis man damit auf die fresse fliegt, kann noch etwas dauern..
        Siehe letzte Warnung von dir
        PHP-Code:
        "false" 
        Dafür gibts einen eignen Typen - boolean.
        PHP-Code:
        $p=01;
        while(
        $p<=$dateien){
         ... 
        sprintf("%02d"$p) ... 
        Das ist ja wohl der größte murks - schonmal von for gehört?
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          hi

          echo '<form enctype="multipart/form-data" action="upload.php?dateien=$dateien" method="post">';
          funktioniert nicht, weil in einfachen Hochkommas keine skalare ersetzt werden!

          PHP-Code:

          //entweder

          echo '<form enctype="multipart/form-data" action="upload.php?dateien='.$dateien.'" method="post">';

          //oder

          echo "<form enctype=\"multipart/form-data\" action=\"upload.php?dateien=$dateien\" method=\"post\">"
          Außerdem empfielt es sich einfach mal diverse Variablen auslesen zu lassen und zu schauen, ob die passen!

          Anfangend z.B bei:
          PHP-Code:
          echo nl2br(print_r($_GET,TRUE));
          echo 
          "<br /><br />";
          echo 
          nl2br(print_r($_POST,TRUE)); 
          Oftmals hock ich ne Stunde an einem Fehler! Aber einfach seinen fetten Code hier reinzuschmeissen und die anderen suchen zu lassen ist auch schlecht!
          Find Parties?
          Partysuche

          Kommentar

          Lädt...
          X