tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
18
ZUGRIFFE
878
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Hallo Leute,

    nachdem ich die Datei ausgewählt und hochgeladen habe, überprüft die Datei "upload.php", ob die Datei die Endung .gif oder .jpeg hat und ob sie kleiner als 15 KB ist. Das sollte normalerweise passieren. Tut es aber nicht! Ich frage mich warum. Hier einmal der Code:

    ##Die Maske##

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <html>
    <body>
     
    <form enctype="multipart/form-data" action="upload.php" method="post"> 
    <input type="file" name="file"><br> 
    <input type="submit" value="hochladen"> 
    </form>
     
     
    </body>
    </html>

    ##upload.php##

    PHP-Code:
    <?php 

    $tempname 
    $_FILES['file']['tmp_name']; 
    $name     $_FILES['file']['name']; 

    $type     $_FILES['file']['type']; 
    $size     $_FILES['file']['size'];


    if(
    $type != "image/gif" && $type != "image/pjpeg"

        
    $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."

    if(
    $size "15000"

        
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"
    }

    if(empty(
    $err)) 

        
    copy("$tempname""$name"); 
        echo 
    "Die Datei $name wurde erfolgreich hochgeladen!"

    else 

        foreach(
    $err as $error
        echo 
    "$error<br>"
    }

    ?>
    Bei "upload.php" habe ich zum Testen, ob er überhaupt was ausgibt, folgendes eingefügt.

    PHP-Code:
    echo $type//z.B., oder $size etc. 
    Er gibt aber nichts aus.
    Geändert von Mammuth (01.08.04 um 21:02 Uhr)
     

  2. #2
    Avatar von Funjoy
    Funjoy Funjoy ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Berlin
    Beiträge
    118
    Hallo hast du mal versucht das Array zu nummerieren?
    Also so:
    PHP-Code:
    <?php

    if($type != "image/gif" && $type != "image/pjpeg"

        
    $err[0] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."

    if(
    $size "15000"

        
    $err[1] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"

    ?>
    ansonsten würde ich noch vorschlagen das script so zu machen:

    PHP-Code:
    <?php 

    $tempname 
    $_FILES['file']['tmp_name']; 
    $name     $_FILES['file']['name']; 

    $type     $_FILES['file']['type']; 
    $size     $_FILES['file']['size']; 


    if(
    $type != "image/gif" && $type != "image/pjpeg"

        
    $error .= "Nur gif und jpeg Dateien dürfen hochgeladen werden."

    if(
    $size "15000"

        
    $error .= "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"


    if(empty(
    $err)) 

        
    copy("$tempname""$name"); 
        echo 
    "Die Datei $name wurde erfolgreich hochgeladen!"

    else 

        echo 
    "$error<br>"


    ?>
    MfG Funjoy
     
    Ich bin ein KLEINER Webmaster werde aber immer GRÖßER

  3. #3
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Darin liegt ja nicht das Problem. Wenn ich "$type" ausgeben will, also

    PHP-Code:
    echo $type
    gibt es nichts aus. Das ist das Problem.
     

  4. #4
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Aber die Datei wird auf jeden Fall hochgeladen?!
    Evtl. mal print_r($_POST) bzw. print_r($_FILES) probieren ...

    Welche PHP Version nutzt du?

    @ Funjoy: Du solltest nochmal einen kurzen Blick auf das
    readme zu Array's werfen
     
    »

  5. #5
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Nein, die Datei wird auch nicht hochgeladen. Wie gesagt, er gibt nichts aus. Keine Variable. Die sind leer. Ich hab deins mal ausprobiert, geht aber auch nicht.
    Ich habe die PHP-Version: 4.3.4

    Ich möchte später nämlich Dateien vom PC einfach über das Script hochladen können. (importieren und exportieren).
     

  6. #6
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ich spekuliere mal, dass die Datei dann schon wieder aus dem temporären Ordner gelöscht wurde. Vielleicht geht es ja nachdem du move_uploaded_file benutzt hast.


    MfG Radhad
     

  7. #7
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Das versteh ich nicht ganz. Wieso sollte sie denn schon weg sein? Funktioniert der Code bei dir?
     

  8. #8
    Avatar von thally
    thally thally ist offline Mitglied
    Registriert seit
    Dec 2002
    Ort
    Münster (NRW)
    Beiträge
    24
    WEnn das Skript abgearbeitet ist, wird die hochgeladene Datei automatisch von ihrem temporäen Ort gelöscht.
     
    gruss, thally

    ------------------------------------------------------------------
    "Wenn du eine Webseite bauen willst, so sauge dir nicht Dreamweaver runter, sondern begreife die Lehre von HTML"
    ------------------------------------------------------------------

  9. #9
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Ich verstehe schon was ihr meint. Das ergibt aber keinen Sinn. Passt mal auf. Wenn ich
    Code :
    1
    
    echo $type;
    z. B. ausgeben will, gibt er mir nicht aus.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    <?php 
     
    $tempname = $_FILES['file']['tmp_name']; 
    $name     = $_FILES['file']['name']; 
     
    $type     = $_FILES['file']['type']; 
    $size     = $_FILES['file']['size']; 
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    echo $type; // Kann auch eine andere Variable von oben sein
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    if($type != "image/gif" && $type != "image/pjpeg") 
    { 
        $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden."; 
    } 
    if($size > "15000") 
    { 
        $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!"; 
    } 
     
    if(empty($err)) 
    { 
        copy("$tempname", "$name"); 
        echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
    } 
    else 
    { 
        foreach($err as $error) 
        echo "$error<br>"; 
    } 
     
    ?>

    Vielleicht könnt ihr mir mal den gefallen tun und das Script bei euch testen. Vielleicht liegt es auch nicht an dem Script, sondern am Server oder so. Wäre echt nett von euch. Danke
     

  10. #10
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Ich habe das Script getestet.
    Zumindest wird $type bei mir ausgegeben!

    snuu
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  11. #11
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Danke. Das ist komisch. Könnte es sein, dass der Server das Hochladen auf irgendeine Weise nicht erlaubt? Wenn ja, dann ist das ziehmlich doof! Also wenn ihr was darüber wissen solltet, dann raus damit. Ich werde mal versuchen das noch auf einen anderen Server zu testen. Nochmals danke.
     

  12. #12
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi,

    also ich würde das ganze an deiner Stelle mal ohne die Prüfungen testen.

    # Dateiname: upload.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <!-- alles was nun folgt kopieren und in die datei setzen -->
    <html>
    <body>
     
    <?php 
    if(isset($upload)) {
     
    $verzeichnis = "../das entsprechende Verezchnis";
     
    $name = $_FILES['file']['name'];
    move_uploaded_file($_FILES['file']['tmp_name'], "$verzeichnis/$name");
     
     // Den Teil würde ich z.B. erst später einbauen wenn der erste läuft um einen
     // besseren Überblick über mögliche Fehler zu haben.
     //$type     = $_FILES['file']['type']; 
     //$size     = $_FILES['file']['size']; 
     
     echo "<p align=\"center\">Datei wurde hochgeladen.</p>";
    }
     
    ?>
    <form enctype="multipart/form-data" action="upload.php?upload=" method="post"> 
    <input type="file" name="file"><br> 
    <input type="submit" value="hochladen"> 
    </form>
    </body>
    </html>


    Evtl. fällt dir direkt bei diesem Code auf, warum du nichts auf deinen Server bekommen hast

    Noch was, wenn du den Namen in die Datenbank übernimmst, kannst du auch gleichzeitig alle anderen Infos in die DB übernehmen.
     

  13. #13
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Ich hab das gerade mal ausprobiert. Klappt aber auch nicht. Jetzt bin ich mir fast schon sicher, dass das an dem Server liegt. Hier der Code nur modifiziert

    #Datenname: upload.php

    PHP-Code:
    <!-- alles was nun folgt kopieren und in die datei setzen --> 
    <html> 
    <body>
     <?php 
    if(isset($upload))
     { 
    $verzeichnis "bilder";
     
    $name $_FILES['file']['name']; 
    if(
    $name=="")
    {
        echo 
    "Keine Datei ausgewählt!<br>";
    }
    else
    {
        
    $copy move_uploaded_file($_FILES['file']['tmp_name'], "$verzeichnis/$name"); 

        if(
    $copy)
        {
            echo 
    "Kopiert<br>";
        }
        else
        {
            echo 
    "Nicht kopiert<br>";
        }


        
    // Den Teil würde ich z.B. erst später einbauen wenn der erste läuft um einen 
        // besseren Überblick über mögliche Fehler zu haben.
         
        //$type = $_FILES['file']['type'];
        //$size = $_FILES['file']['size']; 
        
        
    echo "<p align=\"center\">Datei wurde hochgeladen.</p>"; } 
    };    
    ?>
     <form enctype="multipart/form-data" action="upload.php?upload=" method="post"> 
    <input type="file" name="file"><br> <input type="submit" value="hochladen"> </form> 
    </body> 
    </html>
     

  14. #14
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    du machst wieder einen fehler, prüf doch erst mal ob die einfache - ohne if und else und sonstigem kram - version läuft und lass dein verzeichnis weg. leg die uploaddatei in das verzeichnis in welches du die bilder haben willst.

    einfach mal machen. wenn es dann nicht geht, liegt es an der php-einstellung des providers. andererseits kannst du das auch rausfinden mit einer datei und folgendem inhalt:

    PHP-Code:
    <?php
    phpinfo
    ();
    ?>
    unter php core muss der eintrag file_uploads auf on eingestellt sein. dann auch obiger code.

    teste noch mal ohne den if und else faktor und nimm den vorgegebenen code.

     

  15. #15
    Mammuth Mammuth ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Ort
    Paderborn
    Beiträge
    63
    Ich hatte es vorher ja auch ohne gemacht und jetzt wieder. Es geht einfach nicht. Hab mal nachgeguckt. Ich glaube, dass es laut der Infos hier nicht geht.

    Local Value---------Master Value
    ---------Off ----------------------On-----------

    bei file_uploads.
     

Ähnliche Themen

  1. Problem bei der Übergabe von variablen
    Von spikaner im Forum PHP
    Antworten: 4
    Letzter Beitrag: 31.08.07, 19:51
  2. C#: Problem mit Sonderzeichen aus GET Übergabe
    Von Knuessel im Forum .NET Web und Kommunikation
    Antworten: 2
    Letzter Beitrag: 23.08.06, 20:02
  3. php übergabe problem
    Von MechanU im Forum PHP
    Antworten: 3
    Letzter Beitrag: 08.08.05, 11:59
  4. Problem mit variablen übergabe
    Von grimoh im Forum PHP
    Antworten: 1
    Letzter Beitrag: 11.05.05, 18:14
  5. Antworten: 4
    Letzter Beitrag: 18.11.04, 17:03