Bildupload in Mysql bringt Fehlermeldung

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

  • Bildupload in Mysql bringt Fehlermeldung

    Hallo,

    ich bin wieder mal auf Hilfe angewiesen.

    Ich versuche krampfhaft ein Eintragsscript zu schreiben, was aber das Bild nicht in die Datenbank einträgt sondern nur den Pfad.
    Ich habe schon ca 1 Stunde das Forum durchsucht und bin immer noch nicht schlauer.

    Mein Script liefert folgenden Fehler:
    Warning: copy(telefon2.gif) [function.copy]: failed to open stream: No such file or directory in D:\xampp\htdocs\testnk3\umgebung\savenews.php on line 14
    O.K. Eintrag erfolgt

    Danke schon mal im voraus
    Mathias


    Hier das Eintragsscript

    <?
    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','')");

    if ($bild != "")
    {
    $bild_name_neu = $last_id."_".$bild_name;
    copy($bild, "bilder/".$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">
    <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>

  • #2
    No such file or directory in


    was könnte damit wohl gemeint sein?
    www.pons.de
    MfG
    aim
    Lies mich jetzt!
    - OT-Tags-Liebhaber und BB-Code-Einrücker -

    Kommentar


    • #3
      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);

      Kommentar


      • #4
        mach testausgaben
        MfG
        aim
        Lies mich jetzt!
        - OT-Tags-Liebhaber und BB-Code-Einrücker -

        Kommentar


        • #5
          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.

          Kommentar


          • #6
            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, 21:31.

            Kommentar


            • #7
              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?

              Kommentar


              • #8
                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 ...)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  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"] )) {

                  Kommentar


                  • #10
                    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

                    Kommentar


                    • #11
                      poste nochmal deinen Code bitte

                      Kommentar


                      • #12
                        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
                        ?>

                        Kommentar


                        • #13
                          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

                          Kommentar


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

                            Mathias

                            Kommentar


                            • #15
                              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
                              }

                              Kommentar

                              Lädt...
                              X