Wenn kein Bild ausgewählt ist wird nicht in die Datenbank übertragen

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

  • Wenn kein Bild ausgewählt ist wird nicht in die Datenbank übertragen

    Hallo,

    der Titel verrät schon das Hauptproblem, ich werde hier alles ausführlich erläutern: Dieser Thread bezieht sich auf das Script "Professioneller Kleinanzeigenmarkt V2" den ich vor rund einem Jahr bei ISD Genthin gekauft habe, und gerade erst vor wenigen Wochen auf den Webspace aufgespielt habe.
    Wenn eine Anzeige erstellt wird, und kein Bild eingefügt wird, wird bei klick auf den Button absenden das Eingabeformular gelöscht, aber es wird keine Anzeige erstellt. Sobalt ein Bild von der Festplatte ausgewählt wurde, funktioniert alles perfekt.

    Hier der original Code (aus der php-Datei, die ich denke die Anzeige zu erstellen):

    Code:
    <?php
    session_start();
    error_reporting(0);
    
        if(empty($_FILES['file']['tmp_name']))
        { 
            header('Location: 2create.php?k1='.$_POST['kate1'].'&k2='.$_POST['kate2'].'&k3='.$_POST['kate3'].'&k4='.$_POST['kate4'].''); die; 
        }
        
        include "inc/db.php";
        include "inc/photo.php";
    
        $db  = new db();
        $sdk = new photohost();
    
        $photo = uniqid();
        
        if(!empty( $_FILES['file']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_1', 'file');
            $photo1 = $photo . '_1';
        }
        
        if(!empty( $_FILES['file1']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_2', 'file1');
            $photo2 = $photo . '_2';
        }
        
        if(!empty( $_FILES['file2']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_3', 'file2');
            $photo3 = $photo . '_3';
        }
        
        if(!empty( $_FILES['file3']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_4', 'file3');
            $photo4 = $photo . '_4';
        }
        
        if(!empty( $_FILES['file4']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_5', 'file4');
            $photo5 = $photo . '_5';
        }
        
        if(!empty( $_FILES['file5']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_6', 'file5');
            $photo6 = $photo . '_6';
        }
    
    #->add::DB
    
    
    $getOrt  = $db->query('SELECT geo_ort FROM geo WHERE geo_plz = "'.$_POST['plz'].'"');
    $getOrt2 = $db->fetch_assoc($getOrt);
    
    $ort = $getOrt2['geo_ort'];
    
    $db->query('INSERT INTO produkte SET
        titel = "'.htmlspecialchars($_POST['titel']).'",
        preis = "'.$_POST['preis'].'",
        bild  = "'.$photo1.'",
        bild2  = "'.$photo2.'",
        bild3  = "'.$photo3.'",
        bild4  = "'.$photo4.'",
        bild5  = "'.$photo5.'",
        bild6  = "'.$photo6.'",
        postleitzahl = "'.$_POST['plz'].'",
        erstellung = "'.time().'",
        kategorie = "'.$_POST['kate1'].'",
        beschreibung = "'.htmlspecialchars($_POST['beschreibung']).'",
        anzeigeart = "'.$_POST['type'].'",
        anzeigeart2 = "'.$_POST['mtype2'].'",
        preisart = "'.$_POST['geldart'].'",
        strasse = "'.$_POST['strasse'].'",
        hausnummer = "'.$_POST['nummer'].'",
        telefon = "'.$_POST['telefon'].'",
        stadt = "'.$ort.'",
        galerie = "0",
        topanzeige = "0",
        highlightanzeige = "0",
        unterkategorie = "'.$_POST['kate2'].'",
        unterkategorie1 = "'.$_POST['kate3'].'",
        unterkategorie2 = "'.$_POST['kate4'].'",
        uid = "'.$_SESSION['login'].'"
    ');
    
    ?>
    
    <meta http-equiv="refresh" name="content-type" content="0; URL=itm<?php echo mysql_insert_id(); ?>" />
    Nun dachte ich, ich könne einfach nach dem ersten Bild eine else-Anweisung einfügen, um ein von mir zuvor in das root-Verzeichnis hochgeladene Platzhalterbild aufzurufen:

    Code:
    else {
            echo "<img src='http://kleinanzeigen.3bid.de/nopic.gif' />";
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_1', 'file');
            $photo1 = $photo . '_1';
        }
    Zusammen sieht das dann so aus:

    Code:
    <?php
    session_start();
    error_reporting(0);
    
        if(empty($_FILES['file']['tmp_name']))
        { 
            header('Location: 2create.php?k1='.$_POST['kate1'].'&k2='.$_POST['kate2'].'&k3='.$_POST['kate3'].'&k4='.$_POST['kate4'].''); die; 
        }
        
        include "inc/db.php";
        include "inc/photo.php";
    
        $db  = new db();
        $sdk = new photohost();
    
        $photo = uniqid();
        
        if(!empty( $_FILES['file']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_1', 'file');
            $photo1 = $photo . '_1';
        }
        else {
            echo "<img src='http://kleinanzeigen.3bid.de/nopic.gif' />";
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_1', 'file');
            $photo1 = $photo . '_1';
        }
        
        if(!empty( $_FILES['file1']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_2', 'file1');
            $photo2 = $photo . '_2';
        }
        
        if(!empty( $_FILES['file2']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_3', 'file2');
            $photo3 = $photo . '_3';
        }
        
        if(!empty( $_FILES['file3']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_4', 'file3');
            $photo4 = $photo . '_4';
        }
        
        if(!empty( $_FILES['file4']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_5', 'file4');
            $photo5 = $photo . '_5';
        }
        
        if(!empty( $_FILES['file5']['tmp_name'] )){  
            $sdk->upload('gewinn', 600, 160, 60, 'upload', $photo . '_6', 'file5');
            $photo6 = $photo . '_6';
        }
    
    #->add::DB
    
    
    $getOrt  = $db->query('SELECT geo_ort FROM geo WHERE geo_plz = "'.$_POST['plz'].'"');
    $getOrt2 = $db->fetch_assoc($getOrt);
    
    $ort = $getOrt2['geo_ort'];
    
    $db->query('INSERT INTO produkte SET
        titel = "'.htmlspecialchars($_POST['titel']).'",
        preis = "'.$_POST['preis'].'",
        bild  = "'.$photo1.'",
        bild2  = "'.$photo2.'",
        bild3  = "'.$photo3.'",
        bild4  = "'.$photo4.'",
        bild5  = "'.$photo5.'",
        bild6  = "'.$photo6.'",
        postleitzahl = "'.$_POST['plz'].'",
        erstellung = "'.time().'",
        kategorie = "'.$_POST['kate1'].'",
        beschreibung = "'.htmlspecialchars($_POST['beschreibung']).'",
        anzeigeart = "'.$_POST['type'].'",
        anzeigeart2 = "'.$_POST['mtype2'].'",
        preisart = "'.$_POST['geldart'].'",
        strasse = "'.$_POST['strasse'].'",
        hausnummer = "'.$_POST['nummer'].'",
        telefon = "'.$_POST['telefon'].'",
        stadt = "'.$ort.'",
        galerie = "0",
        topanzeige = "0",
        highlightanzeige = "0",
        unterkategorie = "'.$_POST['kate2'].'",
        unterkategorie1 = "'.$_POST['kate3'].'",
        unterkategorie2 = "'.$_POST['kate4'].'",
        uid = "'.$_SESSION['login'].'"
    ');
    
    ?>
    
    <meta http-equiv="refresh" name="content-type" content="0; URL=itm<?php echo mysql_insert_id(); ?>" />
    Habe ich bei meinem Code totalen Bockmist verursacht? Bin leider auch nur ein "Selfmade"-PHPler . Also nur so ab und zu mal etwas ändern, deshalb komme ich einfach nicht drauf .

    Für Tipps zur Lösung, oder sogar eine fertige Lösung bin ich euch schon jetzt sehr dankbar.

    mfg
    Hugo

  • #2
    Der ganze Code ist eigentlich eine kleine Katastrophe und voller Sicherheitslücken. Hier wurden die Kontextwechsel konsequent ignoriert. Ich hoffe, der Code läuft auf keinem Produktivserver, der vielleicht gar noch im Internet hängt.

    Kommentar

    Lädt...
    X