Überprüfen der Dateiendung beim Upload

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

  • Überprüfen der Dateiendung beim Upload

    Hallo liebe Wissende!

    Ich habe eine Seite, auf der User Dateien hochladen können. Momentan leider auch php und exe Dateien .

    Hier der Code, in der die Abfrage stattfinden soll:
    PHP-Code:
    if(!empty($uploadfile)) {
                if(!
    $this->hasAccess($this->mount,$reldir,"upload")) {
                  return  
    '<p class="error">'.$this->pi_getLL('no_upload_access').'</p>';
                }
    if(
    Hier muss die Abfrage rein oder?) {
         
    $content .= '<p class="error">'.$this->pi_getLL('fileextensionerror').':
     '
    .$this->conf["allowedExts"].':'.end($str).'</p>';              
                } 
    Passenden Code von anderen Scripten habe ich bereits gefunden. Leider schaffe ich es nicht, den Code samt Variablen usw. an meine Seite anzupassen.

    Dies wäre die Funktion:
    PHP-Code:
    function extAllowed($filename){

            if(!(
    $this->conf['checkExt'])) return TRUE;
                
    //all extensions allowed

            
    $includelist explode(",",$this->conf['extInclude']);

            
    $excludelist explode(",",$this->conf['extExclude'])     ; 
       
    //overrides includelist

            //debug($excludelist);

            //debug($includelist);

            
    $extension='';

            if(
    $extension=strstr($filename,'.')){

                
    $extension=substr($extension1);    

                return ((
    in_array($extension,$includelist)
     || 
    in_array('*',$includelist)) && (!in_array($extension,$excludelist)));

            } else {

                return 
    FALSE;

            }

        } 
    Und das die Abfrage:

    PHP-Code:
    if(!$this->extAllowed($_FILES[$this->uploadid]['name'])){ //extension allowed?

                
    return '<p>'.$this->pi_getLL('error.extensionnotallowed').'</p>';

            } 
    Könnte mir jemand helfen den Code entsprechend anzupassen? Ich verzweifle bereits.

    Vielen Dank.
    Zuletzt geändert von NoUseForaName; 11.08.2005, 18:07.

  • #2
    Und hier die Regeln, die du befolgen sollst: http://www.php-resource.de/forum/sho...threadid=50454

    Welcome!

    Soll dir jetzt jemand den code da einfügen, oder hast du ein konkretes Problem?

    Kommentar


    • #3
      Hallo TobiaZ,

      Mein Problem ist vornehmlich, dass ich sehr sehr sehr beschränkte PHP-"Kenntnisse" habe und demzufolge mit probieren nicht weiterkomme.
      Deswegen würde ich wohl auch mit einer Hilfe wie " Deine Variablen werden überhaupt nicht übergeben/existieren nicht ... etc" auch nicht weiterkommen.
      Ich dachte, wenn sich jemand den obige Code ansieht, könnte er mir eine Step-by-Step Anleitung geben oder sogar den angepassten Code posten (soll nicht unverschämt sein - ich kann leider nicht einschätzen wie aufwendig das ist).
      Und ja, die Forenregeln hatte ich schön brav vor dem Posting gelesen. Allerdings erscheinen dann ca. 200 Zeilen Fehlermedlungen, und das wird hier wahrscheinlich niemandem helfen, da ich stümperhaft im Code rumprobiert habe.

      Danke und VG,
      NoUseForaName

      Kommentar


      • #4
        Wenn du fehlermeldungen erhältst, dann solltest du sie beheben. ansonsten würde es mich nicht wundern, dass dein code nicht funktioniert. insofern werde ich dir diesbezüglich auch nicht helfen wollen.

        wenn du es formal nicht schaffst, dein Posting an unsere Regeln anzupassen. Dann sehe ich mich gezwungen den Thread ins Archiv zu verschieben.

        Bitte mach es uns doch wenigstens etwas leichter dir zu helfen. Danke für dein Verständnis.
        Zuletzt geändert von TobiaZ; 07.08.2005, 19:48.

        Kommentar


        • #5
          Hallo,
          Ich habe jetzt eine andere Funktion "gefunden" und in meine if-Abfrage getan:

          PHP-Code:
                    if(!empty($uploadfile)) {
                      if(!
          $this->hasAccess($this->mount,$reldir,"upload")) {
                        return  
          '<p class="error">'.$this->pi_getLL('no_upload_access').'</p>';
                      }
                      if(function 
          file_allowed($uploadfile){
                        
          $a false;
                        
          $dateiendung strrchr($uploadfile,".");
                        
          $erlaubte_formate=".gif,.jpg,.jpeg,.ppt,.xls,.html,.htm,.txt,.zip,.csv,.pdf,.doc";
                        if(
          eregi($dateiendung$erlaubte_formate)) $a=true;
                      return 
          $a;
                      })
                   {
                        
          $content .= '<p class="error">'.$this->pi_getLL('fileextensionerror').':
           '
          .$this->conf["allowedExts"].':'.end($str).'</p>';              
                      } 
          Die resultierende Fehlermeldung:
          Parse error: parse error in /html/typo3conf/ext/moc_filemanager/pi1/class.tx_mocfilemanager_pi1.php on line 443

          Warning: Cannot modify header information - headers already sent by (output started at /html/typo3conf/ext/moc_filemanager/pi1/class.tx_mocfilemanager_pi1.php:443) in /typo3_src-3.7.0/typo3/sy************t/cms/tslib/class.tslib_fe.php on line 2402

          Zuletzt geändert von NoUseForaName; 11.08.2005, 17:09.

          Kommentar


          • #6
            wann lernst du endlich deinen code umzubrechen?

            parse error ist ein syntaktischer fehler. solche banalitäten kann man auch selbst korrigieren. was du da mit der if-abfrage machst, ist schon sehr falsch.

            http://de3.php.net/manual/en/languag...s.user-defined

            Kommentar


            • #7
              Die Funktion habe ich jetzt in den Fuß der Seite gepackt ...
              PHP-Code:
              function file_allowed($uploadfile){
                        
              $a false;
                        
              $dateiendung strrchr($uploadfile,".");
                        
              $erlaubte_formate=".gif,.jpg,.jpeg,.ppt,.xls,.html,.htm,.txt,.zip,.csv,.pdf,.doc";
                        if(
              eregi($dateiendung$erlaubte_formate)) $a=true;
                      return 
              $a;
                      } 
              Aber wie müsste jetzt die If-Abfrage aussehen?
              PHP-Code:
              if(     ){
                            echo 
              "Diese Dateiendungen sind nicht erlaubt!";
                            }    
              else {... 

              Kommentar


              • #8
                Man! [COLOR=red]Brich deinen Code um [/COLOR]

                Kommentar


                • #9
                  ich habe dir einen link gegeben, hinter dem du informationen darüber findest, wie man funktionen aufruft.

                  Kommentar


                  • #10
                    Ok, ich gebe auf ...
                    Da ich das für meine Schule bis nächste Woche brauche und selber niemals hinbekomme ...

                    Frage ich so: Was würde es kosten, wenn Jemand den Code entsprechend anpasst, so dass ein funktionierernder Uploadcheck stattfindet?

                    Den Code gibt es hier zum Download: http://typo3.org

                    Das Problem liegt in Zeile 443, wo momentan lediglich ein Platzhalter steht ...

                    Kommentar


                    • #11
                      Wenn du den Code nicht sofort umbrichst, werde ich den Thread hier closen. Dann mach ich auch kein Jobangebot daraus! und entgültig *verwarn*

                      Was sind dir deine Hausaufgaben *rofl* denn wert?

                      Kommentar

                      Lädt...
                      X