Bildupload in Mysql bringt Fehlermeldung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • futzinator
    replied
    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.
    Last edited by futzinator; 20-05-2005, 08:25.

    Leave a comment:


  • karlmathias
    replied
    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
    }

    Leave a comment:


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

    Mathias

    Leave a comment:


  • futzinator
    replied
    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

    Leave a comment:


  • karlmathias
    replied
    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
    ?>

    Leave a comment:


  • futzinator
    replied
    poste nochmal deinen Code bitte

    Leave a comment:


  • karlmathias
    replied
    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

    Leave a comment:


  • futzinator
    replied
    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"] )) {

    Leave a comment:


  • wahsaga
    replied
    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 ...)

    Leave a comment:


  • karlmathias
    replied
    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?

    Leave a comment:


  • futzinator
    replied
    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 ;-)
    Last edited by futzinator; 13-05-2005, 21:31.

    Leave a comment:


  • karlmathias
    replied
    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.

    Leave a comment:


  • aimbot
    replied
    mach testausgaben

    Leave a comment:


  • karlmathias
    replied
    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);

    Leave a comment:


  • aimbot
    replied
    No such file or directory in


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

    Leave a comment:

Working...
X