Script geht aber Fehlermeldung stört

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

  • Script geht aber Fehlermeldung stört

    Hi ...

    ich habe ein Upload/Download-Script in php wo man Dateien hoch- und runterladen kann. Das funktioniert auch gut aber leider kommt immer beim Aufruf des Scripts eine Fehlermeldung:

    Warning: stat failed for (errno=2 - No such file or directory) in /home/bartrdbm/www.bartron.de/exchange.php on line 19

    Das Script kann man hier finden: http://www.bartron.de/exchange.php

    Leider funktioniert auch das löschen und umbenennen nicht aber das könnte ich verschmerzen

    Ich poste auch mal den Code der exchange.php:

    PHP-Code:
    <html>
    <head>

    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <link href="layout.css" rel="stylesheet" type="text/css">
    </head><noscript><body></body></noscript>
    <body background=images/bg.jpg topMargin=10>
    <?php
    $upfile_name 
    strtolower($upfile_name);
    $filepath $DOCUMENT_ROOT."/replays/"//Hier setzst du DEIN verzeichnis hin!!!
    $desc[$upfile_name] = $beschreibung;
    include(
    "description.php"); 
     function 
    php_format($string)
     {
      
    $string str_replace("\"","\\\"",$string);
      
    $string str_replace(chr(13),"",$string);
      return 
    $string;
     }
    if (
    filesize($upfile)>$MAX_FILE_SIZE)
    {
    echo 
    "Dateilimite überschritten! Transaktion abgebrochen!<BR><BR>";
    echo 
    "Sie können durch Packen einer Datei, wenn diese das Limit von 2MB überschreitet, die grösse Verringern und halt per ZIP Archiv hochladen!<BR><HR>";
    echo 
    "<a href=\"exchange.php\">Zurück...</A>";
    exit;
    }
    else
    {
    //Überprüfgen ob Dateiname leerzeichen enthält....
    if (strchr($upfile_name,' '))
    {
     echo 
    "<b>Achtung!</b><hr>";
    echo 
    "Die Datei darf <b>keine</b> Leerzeichen enthalten!!<br><br>";
    echo 
    "Anstatt leerzeichen zu verwenden, kann man die <b>_</b> nutzen!<br>";
    echo 
    "Enthält die Datei leerzeichen, klappt es mit der Beschreibung nicht, Danke!<br><br>";
    echo 
    "<a href=\"exchange.php\">Zurück...</a>";
    exit;
    }
    else
    {
     
    // der Dateiname enthält keine Leerzeichen
    //Überprüfgen ob Dateinamen eingebeen oder Beschreibeung korrekt....
    if ($upfile_name != "") {
     if((
    $beschreibung == "") || ($beschreibung == "Hier gibt bitte die Beschreibung und evtl. das MatchUp ein."))
     {
     echo 
    "<b>Achtung!</b><hr>";
     echo 
    "Sie müssen mindestens eine Beschreibung der Datei angeben!<br>";
     echo 
    "Ansonsten wird die Datei unwiederruflich gelöscht! Danke!<br><br>";
     echo 
    "<a href=\"exchange.php\">Zurück...</a>";
     exit;
     }
     else
     {
     
    //Überprüfung ob datei wirklich vorhanden oder nur ein beschiss ;) ....
    if(filesize($upfile)==0)
    {
    echo 
    "<B><font color=red>Verarbeitungsfehler!</font></b><hr><br>";
    echo 
    "Es ist ein Fehler aufgetreten! Entweder existiert die gewählte Datei nicht, ist nicht grösser als 0 Byte oder<br>";
    echo 
    "es besteht ein allgemeiner, interner Fehler! Klicken Sie auf zurück und versuchen Sie es nochmal.<br><br>";
    echo 
    "Sollte dieser Fehler mehrmals vorkommen, kontaktieren Sie bitte den Webmaster (informatik_support@bluewin.ch)<br><HR>";
    echo 
    "<a href=\"exchange.php\">Zurück...</a>";
    exit;
    }
    else
    {
    /*LOGGEN*/
    $datumlog date("d.m.Y");
    $uhrzeitlog date("H:i:s");
    $iplog getenv("REMOTE_ADDR");
    $host gethostbyaddr($iplog);
    $dateihandle fopen("elog.txt""a");
    $daten "Datum:".$datumlog."\nUhrzeit:".$uhrzeitlog."\nIP-Adresse:".$iplog."\nHostname:".$host."\nHochgeladene Datei:".$upfile_name."\n===========================\n";
    fwrite($dateihandle$daten);
    fclose($dateihandle);
    /*LOGGENENDE*/
    //Alles in kleinbuchstaben umwandeln....
    $des_filestrtolower($filepath.$_FILES['upfile']['name']);
      if (!
    file_exists($des_file)) {
    //Ab hier folgen die ERLAUBTEN dateien! Du kannst dies beliebig ändern....
        
    if(ereg("(\.jpg)|(\.jpeg)|(\.gif)|(\.png)|(\.3ds)|(\.obj)|(\.txt)|(\.doc)|(\.asc)|(\.mdw)|(\.mdb)|(\.wav)|(\.w3g)|(.\midi)|(\.wma)|(\.exe)|(\.ace)|(\.tar)|(\.rar)|(\.ar)|(\.zip)|(\.cpp)|(\.c)|(\.vbs)|(\.js)|(\.tga)|(\.dat)|(\.dot)|(\.rtf)$"$des_file)) {
            
        if (
    move_uploaded_file($upfile$des_file)) {
        
    //Hier wird die Beschreibung in eine Datei geschrieben....
        
    @$file fopen("description.php","w");

     
    fputs($file,"<?".chr(13)."\n");


     foreach(
    $desc as $filename => $description) {

      @
    fputs($file," \$desc['$filename'] = \"".php_format($description)."\";".chr(13)."\n");
     }
     @
    fputs($file,"?>");

     @
    fclose($file);



        echo 
    "<font color=green>Datei gespeichert</font>";
      } else {
        echo 
    "<font color=red><B>Upload fehlgeschlagen!</font></B><BR>";
        echo 
    "Dies kann folgende Gründe haben:";
        echo 
    "<hr>";
        echo 
    "1. Dateifehler<br>";
        echo 
    "2. Dateilimite zu gross<br>";
        echo 
    "3. Skriptfehler<br>";
        echo 
    "4. Unerlaubte Zeichen im Dateinamen<br>";
        echo 
    "<hr>";
        echo 
    "<a href=\"exchange.php\">Zurück...</a>";
        exit;
      }
     } else {
       echo 
    "<b><font color=\"red\">Diese Art von Datei ist nicht erlaubt!! Transaktion abgebrochen!</font></b><hr>";
    echo 
    "<br><b>[Erlaubte Dateitypen]</b><hr>";
    echo 
    ".jpg, ";
    echo 
    ".jpeg, ";
    echo 
    ".gif, ";
    echo 
    ".png, ";
    echo 
    ".3ds, ";
    echo 
    ".obj, ";
    echo 
    ".txt, ";
    echo 
    ".doc, ";
    echo 
    ".asc, ";
    echo 
    ".mdw, ";
    echo 
    ".mdb, ";
    echo 
    ".w3g, ";
    echo 
    ".mid, ";
    echo 
    ".midi, ";
    echo 
    ".wma, ";
    echo 
    ".ar, ";
    echo 
    ".rar, ";
    echo 
    ".tar, ";
    echo 
    ".zip, ";
    echo 
    ".exe, ";
    echo 
    ".ace, ";
    echo 
    ".c, ";
    echo 
    ".cpp, ";
    echo 
    ".js, ";
    echo 
    ".vbs, ";
    echo 
    ".tga, ";
    echo 
    ".rtf, ";
    echo 
    ".dot, ";
    echo 
    ".dat ";
    echo 
    "<hr>";
    echo 
    "Der Webmaster übernimmt auf alle fällige Fehler, Systemabstürze, Viren oder sonstige Schäden,<br>die durch Programme der DataExchange enstehen könnten, <b>keine Haftung!</B>";
    echo 
    "<hr>";
    echo
    "<a href=\"exchange.php\">Zurück...</a>";
        exit;
     }
    }
    }
    }
    }
    }
    }

    echo 
    "<hr>";

    unset(
    $files);
    if (
    $dh opendir($filepath))
    {
      while(
    $file readdir($dh))
      {
        if (!
    ereg("^\.+$",$file))
        {
         
    $files[] = $file;
        }
      }
      
    closedir($dh);
    }

    $webpath "replays/"//ändern auf DEIN verzeichnis!!!

    if (is_array($files)) {
     echo 
    "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">\r\n";
     echo 
    "<tr bgcolor=\"#000000\">";
     echo 
    "<th>Datei</th>";
     echo 
    "<th>Beschreibung</th>";
     echo 
    "<th>Grösse</th>";
     echo 
    "<th>Datum</th>";
     echo 
    "<th colspan=\"2\">Aktionen</th></tr>\r\n";

     
    sort($files);
     
    natcasesort($files);
     
    reset($files);

     foreach(
    $files as $idx=>$file) {
       if (
    $idx 2) {
          echo 
    "<tr bgcolor=\"#484848\">";
       } else {
          echo 
    "<tr bgcolor=\"#666666\">";
       }
       
    printf ("<td><a href=\"%s%s\" target=\"_blank\">%s</a></td>",
       
    $webpath$file$file);
       
    printf ("<td align=\"center\">%s</td>",$desc[$file]);
       
    printf ("<td align=\"right\">%s Bytes</td>",
       
    number_format(filesize($filepath.$file), 0",""."));
       
    printf ("<td align=\"center\">%s</td>",
       
    date("d.m.Y H:i:s"filemtime($filepath.$file)));
       
    printf ("<td><a href=\"%s?file=%s\">Löschen</a></td>",
       
    "delete.php"$file);
       
    printf ("<td><a href=\"%s?file=%s\">Umbenennen</a></td>",
       
    "rename.php"$file);
       echo 
    "</tr>";
        }
     echo 
    "</table>";
    }

    echo 
    "<hr>";
    $datum date("d.m.Y");
    $uhrzeit date("H:i:s");
    $ip getenv("REMOTE_ADDR");
    echo (
    "<font color=\"#ffcc00\">Ihre IP-Adresse ist: $ip</font>");
    echo (
    "<br>Heute ist der $datum");
    echo (
    ", $uhrzeit Uhr<BR>");
    echo (
    "<a href=\"elog.txt\" target=\"_new\">Zugriffe</a> werden geloggt!!<br>");

    ?>
    <!--Dieses kleine Stück HTML kannst du ändern wie du willst...-->
    <TABLE width=100%>
    <TR>
    <TD><a href="exchange.html" target="_new">Anleitung / Dateiliste</A>
    </TD></TR>
    </TABLE>
    <br>
    <?php
    function dirsize($dir) {
     
    $dh opendir($dir);
     
    $size 0;
     while ((
    $file readdir($dh)) !== false) {
      if (
    $file != "." and $file != "..") {
       
    $path $dir."/".$file;
       if (
    is_dir($path))
        
    $size += dirsize($path);
       elseif (
    is_file($path))
        
    $size += filesize($path);
      }
     }
     
    closedir($dh);
     return 
    $size;
    }


    function 
    format_size($rawSize)
    {
     return 
    round($rawSize/10485762); //hier die Limite! 1048576 steht für 2MB!!! 
    }
    $mb_free 40 format_size(dirsize('./replays')); //Ändern in DEIN verzeichnis!!! 40 steht für die gesamtlimite des Ordners...kannste ändern...
    if($mb_free 0// wenn mehr als 40 MB frei sind
    {
    echo 
    "<table width=100% border=0 cellpadding=0 cellspacing=0>";
    echo 
    "<form action=\"exchange.php\" method=\"POST\" enctype=\"multipart/form-data\">";
    echo 
    "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"2097152\">";
    echo 
    "<tr><td><input type=\"file\" name=\"upfile\"></td></tr>";
    echo 
    "<tr><td><textarea rows=3 colls=5 name=\"beschreibung\" style=\"width:290px\">Hier gibt bitte die Beschreibung und evtl. das MatchUp ein.</textarea></td></tr>";
    echo 
    "<tr><td><input type=\"reset\" value=\"Zurücksetzen\" style=\"width:142px\"> <input type=\"submit\" name=\"Hochladen\" style=\"width:142px\"></td></tr>";
    echo 
    "</form>";
    echo 
    "</table>";
    echo 
    "<br>";
    echo 
    "Es stehen noch ".$mb_free." MB zur Verfügung.";
    }
    else 
    // es sind weniger als 40 MB frei
    {
    echo 
    "Es steht kein Platz mehr zur Verfügung oder die DataExchange ist überlastet!<BR>Versuchen Sie es später noch einmal...";
    exit;
    }
    ?>
    <br><br><center>&copy; Copyright by <a href=mailto:informatik_support@bluewin.ch>Dominic Kurz</A> and <a href=mailto:tobiasstrauss@web.de>Tobias Strau&szlig;</A>
    </center>
    </body>
    </html>
    Für jede Hilfe wäre ich dankbar, da php noch etwas Neuland ist für mich.
    Zuletzt geändert von B@rtron; 07.05.2003, 08:41.
    gruß
    B@rtron

    me @ nethands

  • #2
    Wo ist die Zeile 19???
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Wenn ich von oben abzähle (sofern das so funktioniert) ist Zeile 19 das:

      PHP-Code:
      if (filesize($upfile)>$MAX_FILE_SIZE
      Das kuriose ist, daß die Fehlermeldung schon beim Aufruf des Scripts kommt. Das Hoch- und Runterladen funktioniert aber.
      gruß
      B@rtron

      me @ nethands

      Kommentar


      • #4
        @B@rtron
        wenn ich das richtig sehe, wird dieser code ....
        PHP-Code:
        $upfile_name strtolower($upfile_name);
        $filepath $DOCUMENT_ROOT."/replays/"//Hier setzst du DEIN verzeichnis hin!!!
        $desc[$upfile_name] = $beschreibung;
        include(
        "description.php"); 
         function 
        php_format($string)
         {
          
        $string str_replace("\\"","\\\\"",$string);
          
        $string str_replace(chr(13),"",$string);
          return 
        $string;
         }
        if (
        filesize($upfile)>$MAX_FILE_SIZE)
        {
        .
        .

        .... immer ausgefüht. also auch, wenn du keine datei hochgeladen hast.

        daher wird er sich an filesize($upfile) stören. denn in $upfile ist doch dann nichts drin.

        btw. als ratschlag. verwende die neuen schreibweisen für die variablen.

        aus $DOCUMENT_ROOT wird dann $_SERVER["DOCUMENT_ROOT"] usw.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Vielen Dank erstmal für die Antwort. Was müßte ich denn jetzt ändern, damit diese Meldung nicht mehr kommt?? Ich habe das Script aus dem Netz und es nicht selber geschrieben, da ich von php noch keinen Plan habe
          gruß
          B@rtron

          me @ nethands

          Kommentar


          • #6
            du musst schauen, dass der upload-bearbeite-block erst dann ausgeführt wird, wenn auch was upgeloaded wurde.

            dein script schreibe ich dir nicht um, auch wenn du keinen plan hast. dafür gibt es bücher. (siehe meine sig)

            und was ist, wenn du mal dort anfragst, wo du das script her hast?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Original geschrieben von Abraxax

              dein script schreibe ich dir nicht um, auch wenn du keinen plan hast. dafür gibt es bücher. (siehe meine sig)
              Das habe ich auch net erwartet Ich dachte, es gäbe eine schnelle und schmerzlose Lösung.


              Original geschrieben von Abraxax

              und was ist, wenn du mal dort anfragst, wo du das script her hast?
              Das hab ich schon. Aber der Typ hat mir nur geraten, in der php.ini die Ausgabe von Fehlern zu unterbinden
              Wir haben zwar mit einigen Änderungen herum experimentiert, aber is nix dabei raus gekommen.
              gruß
              B@rtron

              me @ nethands

              Kommentar


              • #8
                doch . das geht. das ist ja nur eine WARNING.

                die kannst du so abstellen in der php.ini


                error_reporting = E_ALL & ~E_NOTICE
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Tjo ... aber an die ini komm ich net ran
                  Meine Daten liegen bei adnewmedia auf dem Websapce.
                  gruß
                  B@rtron

                  me @ nethands

                  Kommentar


                  • #10
                    was ist geposte hab ist aber die standardeinstellung...

                    frage doch mal bei adnm nach, was die dort stehen haben.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      gleich mal ne frage dazu:
                      gibt es serverseitig oder durch php selbst, ein beschränkung der dateigröße
                      beim upload?
                      [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                      Kommentar


                      • #12
                        Ja, die Begrenzung steht in der PHP.INI drin...
                        mfg
                        Günni


                        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                        City-Tiger - Online durch die Straßen tigern...

                        Kommentar


                        • #13
                          Original geschrieben von mister_x1
                          gleich mal ne frage dazu:
                          gibt es serverseitig oder durch php selbst, ein beschränkung der dateigröße
                          beim upload?
                          Wenn du nur mein Script meinst, dann liegt das Limit bei 2 MB.
                          gruß
                          B@rtron

                          me @ nethands

                          Kommentar


                          • #14
                            @ B@rtron
                            Und die Grösse steht in der PHP.INI. 2 MB ist der Standardwert.

                            ;;;;;;;;;;;;;;;;
                            ; File Uploads ;
                            ;;;;;;;;;;;;;;;;

                            ; Whether to allow HTTP file uploads.
                            file_uploads = On

                            ; Temporary directory for HTTP uploaded files (will use system default if not
                            ; specified).
                            upload_tmp_dir = \wampp13a\tmp

                            ; Maximum allowed size for uploaded files.
                            upload_max_filesize = 2M
                            mfg
                            Günni


                            Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                            Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                            Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                            City-Tiger - Online durch die Straßen tigern...

                            Kommentar


                            • #15
                              Wie komme ich an diese Daten ran?
                              gruß
                              B@rtron

                              me @ nethands

                              Kommentar

                              Lädt...
                              X