ilch Forum » Allgemein » HTML, PHP, SQL,... » Bildendung auslesen und abspeichern

Geschlossen
  1. #1
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Moin,

    irgendwie will meine Bildendung noch nicht so wirklich in die Datenbank...

    Code: (original: rules.php, Anpassungen von mir: Bilderupload)
    <?php
    #   Copyright by: Kerim Yagmurcu
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    defined ('admin') or die ( 'only admin access' );
    
    $design = new design ( 'Admins Area', 'Admins Area', 2 );
    $design->header();
    include('include/includes/func/gallery.php');
    	
    	$path = "include/images/kfzwerkstatt";
    	if(!is_dir($path.$name)){
    			mkdir($path.$name,0777);
    	}
    $um = '';
    if (isset($_REQUEST['um'])) {
      $um = $_REQUEST['um'];
    }
    
    if (!empty($_POST['sub'])) {
    $kfzwname  = escape($_POST['kfzwname'], 'string');
    $kfzwbeschreibung = escape($_POST['kfzwbeschreibung'], 'string');
    $kfzwstr  = escape($_POST['kfzwstr'], 'string');
    $kfzwhnr  = escape($_POST['kfzwhnr'], 'integer');
    $kfzwhnrzusatz  = escape($_POST['kfzwhnrzusatz'], 'string');
    $kfzwplz  = escape($_POST['kfzwplz'], 'integer');
    $kfzwort  = escape($_POST['kfzwort'], 'string');
    $kfzwtelefon  = escape($_POST['kfzwtelefon'], 'string');
    $kfzwmobil  = escape($_POST['kfzwmobil'], 'string');
    $kfzwemail  = escape($_POST['kfzwemail'], 'string');
    $kfzwsite  = escape($_POST['kfzwsite'], 'string');
    $kfzwfax  = escape($_POST['kfzwfax'], 'string');
    $kfzwbild = $_FILES['bild'];
    $pid = db_result(db_query("SHOW TABLE STATUS FROM `". DBDATE ."` LIKE 'prefix_kfzwerkstatt'"),0,'Auto_increment');
    $data_maxsize = "1048576";
    	if(isset($_POST['sub'])){
    		if(!empty($kfzwbild['name'])){
    			
    			$dateityp = GetImageSize($kfzwbild['tmp_name']);
    			if($dateityp[2] == 0)
    		 	{
    				$fehler .= "<li>Bitte im Feld 'Bild' nur ein Bild im Gif bzw. jpg Format hochladen</li>";
    			}
    		}else{
    			$fehler .= "<li>Das Feld 'Bild' wurde nicht korrekt ausgefüllt!</li>";
    		}}
      if ( empty($_POST['sid']) ) {
    	$pid = db_result(db_query("SHOW TABLE STATUS FROM `". DBDATE ."` LIKE 'prefix_kfzwerkstatt'"),0,'Auto_increment');
    	$explode = explode(".",$kfzwbild['name']);
    	$count = count($explode)-1;
    	$endung = $explode[$count];
        db_query('INSERT INTO `prefix_kfzwerkstatt` (
    	kfzwname,
    	kfzwbeschreibung,
    	kfzwstr,
    	kfzwhnr,
    	kfzwhnrzusatz,
    	kfzwplz,
    	kfzwort,
    	kfzwtelefon,
    	kfzwmobil,
    	kfzwemail,
    	kfzwsite,
    	kfzwfax,
    	kfzwbild) 
    	VALUES 
    	( 
    	"'.$kfzwname.'",
    	"'.$kfzwbeschreibung.'",
    	"'.$kfzwstr.'",
    	"'.$kfzwhnr.'",
    	"'.$kfzwhnrzusatz.'",
    	"'.$kfzwplz.'",
    	"'.$kfzwort.'",
    	"'.$kfzwtelefon.'",
    	"'.$kfzwmobil.'",
    	"'.$kfzwemail.'",
    	"'.$kfzwsite.'",
    	"'.$kfzwfax.'",
    	"kfzwerkstatt_'.$pid.''.$endung.'" ) ' );
      } else {
        $sid = escape($_POST['sid'], 'integer');
        db_query('UPDATE `prefix_kfzwerkstatt` SET 
    	kfzwname = "'.$kfzwname.'",
    	kfzwbeschreibung = "'.$kfzwbeschreibung.'",
    	kfzwstr = "'.$kfzwstr.'",
    	kfzwhnr = "'.$kfzwhnr.'",
    	kfzwhnrzusatz = "'.$kfzwhnrzusatz.'",
    	kfzwplz = "'.$kfzwplz.'",
    	kfzwort = "'.$kfzwort.'",
    	kfzwtelefon = "'.$kfzwtelefon.'",
    	kfzwmobil = "'.$kfzwmobil.'",
    	kfzwemail = "'.$kfzwemail.'",
    	kfzwsite = "'.$kfzwsite.'",
    	kfzwfax = "'.$kfzwfax.'",
    	kfzwbild = "kfzwerkstatt_'.$sid.'.'.$endung.'"
    	WHERE id = "'.$sid.'"');
    	$bild_norm	= "include/images/kfzwerkstatt/".$pid."_kfzwerkstatt.".$endung;
      }
    }
    if (!empty($_GET['delete']) ) {
      $delete = escape($_GET['delete'], 'integer');
      db_query('DELETE FROM `prefix_kfzwerkstatt` WHERE id = "'.$delete.'" LIMIT 1');
    }
    
    if ( empty($_GET['sid']) ) {
      $row = array();
    	$row['sub'] = 'Eintragen';
    	$row['kfzwname'] = '';
    	$row['kfzwstr'] = '';
    	$row['kfzwhnr'] = '';
    	$row['kfzwhnrzusatz'] = '';
    	$row['kfzwplz'] = '';
    	$row['kfzwort'] = '';
    	$row['kfzwtelefon'] = '';
    	$row['kfzwmobil'] = '';
    	$row['kfzwemail'] = '';
    	$row['kfzwsite'] = '';
    	$row['kfzwfax'] = '';
    	$row['kfzwbild'] = '';
    	$row['kfzwbeschreibung'] =
    	$row['sid'] = '';
    } else {
    	$abf = 'SELECT kfzwname,kfzwbeschreibung,kfzwstr,kfzwhnr,kfzwhnrzusatz,kfzwplz,kfzwort,kfzwtelefon,kfzwmobil,kfzwemail,kfzwsite,kfzwfax,kfzwbild, id as sid FROM `prefix_kfzwerkstatt` WHERE id = "'.escape($_GET['sid'], 'integer').'"';
    	$erg = db_query($abf);
    	$row = db_fetch_assoc($erg);
    	$row['sub'] = '&Auml;ndern';
    }
    
    $clas = '';
    $tpl = new tpl ( 'kfzwerkstatt', 1);
    $tpl->set_ar_out($row,0);
    $erg = db_query('SELECT * FROM `prefix_kfzwerkstatt` ORDER BY id');
    while ($row = db_fetch_assoc($erg) ) {
      $clas = ($clas == 'Cmite' ? 'Cnorm' : 'Cmite' );
    	$row['class'] = $clas;
    	$tpl->set_ar_out($row,1);
    }
    $tpl->out(2);
    
    $design->footer();
    ?>


    in der DB wird das dann wie folgt abgespeichert:

    kfzwerkstatt.. <-- hier fehlt aber die Dateiendung.

    Hat jemand einen Tipp für mich, was da schief läuft?
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Huhu Versuch es mal so

    $explode = explode('.',$kfzwbild['name']);
        $count = count($explode)-1;
        $endung = escape( $explode[$count], 'string');


    Hoffe es geht bin hier nur mit Handy unterwegs. lächeln
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    ZitatZitat geschrieben von corian
    Huhu Versuch es mal so

    $explode = explode('.',$kfzwbild['name']);
        $count = count($explode)-1;
        $endung = escape( $explode[$count], 'string');


    Hoffe es geht bin hier nur mit Handy unterwegs. lächeln


    $explode = explode('.', $kfzwbild['name']);
    $endung = end($explode);


    Das gibt dir aber wirklich nur die Endung und nicht zwingend den Dateityp


    Zuletzt modifiziert von Pion am 21.11.2013 - 13:17:31
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Hmm... funktioniert beides noch nicht so wirklich...

    @Dominik: Ich kann count nicht übergeben, das muss als Variable passieren.

    @Corian: funzt leider auch nicht.
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    ZitatZitat geschrieben von CeeJay
    Hmm... funktioniert beides noch nicht so wirklich...

    @Dominik: Ich kann count nicht übergeben, das muss als Variable passieren.

    @Corian: funzt leider auch nicht.


    Ich hab nichts mit Count gemacht?^^

    Naja was steht den bei dir in "$kfzwbild['name']" drin?

    Wenn sowas drin steht "hallo.muh" gibt dir zb mein Code "muh" aus

    (es hat ein $ gefehlt, aber das wirst du ja erkannt haben^^)


    Zuletzt modifiziert von Pion am 21.11.2013 - 13:17:54
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    mir wird ein leerer String ausgegeben...

    -.- WTF?!!
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    ZitatZitat geschrieben von CeeJay
    mir wird ein leerer String ausgegeben...

    -.- WTF?!!


    Wann wird dir ein leerer String ausgegeben?
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    bei $kfzwbild['name']

    $kfzwbild = $_FILES('bild'); // Übergabe vom HTML Formular

    ZitatZitat geschrieben von Pion
    ZitatZitat geschrieben von CeeJay
    mir wird ein leerer String ausgegeben...

    -.- WTF?!!


    Wann wird dir ein leerer String ausgegeben?
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    php.net/manual/de/features.file-upload.post-method.php

    1. Ist das ein Array
    2. nicht mit () sondern []

    Schalt mal deine Fehlerunterdrückung aus. Normal gibt dir da PHP auch Fehler geben.
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Sorry habs natürlich mit [] stehen, hab den Code hier aber nicht hineinkopiert sondern getippt

    ZitatZitat geschrieben von Pion
    http://php.net/manual/de/features.file-upload.post-method.php

    1. Ist das ein Array
    2. nicht mit () sondern []

    Schalt mal deine Fehlerunterdrückung aus. Normal gibt dir da PHP auch Fehler geben.


    welche Fehlerunterdrückung?


    Zuletzt modifiziert von CeeJay am 21.11.2013 - 13:48:37
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    Dann mach doch mal ein

    var_dump($_FILES['bild']);


    Wenn das leer ist, dann schau mal die dein Input heißt und ob du den encoding am Formular dran hast
    1 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    CeeJay Hall Of Fame
    Registriert seit
    23.03.2007
    Beiträge
    2.425
    Beitragswertungen
    18 Beitragspunkte
    Super - jetzt hat es funktioniert!!!

    Es lag am form tag enctype="multipart/form-data" - den hatte ich gänzlich weggelassen grumml

    Vielen Dank Dominik!

    ZitatZitat geschrieben von Pion
    Dann mach doch mal ein

    var_dump($_FILES['bild']);


    Wenn das leer ist, dann schau mal die dein Input heißt und ob du den encoding am Formular dran hast
    Nichts ist so sicher, wie die Änderung.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

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

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten