ilch Forum » Allgemein » HTML, PHP, SQL,... » Upload Script

Geschlossen
  1. #1
    User Pic
    darkwarden Mitglied
    Registriert seit
    30.12.2006
    Beiträge
    15
    Beitragswertungen
    0 Beitragspunkte
    Hallo alle zu sammen erstmal hut ab wegen den tollen ilch clan script muss ich echt sagen ist richtig super.
    So nun mein problem ich habe ein upload script gefunden.Aus diesen thema externer Link(Das veränderte von mairu).
    Ich habe ein replay script wo man replays von dem spiel warcraft 3 analysieren kann und alles anzeigenp3pp3.p3.funpic.de/replay/example.php? .
    Und bei dem script gibt es leider keine upload funktion.
    Und dieses ewige in den ftp einloggen nervt.
    Ich möchte auch meinen Admins die erlaubnis replays upzuloaden.
    Deswegen habe ich im Admin Bereich ein neun button (bild) hinzugefügt der upload.php heißt und das script von Mairu aufrufen soll.
    Das 3te bild von rechts namens Replay Upload (hier das bild)
    gesperrtes Bild

    Wenn ich das script von Mairu Öffne (klick auf den button)
    öffnet er das script auch ich habe die ersten 5 zeilen weg gelassen damit er nicht aus dem admin menu raus geht und die Clanseite öffnet ohne die clan page zu öffnen und es im anzeige fenster anzuzeigen.Ich würde es gerne so haben das es so wie bei den anderen funktionen im admin bereich ist wie z.B smiles das halt meine funktion Upload genau so angezeigt wird wie smilies halt nur mit meiner funktion.
    Das halt oben die kopf zeile vorhanden ist mit dem einzelnden Menü punkten.Ich würde auch andere Scripts benutzen diese brauchen nur die funktion upload und löschen mehr nicht kein size limit oder anderes.Nur das ich dateien in den und den ordner hochladen und wieder entfernen kann mehr brauche ich nicht.Den das script von Mairu macht bei mir einen fehler


    Fatal error: Call to a member function footer() on a non-object in /usr/export/www/vhosts/funnetwork/hosting/p3pp3/include/admin/replay.php on line 129


    Meine Page steht bei einen free hoster www.Funpic.de
    Ich hatte mal was gelesen das bei funpic das .htaccess nicht richtig geht oder nur mit passwort oder so ich hoffe das ich alles gut genug dargestellt habe M.F.G D4rkW4rden sry wegen den rechtschreibfehlern :-D

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Als replayupl.php
    <?php
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    $design = new design ( 'Admins Area', 'Admins Area', 2);
    $design->header();
    
    $uploadordner = "include/downs/upload/"; //Order für Uploads
    $extlimit = "yes"; //Do you want to limit the extensions of files uploaded
    $limitedext = array(".w3g"); //Extensions you want files uploaded limited to.
    $sizelimit = "yes"; //Do you want a size limit, yes or no?
    $sizebytes = "3000000"; //size limit in bytes
    if(!empty($_FILES['file']['name'])) {
      if (($sizelimit == "yes") && ($_FILES['file']['size'] > $sizebytes)) {
        echo "Die Replaydatei ist zu gro&szlig;, sie darf maximal $sizebytes bytes sein.";
      }
      $ext = strrchr($_FILES['file']['name'],'.');
      $fname = escape($_FILES['file']['name'],'string');
        $fname = str_replace(' ','',$fname);
      if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
        echo "Die Replaydatei hat nicht die richtige Endung. [w3g]";
      }
      //falls im Ordner der Name der Datei schon existiert, dann soll eine Fehlermeldung kommen.
      elseif (file_exists($uploadordner.$fname)) {
        echo "Der Dateiname existiert bereits. Bitte ändere deinen Dateinamen und versuche es nochmal.";
      }
      //ansonsten wird die Datei im Ordner images kopiert
      elseif ( move_uploaded_file($_FILES['file']['tmp_name'], $uploadordner.$fname) ){
        //$link = 'http://'.$_SERVER['HTTP_HOST'].str_replace('index.php','',$_SERVER['PHP_SELF']).$uploadordner.$fname;
        //echo 'Link zu deiner Datei ist: <a href="'.$link.'">'.$link.'</a><br />';
        echo 'Replay erfolgreich hochgeladen<br />';
    }
    }
    ?>
    
    <form name="mf" action="admin.php?replayupl" method="post" enctype="multipart/form-data">
    Datei ausw&auml;hlen: <input type='file' name='file' value='durchsuchen'>
    <input type='submit' NAME='senden' VALUE='Replay hochladen'>
    </form>
    
    <? $design->footer(); ?>
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    darkwarden Mitglied
    Registriert seit
    30.12.2006
    Beiträge
    15
    Beitragswertungen
    0 Beitragspunkte
    Ohh man Mairu du bist der gott 1000 mal danke hast mich sogar richtig verstanden :-D (glaube war nicht einfach)
    einfach geil aber das einzigste was jetzt noch fehlt ist halt das man die datein wieder raus löschen kann geht das???Oder ist das zu viel aufwand?naja wäre echt cool aber!

    Naja ein hoch auf Mairu hiphip hura YesYesYesYesYes
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Jameson-ngt Mitglied
    Registriert seit
    12.10.2007
    Beiträge
    94
    Beitragswertungen
    0 Beitragspunkte
    bin jetz langsam am verzweifeln,
    habe das upload modul von dir mairu hochgeladen und bei der install kommt bei mir nur eine leere seite.

    Was kann ich dagegen tun?
    Oder wie kann ich die datenbank für das modul selbst erstellen ?

    MfG

    Jameson
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    <?php
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    // Funktion scandir für PHP 4
    if (version_compare(phpversion(), '5.0.0') == -1) {
        function scandir($dir)
        {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) $files[] = $filename;
            sort($files);
            return $files;
        }
    }
    // Funktion um einen String zu kürzen, falls er zu lang ist
    function short_string($string, $len = 20)
    {
        if (strlen($string) <= $len) return $string;
        else {
            $len = floor($len / 2);
            $string = substr($string, 0, $len-3) . '...' . substr($string, $len * -1);
            return $string;
        }
    }
    // Funktion, die die Größe aller Dateien im Ordner zusammenrechnet
    function dirsize($dir)
    {
        $size = 0;
        $files = array_slice(scandir($dir), 2);
        foreach ($files as $filenr => $file) {
            if (is_dir($dir . $file)) {
                $size += dirsize($dir . $file . '/');
            } else {
                $size += @filesize($dir . $file);        
            }        
        }
        return $size;
    }
    // Verzeichnisinhalt auflisten
    function showdir($uploadordner)
    {
        global $sizelimituser;
        if (!is_dir($uploadordner)) {
            echo 'Uploadverzeichnis existiert nicht.';
            return false;
        } elseif (!is_writeable($uploadordner)) {
            echo 'Uploadverzeichnis ist schreibgesch&uuml;tzt.';
            return false;
        }
        $server = 'http://' . $_SERVER['HTTP_HOST'] . str_replace('admin.php', '', $_SERVER['PHP_SELF']);
        $dsize = 0;
        $pfiles = 0;
        $bool = true;
        $files = scandir($uploadordner);
        while ($bool AND substr(current($files), 0, 1) == '.') {
            $pfiles++;
            $bool = next($files);
        }
        $files = array_slice($files, $pfiles);
        if (!$upload_htaccess AND ($i = array_search('index.html',$files)) !== false) {
            unset($files[$i]);
        }
        echo "<script type=\"text/javascript\">
      function senddel(id) {
        document.files.delid.value = id;
        document.files.submit();
      }
      </script>
      <form name=\"files\" action=\"admin.php?replayupl\" method=\"post\">
      <input type=\"hidden\" name=\"folder\" value=\"{$_POST['folder']}\"/>
      <input type=\"hidden\" name=\"delid\" value=\"-1\"/>
      <table width=\"100%\">
      <tr class=\"Chead\" align=\"center\"><th>Dateien</th><th width=\"90\">Gr&ouml;&szlig;e</th><th width=\"50\">L&ouml;schen</th></tr>";
        foreach ($files as $filenr => $file) {
            if (is_dir($uploadordner . $file)) {
                $fsize = dirsize($uploadordner . $file . '/');
            } else {
                $fsize = filesize($uploadordner . $file);
            }        
            $dsize += $fsize;
            echo "<tr class=\"Cnorm\"><td><a href=\"$server$uploadordner$file\" target=\"_blank\">" . short_string($file, 43) . "</a></td><td align=\"right\">" . (is_dir($uploadordner . $file) ? 'DIR - ' : ' '). round($fsize / 1024, 1) . " K</td><td align=\"center\"><a href=\"javascript:senddel(" . ($filenr + $pfiles) . ");\"><img src=\"include/images/icons/del.gif\" alt=\"L&ouml;schen\" border=\"0\" \></a>";
        }
        if ($sizelimituser > 1) {
            $percentage = intval( $dsize / $sizelimituser * 100);
            $percentage2 = 100-$percentage;
            $rest = round( ($sizelimituser - $dsize) / 1024, 1) . " K";
        }
        $dsize = round( $dsize / 1024, 1) . " K";
        echo "<tr class=\"Cdark\"><td>".( $sizelimituser == 0 ? '' : "<table width=\"100%\" height=\"10\" title=\"Zu $percentage% ausgelastet, noch $rest verf&uuml;gbar\"><tr><td bgcolor=\"red\" width=\"$percentage%\"></td><td width=\"$percentage2%\"></td></tr></table>")."</td><td align=\"right\">$dsize</td><td></td></tr>";
        echo "</table></form>";
    }
    
    $design = new design ( 'Admins Area', 'Admins Area', 2);
    $design->header();
    
    $uploadordner = "include/downs/upload/"; //Order für Uploads
    $extlimit = "yes"; //Do you want to limit the extensions of files uploaded
    $limitedext = array(".w3g"); //Extensions you want files uploaded limited to.
    $sizelimit = "yes"; //Do you want a size limit, yes or no?
    $sizebytes = "3000000"; //size limit in bytes
    
    // Datei/Verzeichnis löschen
    if (isset($_POST['delid']) AND $_POST['delid'] != '-1') {
        $files = scandir($uploadordner);
        $filenr = $_POST['delid'];
        $err = error_reporting(0);
        if (is_dir($ordner . $files[$filenr])) {
            $del = rmdir($uploadordner . $files[$filenr]);
            if ($del == true) echo "Verzeichnis <b>{$files[$filenr]}</b> erfolgreich gel&ouml;scht<br />";
            else echo "Verzeichnis <b>{$files[$_POST['delid']]}</b> konnte nicht gel&ouml;scht werden, Verzeichnisse m&uuml;ssen leer sein damit man sie l&ouml;schen kann.<br />";
        } else {
            $del = unlink($uploadordner . $files[$filenr]);
            if ($del == true) echo "Datei <b>{$files[$filenr]}</b> erfolgreich gel&ouml;scht<br />";
            else echo "Datei <b>{$files[$_POST['delid']]}</b> konnte nicht gel&ouml;scht werden<br />";
        }
        error_reporting($err);
    }
    
    if(!empty($_FILES['file']['name'])) {
      if (($sizelimit == "yes") && ($_FILES['file']['size'] > $sizebytes)) {
        echo "Die Replaydatei ist zu gro&szlig;, sie darf maximal $sizebytes bytes sein.";
      }
      $ext = strrchr($_FILES['file']['name'],'.');
      $fname = escape($_FILES['file']['name'],'string');
        $fname = str_replace(' ','',$fname);
      if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
        echo "Die Replaydatei hat nicht die richtige Endung. [w3g]";
      }
      //falls im Ordner der Name der Datei schon existiert, dann soll eine Fehlermeldung kommen.
      elseif (file_exists($uploadordner.$fname)) {
        echo "Der Dateiname existiert bereits. Bitte ändere deinen Dateinamen und versuche es nochmal.";
      }
      //ansonsten wird die Datei im Ordner images kopiert
      elseif ( move_uploaded_file($_FILES['file']['tmp_name'], $uploadordner.$fname) ){
        //$link = 'http://'.$_SERVER['HTTP_HOST'].str_replace('index.php','',$_SERVER['PHP_SELF']).$uploadordner.$fname;
        //echo 'Link zu deiner Datei ist: <a href="'.$link.'">'.$link.'</a><br />';
        echo 'Replay erfolgreich hochgeladen<br />';
    }
    }
    ?>
    
    <form name="mf" action="admin.php?replayupl" method="post" enctype="multipart/form-data">
    Datei ausw&auml;hlen: <input type='file' name='file' value='durchsuchen'>
    <input type='submit' NAME='senden' VALUE='Replay hochladen'>
    </form>
    
    <?php 
    
    showdir($uploadordner);
    $design->footer();
    
    ?>


    so vielleicht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eine leere Seite sollte eigentlich nicht kommen, die Abfragen, kann man natürlich aus der Install herauskopieren und in phpmyadmin ausführen, wobei prefix natürlich ersetzt werden muss.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Jameson-ngt Mitglied
    Registriert seit
    12.10.2007
    Beiträge
    94
    Beitragswertungen
    0 Beitragspunkte
    so sieht die install.php von dir aus , habe aber keine install.sql
    <?php 
    define('main',true);
    include('include/includes/config.php');
    include('include/includes/func/db/mysql.php');
    
    ###################
    # Uploadmodul 1.0 #
    # by Mairu        #
    ###################
    
    db_connect();
    
    if (db_num_rows(db_query("SELECT * FROM `prefix_allg` WHERE k = 'uploadmodul'")) == 0) {
      $sql = db_query("INSERT INTO `prefix_allg` 
      ( `id` , `k` , `v1` , `v2` , `v3` , `v4` , `v5` , `v6` , `t1` ) VALUES
      ( NULL , 'uploadmodul', 'include/downs/upload', '2000000', '10000000', '1', '-3', '1', 'txt,jpg,zip,rar')");
    } else {
      $sql = 'newest';
    }
    if (db_num_rows(db_query("SELECT * FROM `prefix_modules` WHERE url = 'upload'")) == 0) {
      db_query("INSERT INTO `prefix_modules` (`id` ,`url` ,`name` ,`gshow` ,`ashow` ,`fright`) VALUES (NULL , 'upload', 'Upload-Modul', '1', '1', '0');");
    }
    
    if ($sql === true) echo 'Erfolgreich installiert, install.php jetzt l&ouml;schen und kein weiteres mal aufrufen.';
    elseif ($sql == 'newest') echo 'Die Datenbank ist auf dem aktuellen Stand, die install.php sollte gel&ouml;scht werden.';
    elseif ($sql == 'fail') echo 'Datenbank entspricht nicht den Erwartungen, es wurde keine &Auml;nderung vorgenommen';
    else echo "Es sind Fehler aufgetreten:\n".mysql_error();
    
    db_close();
    ?>


    also weiss ich nicht was genau als mysql ausgeführt werden muss
    so vielleicht?
    INSERT INTO `prefix_allg` 
      ( `id` , `k` , `v1` , `v2` , `v3` , `v4` , `v5` , `v6` , `t1` ) VALUES
      ( NULL , 'uploadmodul', 'include/downs/upload', '2000000', '10000000', '1', '-3', '1', 'txt,jpg,zip,rar');
    INSERT INTO `prefix_modules` (`id` ,`url` ,`name` ,`gshow` ,`ashow` ,`fright`) VALUES (NULL , 'upload', 'Upload-Modul', '1', '1', '0');


    kannste mir da noch helfen? *liebguck*


    Zuletzt modifiziert von Jameson-ngt am 18.11.2007 - 14:37:56
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Genau so, wie gesagt prefix muss noch ersetzt werden.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Jameson-ngt Mitglied
    Registriert seit
    12.10.2007
    Beiträge
    94
    Beitragswertungen
    0 Beitragspunkte
    so ist ausgeführt, nur leider wenn ich eine bilddatei uploaden will, bekomme ich angezeigt
    » Upload
    Konnte kein Verzeichnis erstellen

    chmod des ordners ist 777

    traurig


    Zuletzt modifiziert von Jameson-ngt am 18.11.2007 - 14:52:42
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    darkwarden Mitglied
    Registriert seit
    30.12.2006
    Beiträge
    15
    Beitragswertungen
    0 Beitragspunkte
    Also bei mir leuft alles wunder bar keine probleme alles was ich wollte.

    Danke MAIRU
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten