Bildupload in Mysql bringt Fehlermeldung

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

  • futzinator
    antwortet
    PHP-Code:
    echo "<img src=\"../bilder/".$adr['bild']."\">"
    Beim Speichern speicherst du ja schon den Bildnamen in die Datenbank (zB: Bild.jpg)

    move_uploaded_file hat voerher deine Datei vom Temp nach Ziel verschoben, sprich es liegt nicht mehr im Temp! Da du weisst wie die Datei heißt und du weißt wo sie liegt, ist es doch kein Problem sie anzusprechen.
    Zuletzt geändert von futzinator; 20.05.2005, 09:25.

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Hallo alle miteinander, jetzt nachdem ich die Eingabe gemeistert habe, habe ich Probleme, den Link wieder auszugeben.
    Die Eingabe erfolgt so

    if (!empty($_FILES["bild"]["tmp_name"] )) {
    $bild_name_neu = $last_id."_".$_FILES["bild"]["name"];
    move_uploaded_file($_FILES["bild"]["tmp_name"], "../bilder/".$bild_name_neu);


    Wie gebe ich es wieder aus?
    Hier ein Teil meines Ausgabescriptes, was bis auf die Bilder funktioniert.



    while ($adr = mysql_fetch_array($adressen_query)){

    ?>
    <tr>
    <td width=\"250\"><?=$adr['objekt']?></td>
    <td width=\"150\" ><?php
    if (isset($adr["link"]) && !empty($adr["link"])) {
    print '<a target="_blank" href="http://'.$adr["link"].'">Homepage</a>';
    }
    ?>
    </td>
    <td><?=$adr['text']?></td>
    <td width=\"60\">
    <? echo "<img src=\../bilder/".$bild_name_neu".$adr['bild']."\" />";?>
    </td>
    <td width=\"80\">
    leer
    </td>
    </tr>
    <?php
    }

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Hallo, Du hast ja recht, jetzt funktioniert es so wie gewünscht.
    Herzlichen Dank für Deine Bemühungen.

    Mathias

    Einen Kommentar schreiben:


  • futzinator
    antwortet
    Das kann so nicht funtionieren!

    schau dir nochmal den Code an den ich dir geändert habe!
    Wie willst du auf den Namen der Bilddatei zugreifen können, ohne $_FILES["bild"] zu verwenden? danach kannst du ganz einfach in die DB $_FILES["bild"]["name"] schreiben

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Hier noch einmal mein Code, es funktioniert zwar jetzt, also Bilder werden in das Verzeichnis geladen, aber in der Datenbank bleibt das Feld Bild leer.
    Hier mein abgeändertes Eintrgsscript noch einmal

    <form method="POST" action="save3.php" enctype="multipart/form-data">
    <table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
    <td width="50%" align="right">Objekt:</td>
    <td width="50%"><input type="text" name="objekt" size="20"></td>
    </tr>
    <tr>
    <td width="50%" align="right" valign="top">Link:</td>
    <td width="50%"><input type="text" name="link" size="20"></td>
    </tr>
    <td width="50%" align="right" valign="top">Bild:</td>
    <td width="50%"><input type="file" name="bild" size="20"></td>
    <tr>
    <td width="50%" align="right" valign="top">Text:</td>
    <td width="50%"><textarea rows="9" name="text" cols="28"></textarea></td>
    </tr>
    <tr>
    <td width="100%" align="right" colspan="2">
    <p align="center"><input type="submit" value="Abschicken" name="B1"></td>
    </tr>
    </table>
    </form>

    Die Datei save.php
    <?
    require("config.inc.php");
    ?>

    <?
    MYSQL_CONNECT($host, $usr, $pw) or die ( "Datenbankserver nicht erreichbar");
    MYSQL_SELECT_DB($db) or die ( "Datenbank nicht vorhanden");

    $eintrag = MYSQL_QUERY( "INSERT INTO freizeit ( `objekt` , `link` , `text` ,`bild`)VALUES('$objekt','$link','$text','$bild')");

    if ($bild != "")
    {
    $bild_name_neu = $last_id."_".$bild_name;
    move_uploaded_file($bild, "../bilder/".$bild_name_neu);
    }
    if ($eintrag) {
    echo "O.K. Eintrag erfolgt";
    }else{ echo "Fehler hat leider nicht geklappt."; }

    MYSQL_CLOSE();
    ?>

    Die Datei config.inc.php

    <?
    $host = "localhost"; //Datenbankserver
    $usr = "root"; //Benutzer
    $pw = ""; //Passwort
    $db = "nku"; //Datenbank Name
    ?>

    Einen Kommentar schreiben:


  • futzinator
    antwortet
    poste nochmal deinen Code bitte

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Hallo mittlerweile bin ich auch dahinter gekommen, momentan rätsele ich noch an einem neuen Fehler in Zeile 39. Ich denke mal eine Klammer ist falsch.

    Parse error: syntax error, unexpected '}' in D:\xampp\htdocs\testnk3\umgebung2\save.php on line 39

    Einen Kommentar schreiben:


  • futzinator
    antwortet
    Original geschrieben von karlmathias
    Hallo futzinator, zuerst einmal vielen Dank für Deine Mühe, leider bin ich erst jetzt zum testen gekommen.
    Leider funktioniert Dein Script auch nicht, es wird eine Fehlermeldung in Zeile 12 ausgegeben.
    Zeile 12: if (!empty($_FILES["bild"]["tmp_name"] ) {

    Hier die Fehlermeldung:
    Parse error: syntax error, unexpected ',', expecting ')' in D:\xampp\htdocs\testnk3\umgebung2\save.php on line 12

    Hast Du oder ein anderer eine Idee wie man den fehler abstellt?
    sorry habe da eine Klammer vergessen:
    Zeile 12: if (!empty($_FILES["bild"]["tmp_name"] )) {

    Einen Kommentar schreiben:


  • wahsaga
    antwortet
    Original geschrieben von karlmathias
    expecting ')'
    was könnte denn wohl expecting heißen ...?

    (ja, laut dict.leo.org heißt es "schwanger". aber du findest sicher noch eine andere, in diesem zusammenhang passendere bedeutung dafür ...)

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Hallo futzinator, zuerst einmal vielen Dank für Deine Mühe, leider bin ich erst jetzt zum testen gekommen.
    Leider funktioniert Dein Script auch nicht, es wird eine Fehlermeldung in Zeile 12 ausgegeben.
    Zeile 12: if (!empty($_FILES["bild"]["tmp_name"] ) {

    Hier die Fehlermeldung:
    Parse error: syntax error, unexpected ',', expecting ')' in D:\xampp\htdocs\testnk3\umgebung2\save.php on line 12

    Hast Du oder ein anderer eine Idee wie man den fehler abstellt?

    Einen Kommentar schreiben:


  • futzinator
    antwortet
    Hi!

    Erstmal benötigt deine Form: enctype="multipart/form-data" damit die Files auch mitgeschickt werden. Nach dem abschicken bekommst du dann ein array übergeben $_FILES["dateiname"] (gibs mal mit print_r aus, dann kommst gleich mit)

    anstatt copy empfehle ich dir move_uploaded_file zu nehmen und aus Sicherheitsgründen die Variabeln die du übergibst mit $_POST oder $_Get anzusprechen.

    hab deinen code mal etwas abgeändert so müsste es gehen:

    PHP-Code:
    <?

    if(!empty($_POST["Abschicken"])) { //Prüfen ob B1 gedrückt wurde

        mysql_connect($host, $usr, $pw) or die ( "Datenbankserver nicht erreichbar");
        mysql_select_db($db) or die ( "Datenbank nicht vorhanden"); 

        if (!empty($_FILES["bild"]["tmp_name"] ) {
        $bild_name_neu = $last_id."_".$_FILES["bild"]["name"];
        move_uploaded_file($_FILES["bild"]["tmp_name"], "bilder/".$bild_name_neu);
        $eintrag = mysql_query("
                                INSERT INTO
                                    freizeit
                                ( 
                                    objekt,
                                    link,
                                    text,
                                    bild
                                ) 
                                VALUES
                                (
                                '".$_POST["objekt"]."',
                                '".$_POST["link"]."',
                                '".$_POST["text"]."',
                                '".$bild_name_neu."'
                                )");
        }
            if ($eintrag) {
                echo "O.K. Eintrag erfolgt";
            } else {
                echo "Fehler hat leider nicht geklappt."; 
            } 
        }
        mysql_close();
    }
    ?>
    Hier die Eigabe:

    <form method="POST" action="save.php" enctype="multipart/form-data">
    <table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
    <td width="50%" align="right">Objekt:</td>
    <td width="50%"><input type="text" name="objekt" size="20"></td>
    </tr>
    <tr>
    <td width="50%" align="right" valign="top">Link:</td>
    <td width="50%"><input type="text" name="link" size="20"></td>
    </tr>
    <td width="50%" align="right" valign="top">Bild:</td>
    <td width="50%"><input type="file" name="bild" size="20"></td>
    <tr>
    <td width="50%" align="right" valign="top">Text:</td>
    <td width="50%"><textarea rows="9" name="text" cols="28"></textarea></td>
    </tr>
    <tr>
    <td width="100%" align="right" colspan="2">
    <p align="center"><input type="submit" value="Abschicken" name="B1"></td>
    </tr>
    </table>
    </form>
    hoffe geholfen zu haben ;-)
    Zuletzt geändert von futzinator; 13.05.2005, 22:31.

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Ich habe schon verschiedene Konfigurationen ausprobiert, ich weiß aber nicht, ob eventuell ein Fehler in meinem Script ist.
    Ich beschäftige mich erst seit ca 2 Wochen mit PHP und noch in der Lernphase und ich sitze manchmal Stunden an einem Fehler, der für euch ein Lacher ist.

    Einen Kommentar schreiben:


  • aimbot
    antwortet
    mach testausgaben

    Einen Kommentar schreiben:


  • karlmathias
    antwortet
    Was der Fehler bedeuten kann ist mir zwar klar, aber nicht ganz nachzuvollziehen.
    Die Bilddatei ist existent und der Pfad zum Bilderverzeichnis
    liegt im gleichen Ordner wie das Script und wir doch mit dieser Zeile definiert

    copy($bild, "bilder/".$bild_name_neu);

    Einen Kommentar schreiben:


  • aimbot
    antwortet
    No such file or directory in


    was könnte damit wohl gemeint sein?
    www.pons.de

    Einen Kommentar schreiben:

Lädt...
X