tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
319
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dragonlord dragonlord ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    146
    Hallo zusammen,

    also das Datei Upload-Script was ich gebastelt habe Funktionert tadelos:
    PHP-Code:
    # VARIABLEN übernehmen
                    
    $bezeichnung $HTTP_POST_VARS["bezeichnung"];
                    
    $kategorie $HTTP_POST_VARS["kategorie"];
        
    $preis$HTTP_POST_VARS["preis"];
                    
    $datum $HTTP_POST_VARS["datum"];
        
    $verfasser $HTTP_POST_VARS["verfasser"];
                    
    $text $HTTP_POST_VARS["text"];
        
    $wertung$HTTP_POST_VARS["wertung"];
        
    #Bild Upload:
        
    $tempname $_FILES['bild_NA']['tmp_name'];
                    
    $name $HTTP_POST_FILES['bild_NA']['name'];
                    
    $type $_FILES['bild_NA']['type']; # Dateityp
                    
    $size $_FILES['bild_NA']['size']; # Dateigrösse
     
        
    if($type != "image/gif" && $type != "image/pjpeg") {
           
    $err[] = "Nur gif und jpeg Dateien dürfen hochgeladen werden.";
        } 
        if(
    $size "100000") { 
           
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!";
        } 
        
        if(empty(
    $err)) { 
           
    copy("$tempname""img/$name");
           echo 
    "</u><font color=\"#FFFFFF\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><strong>Die Datei $name wurde erfolgreich hochgeladen!</strong></font><br> \n";
        } 
        else { 
           foreach(
    $err as $error
           echo 
    "$error<br>"
        } 
         
    # Damit kein Dateiname 2 mal vorkommt um die Datei inkrementel umbenannt werden:-----------------------
                    
    $fp=fopen("inkr.txt","r"); # aktuellen Inkrement aus Textdatei Lesen:
                    
    $CurrInkr=fgets($fp,100);
                    
                    
    $NewInkr$CurrInkr 1# Gelesenen Inkrement um eins hochsetzen
                    
                    
    $fp fopen("inkr.txt""w");  # Den neuen Inkrement wieder in die Textdatei schreiben:
                    
    fwrite($fp,$NewInkr);
                    
    fclose($fp);
                    
    # Welcher Dateityp wurde übermittelt?:
                    
    if($type "image/gif"){
                             
    $NewFileName "image$NewInkr.gif";  # Datei ist eine GIF-Datei
                             
    }
                    if(
    $type "image/pjpeg"){
                             
    $NewFileName "image$NewInkr.jpeg";  # Datei ist eine JPEG-Datei
                             
    }
                    
    rename ("img/$name","img/$NewFileName"); # Datei inkrementel umbenennen
         # --------------------------------------------------------------------------------------------------------
         
               # Bildmase bestimmen:
            
    $img_size GetImageSize ("img/$NewFileName");
            if (
    $img_size[0]>250){
             echo 
    "<font color=\"#CCCCCC\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> \n";
             echo 
    "Das Bild ist aber grösser als 250 Pixel. Dein Beitrag konnte deshalb auch nicht</font><br> \n";
             echo 
    "gespeichert werden. <strong>[Bildanlage wurde aus dem Speicher entfernt]</strong></font><br> \n";
             
    unlink ("img/$NewFileName");
             }
              else {
                     
    #DB öffnen:
                    
    include ("dbconnect.php"); # DB Auth. inludieren
                   
    $connection=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Keine Verbindung möglich!");
                    
    mysql_select_db($mysqldb$connection) or die("Konnte die Datenbank nicht oeffnen.");
        
                   
    $eintrag "INSERT INTO parts (bezeichnung,kategorie,bild_NA,text,wertung,verfasser,preis,datum) VALUES ('$bezeichnung','$kategorie','$NewFileName','$text','$wertung','$verfasser','$preis','$datum')";
                    if (
    mysql_query ($eintrag)) {
                    echo 
    "<font color=\"#CCCCCC\" size=\"2\" face=\"Verdana, Arial, Helvetica, sans-serif\"> \n";
                    echo 
    "Beitrag wurde erfolgreich gespeichert!</font> \n";
                    } else {
                    print (
    "Es traten Probleme auf. Beitrag konnte nicht gespeichert werden "  );
                    echo 
    mysql_errno() . ": " mysql_error(). "\n";
                    }
                    
    mysql_close ($connection); } 
    So das einzigste ist jetzt noch:
    Wenn der User KEINE Datei ausgewählt hat. Dann kommt noch eine Fehlermeldung.
    Ist ja klar da er keinen Pfad findet.
    D.h. ich muss vorher die Variable $name überprüfen pb sie Leer ist wenn ja dann soll das
    Datei-Handling übergangen werden.

    Aber wie mache ich das?
    Ich habe schon

    - if $name = ""
    - if $name = " "
    - if (empty($name)

    Probiert, aber leider klappt das nicht. Kann mir da jemand helfen?

    Gruss
    dragonlord
     

  2. #2
    Avatar von Kyrius
    Kyrius Kyrius ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Beiträge
    218
    ich würde jetzt spontan dazu raten:
    PHP-Code:
    /* irgendwelcher Codemüll */
    if(isSet($file)) {
    //mach was mit der Datei
    }
    else {
    //sagste dem User mal, er soll gefälligst das Script richtig nutzen. So gehts jawohl nicht hier!

     
    optimistischer Code:
    Grundsätzlich keine Fehler erwarten
    if(erfolgreich) ... else ....
    pesimistischer Code:
    Grundsätzlich Fehler erwarten
    if(nicht erfolgreich) ... else ...
    realistischer Code:
    Ohne If-Else Abfrage grundsätzlich eine Fehlermeldung ausgeben

  3. #3
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    PHP-Code:
    if ($_FILES['bild_NA']['name'] != '') {
      
    // hochladen
    } else {
      
    // nicht hochladen

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

  4. #4
    dragonlord dragonlord ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    146
    if ($_FILES['bild_NA']['name'] != '') {
    Das ist gut. Nur wo setzte ich das hin. Ich blick da irgendwie nicht durch.
    Da kommen dann die gfanzen ELSE und } Klammer durcheiander.?
     

  5. #5
    dragonlord dragonlord ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    146
    Ich hab das jetzt irgendwie hingebastelt.

    Na ja, manchmal kriege ich echt einen Krampf an PHP...
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 16.10.08, 13:35
  2. Upload problem und noch fragen
    Von reddragon90 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 05.05.07, 22:26
  3. kleines Problem bei Bild-Upload
    Von evoleena im Forum PHP
    Antworten: 14
    Letzter Beitrag: 24.03.07, 20:54
  4. Upload..... Das alte Bild wird noch angezeigt
    Von Kurt Cobain im Forum PHP
    Antworten: 5
    Letzter Beitrag: 13.02.07, 21:35
  5. kleines Type upload prob
    Von ShinmA im Forum PHP
    Antworten: 5
    Letzter Beitrag: 21.04.05, 18:37