Ergebnis 1 bis 9 von 9

Thema: Probleme mit Bilduploadscript

  1. #1
    Hauer
    Gast

    Standard Probleme mit Bilduploadscript

    Hallo.

    Habe hier ein Script, dass ich gerne als Grundlage für einen weiteren Ausbau verwenden möchte.

    Bei dem Script tun sich für mich ein paar Fragen und Fehler auf, die ich gerne verstehen und natürlich auch beseitigen möchte.

    Code:
    <form method="post" action="best_bilder.php" enctype="multipart/form-data">
    
    <?php
        $objekt = 'AS001';
        $num = 0;
        while($num < 10)
        {
            ?>
    <input type="hidden" name="item_id[]" value="<?php echo $objekt ?>" />
    <input type="file" id="myfile" name="userfile[]" size="40">
    
            <?php $num++;
        }
     ?>
    PHP-Code:
    error_reporting(E_ALL); #zeig alle Fehler 
    ini_set('display_errors''1'); 
                                
    require_once 
    '../inc/connect.inc.php';
       
    $link mysql_connect("localhost","root","") or die ("Keine Verbindung moeglich");
              
    mysql_select_db("tabelle") or die ("Die Datenbank existiert nicht");
                                    
    $upload_dir 'objekt_images/';                                                                         
                                                                                
        if(isset(
    $_POST['Preview']) ) {
        
        if(isset(
    $_FILES['userfile']['tmp_name']))
        {    
            for(
    $i=0$i count($_FILES['userfile']['tmp_name']);$i++)
            {
                if(!
    is_uploaded_file($_FILES['userfile']['tmp_name'][$i]))
                {
                    
    $messages[] = 'Keine Datei uploaded';
                }
                else
                {
                    if(@
    copy($_FILES['userfile']['tmp_name'][$i],$upload_dir.'/'.$_FILES['userfile']['name'][$i]))
                    {
                        
    $messages[] = $_FILES['userfile']['name'][$i].' uploaded';
                        
    $name[] = $_FILES['userfile']['name'][$i];
                        
    $id[] = $_POST['item_id'];
                        
                        
    function 
    prepare($name$id) {
        return 
    sprintf("'%s', '%s'",
               
    mysql_real_escape_string($name),
               
    mysql_real_escape_string($id));
    }

    $values array_map('prepare'$name$id); 
    $sql 'INSERT INTO photo (photo_filename, photo_item_id) VALUES (' implode('),('$values) . ')';  
    mysql_query($sql);

                    }
                    else
                    {
                        
    $messages[] = 'Uploading '.$_FILES['userfile']['name'][$i].' fehlgeschlagen';
                    }
                }
            }
        }

    Die Fehlerauswertung ist:

    Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\xampp\htdocs\backoffice\best_bilder.php on line 200

    =
    PHP-Code:
    mysql_real_escape_string($id)); 
    Fatal error: Cannot redeclare prepare() (previously declared in C:\xampp\htdocs\backoffice\best_bilder.php:197) in C:\xampp\htdocs\backoffice\best_bilder.php on line 197

    PHP-Code:
    function prepare($name$id) { 
    Ist der Fehler aus zeigle 197 nun verantwortlich für den Fehler in Zeile 200 ?

    Dieser besagt ja, dass er irgendwie sich selbst nicht überschreiben kann, was er ja auch eigentlich nicht soll!
    Hängt das mit dem Value $objekt aus dem Imput zusammen?

    Wenn ich 3 unterschiedliche Datein auswähle macht er folgendes:

    Die ersten 2 Dateien schreibt er in das Verzeichnis.
    Die erste Datei schreibt er mir in die DB aber ohne photo_item_id.

    Danke für etwas Hilfe.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Probleme mit Bilduploadscript

    $id scheint wohl ein array zu sein
    du deklarierst die Funktion in einer for-Schleife => das ist Käse! Und führt zu einem Fatal-Error.

  3. #3
    Hauer
    Gast

    Standard AW: Probleme mit Bilduploadscript

    OK, danke !

    Ich verstehe was du meinst, kann es aber aus eigenen Stücken nicht ändern, da mir das Wissen fehlt, kleiner Rückschlag meinerseits, aber was solls.

    Ergo, mach dich nicht an ein Script ran, wo dir das Grundverständnis fehlt.

    Aber eine Frage noch zuletzt, da ich aus dem Script das Ergebins nicht hervorbringen konnte, werden dort alle Dateien in eine Zelle gespreichert oder wird für jede Datei eine neue Zeile in der DB angelegt, das ist für mich nur deshalb wichtig, da ich ja berücksichtigen möchte, dass ich beim Zugriff auf die Dateien über eine ID oder etwas anderes Greifbarens gehen möchte, um die Dateien einem Datensatz zu zuordenen.

    D.h. ID (oder etwas ähnliches = alle dazugehörigen Bilder

    Danke vielmals.

  4. #4
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Probleme mit Bilduploadscript

    also ich versth dein script akut auch nich so wirklich, aber mal so als gedanke..
    wieso bilder in der datenbank speichern? bilder sind dateien und die speichert man für gewöhnlich in einem dateisystem und speichert in der datenbank lediglich den pfad zu entsprechendem bild

    da du nur eine datei hochladen kannst mit den bordmitteln von html, wirste auch nur einen datensatz in die datenbank schreiben
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  5. #5
    Hauer
    Gast

    Standard AW: Probleme mit Bilduploadscript

    Also das Script schreibt lediglich die ID, den Dateinamen und Zusatz in die DB und wenn man es erweitert, kann mann auch den Pfad mittels $upload_dir vor die Datei hängen.

    Daran liegt es nicht!

  6. #6
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Probleme mit Bilduploadscript

    Was ist denn nun das aktuelle Problem? Das Script ist 'etwas' verwirrend wird wohl zusätzlich noch an der Uhrzeit liegen.
    Geändert von Grevas (11.12.2010 um 02:14 Uhr)

  7. #7
    Hauer
    Gast

    Standard AW: Probleme mit Bilduploadscript

    Hallo !

    ich habe das Script jetzt mal auf das min. schrumpfen lassen um mich da langsam ranzutasten:

    PHP-Code:
    error_reporting(E_ALL); #zeig alle Fehler 
    ini_set('display_errors''1'); 
                                
    require_once 
    '../inc/connect.inc.php';
    $verbindung mysqli_connect($server$benutzer$passwort);
        
        if (
    $verbindung){
            
                        
    mysqli_select_db ($verbindung$datenbank);

                        
                            if(
    mysqli_error($verbindung)){
                                echo 
    'Fehler: Keine Verbindung zur Datenbank' mysqli_error($verbindung);
                                                    
                            }else{   
                                    
    $upload_dir 'objekt_images/';    
                                                                                                                                
                                    if(isset(
    $_POST['Preview']) ) {
                        
                                    if(isset(
    $_FILES['userfile']['tmp_name']))
                                    {    
                                            
                                        for(
    $i=0$i count($_FILES['userfile']['tmp_name']);$i++)
                                        {
                                            if(!
    is_uploaded_file($_FILES['userfile']['tmp_name'][$i]))
                                            {
                                                
    $messages[] = 'Keine Datei uploaded';
                                            }
                                            else
                                            {
                                                if(@
    copy($_FILES['userfile']['tmp_name'][$i],$upload_dir.'/'.$_FILES['userfile']['name'][$i]))
                                                {
                                                 
                                                echo 
    $messages[] = $_FILES['userfile']['name'][$i].' uploaded';
                                                    
                                                
    $name[] = $_FILES['userfile']['name'][$i];
                                                
    $id[] = $_POST['item_id'];
                                                
                                                foreach (
    $name as $value) {
                                                
    $sql "INSERT INTO photo (photo_filename) VALUES ('$value')";
                                                
    mysqli_query($verbindung$sql);
                                                                          }
                                                                            echo 
    $sql;
                                                }
                                                
                                            }
                                        }
                                    }
                                } 
                            }
                        } 
    Der Dateiupload klappt jetzt schon mal ganz gut. Nur mit dem schreiben in die DB happert es noch. Hier habe ich mich jetzt mal nur auf das Array $name konzentriert.

    Ich möchte gerne mal verstehen, warum er bei einem Upload 1 Datei in die Datenbank schreibt, so soll es ja auch sein und bei 2 oder mehr Uploads schreibt er mir
    jedesmal 2 x die erste Datei rein und dann folgen alle anderen einzeln ???

    Hier mal der Eintrag mit 3 Grafikdateien:

    Der $sql sieht eigentlich richtig aus:

    HTML-Code:
    01.png uploadedINSERT INTO photo (photo_filename) VALUES  ('01.png')02.png uploadedINSERT INTO photo (photo_filename) VALUES  ('02.png')03.png uploadedINSERT INTO photo (photo_filename) VALUES  ('03.png')
    DB:

    ID photo_filename photo_item_id 1 01.png 2 01.png 3 02.png 4 01.png 5 02.png 6 03.png

    Danke.
    Geändert von Hauer (11.12.2010 um 14:15 Uhr)

  8. #8
    Hauer
    Gast

    Standard AW: Probleme mit Bilduploadscript

    OK, sorry hab mysqli_query($verbindung, $sql); falsch geklammert....wie peinlich...

  9. #9
    Hauer
    Gast

    Standard AW: Probleme mit Bilduploadscript

    Hallo, ich habe noch mal eine Anschlussfrage:

    Ich habe nun 2 Tabellen. eine mit Daten und eine weitere mit Bildern.

    Nun möchte ich die Daten auslesen und die dazugehörigen Bilder anzeigen lassen.

    Ich habe es mal so versucht:

    PHP-Code:
    ....}else{
                                                        
                                                        if (!
    $sql "SELECT a.objektbezeichnung, a.plz, a.ort, a.preis, b.photo_filename AS topobjekt
                                                        FROM projekte AS a
                                                        INNER JOIN
                                                        photo AS b
                                                        ON a.objektnr = b.objektnr WHERE topobjekt='ja'"
    ){
                                                        
                                                                                                                
                                                        echo 
    '<style type="text/css" media="screen">#topobjekt { display:none; }</style>';

                                                        }else{
                                                        
                                                        
    $abfrage mysqli_query($verbindung$sql);
                        
                                                        while(
    $topobjekt mysqli_fetch_assoc($abfrage)){ .... 
    Die Objektschlüssel ist bei mir die Spalt objektnr, die in Beiden Tabellen vorkommt und auch die gleiche Konfigurtion hat.

    Irgendwie habe ich den INNER JOIN noch nicht ganz verstanden.

    Die Fehlermeldung ist:
    Code:
    mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\index.php on line 188
    Es sind zu jedem Datensatz mehrere Bilder vorhanden. Wie kann ich diese Abfrage lösen.

    Danke.

Ähnliche Themen

  1. Mail Dokument?? Probleme,probleme,probleme.........
    Von typisch-design im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 10.02.2010, 13:36
  2. probleme im ie6
    Von im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 21.07.2008, 13:05
  3. Probleme
    Von namco im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 13.12.2007, 18:18
  4. PHP Probleme
    Von DiamondDog im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 22.05.2006, 23:19
  5. Probleme mit NVU
    Von woercel im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 23.03.2006, 16:02

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •