Adam_the_1st Geschrieben 26. September 2005 Geschrieben 26. September 2005 Hallo liebe Forumteilnehmer Ich habe folgendes Problem: Auf einer Webseite möchte ich den Inhalt selber uploaden oder löschen können. Im selben Formular möchte ich auch ein Bild auf den Server hochladen können.Nach meinen Vorstellungen möchte ich das Bild in eine MySQL Datenbank laden. Der Code für das Uploadformular sieht folgendermassen aus: siehe Anhang "occasionen_admin.txt" Und die Funktion für die Bildverwaltung sieht so aus: siehe Anhang "bildverwaltung.txt" Um auch die Darstellung des "Gegen-Code" der eingegebenen Daten auf der entsprechenden Webseite zu verdeutlichen: siehe Anhang "occasionen.txt" Darstellung in der MySQL DB, Tabelle 'occasionen' : CREATE TABLE `occasionen` ( `id` mediumint(8) unsigned NOT NULL auto_increment, `rang` mediumint(8) unsigned NOT NULL default '0', `bild` varchar(36) NOT NULL default '', `titel` varchar(100) NOT NULL default '', `text` text NOT NULL, `preis` text NOT NULL, `status` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; Mein grosses Problem ist, wie bekomme ich das Bild in die Datenbank? Und wie lässt es sich entsprechend im Web auf der Darstellungsseite anzeigen?occasionen_admin.txtbildverwaltung.txtoccasionen.txt Zitieren
Schiller256 Geschrieben 26. September 2005 Geschrieben 26. September 2005 Mal eine Frage wieso willst du das Bild in der Datenbank speichern? Verschiebe es doch in einen Ordner Bilder gibt im einen eindeutigen Namen (z.B. ID) und Speicher diesen in der Datenbank. Wenn du es wirklich als Bild in die DB bekommen möchtest brauchst du ein Binär Feld wo du es rein schreiben kannst. So soll es gehen habe es bis jetzt noch nicht gemacht da es die Datenbank nur unnötig vergrößert und die Abfragen langsam macht wenn das Bild eine gewisse größe erreicht hat. Zitieren
robotto7831a Geschrieben 26. September 2005 Geschrieben 26. September 2005 Schau mal da. http://www.phpbuilder.com/columns/florian19991014.php3?page=3 Frank Zitieren
Adam_the_1st Geschrieben 26. September 2005 Autor Geschrieben 26. September 2005 Vielen Dank für deinen geschätzten Tipp, hatte Anfangs die selbe Lösung vorschweben. Im Moment bin ich aber noch ein "Newbaby" mit PHP und MySQL, lerne aber rasch ;-) . Wie würdest Du das anhand eines konkreten Beispiels am elegantesten lösen? Hans Zitieren
Schiller256 Geschrieben 26. September 2005 Geschrieben 26. September 2005 @ Adam_the_1st Wen meinst du jetzt? Zitieren
Adam_the_1st Geschrieben 26. September 2005 Autor Geschrieben 26. September 2005 Schau mal da. http://www.phpbuilder.com/columns/florian19991014.php3?page=3 Frank Frank, vielen Dank für deine geschätzte Hilfe. Habe ein paar nützliche Scripts gefunden, wie löse ich es aber, dass es automatisch eine ID mit fortlaufender Nummer generiert? Das Bild soll eine ID in der DB erhalten als Verweis zum hochgeladenen Bild im Ordner auf dem Webserver (\images\web\pics). Kannst du dir einmal die Text-Files mit dem Code im Anhang ansehen? Vielleicht kennst du eine Lösung oder weisst einen Tipp. Hans Zitieren
Adam_the_1st Geschrieben 26. September 2005 Autor Geschrieben 26. September 2005 @ Adam_the_1st Wen meinst du jetzt? Natürlich dich ;-) Zitieren
robotto7831a Geschrieben 26. September 2005 Geschrieben 26. September 2005 Die Frage habe ich nicht verstanden. Um automatisch eine neue ID zu erzeugen gibt es in MySQL die Option autoincrement. Frank Zitieren
Schiller256 Geschrieben 26. September 2005 Geschrieben 26. September 2005 Habe mal hier einen Ansatz zusammen geschrieben wie so ein Verschieben von einem Bild aussehen kann. So in der Art mache ich das in etwas natürlich sind da noch ein paar mehr Sicherheits abfragen bzw Überprüfungen drin aber das System wie es gehen soll wird klar. /* * des Formular zum senden des Bildes und der Daten wurde bereits gesendet */ //Daten in die Datenbank schreiben // INSERT ... //jetzt die letzte Autoincrement ID holen $i_id = @ mysql_insert_id(); if ($_FILES['datei']['tmp_name']) { // der Pfad zur Bilddatei $src_img = $_FILES['datei']['tmp_name']; $uploaddir = "./bilder/"; //Informationen zum Bild holen $a_bild_daten = getimagesize($src_img); // erstmal den Dateityp prüfen (*.gif, *.jpg, *.png) switch ($a_bild_daten[2]) { case 1 : $postfix = ".jpg"; break; case 2 : $postfix = ".jpg"; break; case 3 : $postfix = ".png"; break; case 13 : $postfix = ".swf"; break; } if (move_uploaded_file($src_img, $uploaddir."bild_".$i_id.$postfix)) { echo "Erfolg"; } else { echo "Fehler"; } } [/PHP] Zitieren
Adam_the_1st Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 Habe mal hier einen Ansatz zusammen geschrieben wie so ein Verschieben von einem Bild aussehen kann. So in der Art mache ich das in etwas natürlich sind da noch ein paar mehr Sicherheits abfragen bzw Überprüfungen drin aber das System wie es gehen soll wird klar. Vielen Dank für Deine Zeit und geschätzte Hilfe, ich werde das sicher hinbekommen. Im Moment kämpfe ich aber noch damit, d.h., die Seite wird nicht korrekt angezeigt so dass ich auch keine Tests damit machen kann. Mir fehlt noch ein wenig Übung. Aber wenn man bedenkt dass ich vor drei Wochen noch keine Zeile PHP Code schreiben konnte ;-) Der Code ist nun überarbeitet und sieht jetzt wie folgt aus (siehe Anhang "occasionen.txt"). Aber vielleicht siehst Du auf den zweiten Blick was ich nicht sehe...occasionen.txt Zitieren
Schiller256 Geschrieben 27. September 2005 Geschrieben 27. September 2005 Welche Fehlermeldung bekommst du denn? Das Hilft bei der Suche nach Fehlern sehr. Zitieren
Adam_the_1st Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 Wenn ich die Seite im Browser aufrufen möchte, erhalte ich folgende Fehlermeldung: Parse error: parse error, unexpected $ in /var/www/html/kleingeraete.ch/newweb/iframe/admin/occasionen.php on line 337 Im Moment suche ich danach, ob alle Klammern geschlossen sind... Zitieren
Adam_the_1st Geschrieben 27. September 2005 Autor Geschrieben 27. September 2005 Danke für Deine geschätzte Unterstützung, im Moment suche ich noch immer nach einer Lösung. Die Klammern sind es wohl nicht... Zitieren
Schiller256 Geschrieben 27. September 2005 Geschrieben 27. September 2005 ... Die Klammern sind es wohl nicht...Doch es Fehlen sogar 2 schließende Klammern. Mach dir das Leben nicht schwerer als es ist versuche die vielen einzelen PHP Teile zu minimieren. Wenn es größere html Blöcke gibt nutze vielleicht EOT. $s_inhalt = <<<EOT //Hier steht viel HTML oder anderer Text! EOT; [/PHP] Das vereinfacht die suche nach solchen Fehlern ungemein. Zitieren
Adam_the_1st Geschrieben 28. September 2005 Autor Geschrieben 28. September 2005 Doch es Fehlen sogar 2 schließende Klammern. Vielen Dank für Deinen geschätzten Tipp, habs bis heute x-mal versucht und leider ( ) nicht hinbekommen. Eine andere Lösung wäre, das Ganze nochmals sauber zu programmieren. Ich hab allerdings nur noch bis morgen um 7.00 Uhr Zeit Ich möchte mit diesem File-Upload eigentlich etwas simples: Nämlich ein PDF-Form und ein MP3-File auf den Server hochladen, danach im Frame unter dem entsprechenden Titel anclicken, das PDF ansehen und das MP3-File downloaden bzw. anhören können. Bisher habe ich noch keinen gescheiten Lösungsansatz gefunden.... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.