Ankündigung

Einklappen
Keine Ankündigung bisher.

Undefined index:

Einklappen

Neue Werbung 2019

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

  • Undefined index:

    Guten Tag,

    ich versuche gerade eine Bilddatei in meine Datenbank zuschreiben.
    Ich verwende XAMPP habe Apache und MYSQL am laufen und versuche nun folgenden Code auszuführen.

    Code:
    <?php
    
    include('connect.inc.php');
    
    
    
    if (isset($_POST["upload"])){
        $target = "images/".basename($_FILES["bildbutton"]["name"]);
    
    
        $image = $_FILES["bildbutton"]["name"];
        $text = $_POST["text"];
    
        $sql = "INSERT INTO images (image,text) values ('$image','$text')";
        mysqli_query($db, $sql);
    
    }
    
    
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Insert title here</title>
    
    <link rel="stylesheet" href="starter.css">
    
    </head>
    <div class="wrapper">
        <div class="container">
    
            <h1>Vokabelliste</h1>
            <input type="button" name="Verweis" value="Zurück"
                onClick="location.href='starter.html';">
    
    
            <div id="nav">
                <br>
                <div id="nav_wrapper">
    
                    <ul>
                        <li><a href="quiz.html">Quiz</a></li>
                        <li><a href="voc.html">Vokabeln</a></li>
                        <li><a href="stat.html">Statistic</a></li>
    
                    </ul>
                </div>
            </div>
    
    
    
            <form method="post" enctype="multipart/from-data">
            <input type="hidden" name="size" value="1000000" >
    
                Bilddatei:<br /> <input type="file" name="bildbutton" id="image">
                <p>
                <textarea name="text" rows="4" cols="40" placeholder="Name der Person/Bildes"></textarea>
    
                    <input type="submit" name="upload" value="Speichern">
            </form>
            </body>
    </html>
    <img alt="???" src="images.jpg">
    
    </body>
    </html>
    Starte diese Datei im Browser wähle eine Image Datei von meinem Rechner und schreibe einen Text und bekomme folgenden Fehler

    Notice: Undefined index: bildbutton in C:\xampp\htdocs\voc.php on line 8

    Notice: Undefined index: bildbutton in C:\xampp\htdocs\voc.php on line 11

    und ich weiß nicht woran es liegt das er mir da nichts erkennt.

    MFG

    Stefan

  • #2
    HTML-Code:
    enctype="multipart/from-data"
    Das muss form-data heissen.
    https://wiki.selfhtml.org/wiki/HTML/...t/Datei-Upload

    Du solltest zudem utf-8 verwenden anstatt
    <meta charset="ISO-8859-1">
    dazu musst du dann auch die Datei als utf-8 speichern.
    UTF-8 ist heutzutage Webstandard.

    Kommentar


    • #3
      Vielen Dank das hat soweit geklappt jetzt wollte ich das mir das Bild auch auf der Seite ausgegeben wird und habe es um folgenden Code erweitert
      Code:
      <?php
              $sql ="SELECT image FROM images";
              $result = mysqli_query($db, $sql);
              while ($row = mysqli_fetch_array($result)){
                  echo "<div id= img_div>";
                  echo "<img src='".$row["image"]."'>";
                  echo "<p>".$row["text"]."<p>";
                  echo "</div>";
              }
      
              ?>
      Bekomme aber nun wieder folgende Fehlermeldung

      Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\voc.php on line 60

      Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\voc.php on line 61

      Kommentar


      • #4
        Zitat von GIB-Student Beitrag anzeigen
        Bekomme aber nun wieder folgende Fehlermeldung

        Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\voc.php on line 60

        Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\voc.php on line 61
        http://php.net/mysqli-query

        http://php.net/mysqli-fetch-array

        Kommentar


        • #5
          Soweit bin ich auch schon gekommen leider weiß ichgar nicht wie ich das aufbauen soll hab auch einiges ausprobiert aus diesen links leider bin bin ich ein totaler anfänger und hab gar keine ahnung habe auch schon bei stack overflow mich informiert aber ich schaff es das nicht zu coden

          Kommentar


          • #6
            Was ist denn $db?

            Kommentar


            • #7
              Habe jetzt folgendermaßen umgeändert

              Code:
              $sql ="SELECT image FROM images";
                      $result = $db->query($sql);
                      while ($row = mysqli_fetch_array($result)){
                          echo "<div id= img_div>";
                          echo "<img src='".$row["image"]."'>";
                          echo "<p>".$row["text"]."<p>";
                          echo "</div>";
                      }
              nun hab ich nur noch den Fehler bei while ($row = mysqli_fetch_array($result)){
              $db ist meine Datenbank

              Kommentar


              • #8
                Zitat von GIB-Student Beitrag anzeigen
                $db ist meine Datenbank
                PHP möchte an der Stelle aber ein mysqli-Objekt haben.

                Zitat von GIB-Student Beitrag anzeigen
                nun hab ich nur noch den Fehler bei while ($row = mysqli_fetch_array($result)){
                PHP möchte an der Stelle aber ein mysqli_result-Objekt haben.

                Kommentar


                • #9
                  Habe eine Connection zu der DB hergestellt.
                  Hab es nun hinbekommen Bilder werden untereinander aufgelistet aber leider nicht angezeigt haha

                  Kommentar


                  • #10
                    Dann stimmt die Bild-URL nicht.

                    Kommentar


                    • #11
                      Dann zeige bitte zudem immer den Code, welcher den Fehler verursacht und wenn es eine Fehlermeldung gibt auch diese.
                      Du hast ihn vor dir, wir nicht.

                      Kommentar


                      • #12
                        Code:
                        <?php
                        
                                $db = mysqli_connect("localhost","root","","login");
                        
                                $sql ="SELECT image FROM images";
                                $result = $db->query($sql);
                                while ($row = mysqli_fetch_array($result)){
                                    echo "<div id= img_div>";
                                    echo "<img src='".$row["image"]."'>";
                                    //echo "<p>".$row["text"]."<p>";
                                    echo "</div>";
                                }
                        
                                ?>
                        Das ist der Code um das Bild auszugeben

                        Und dieses Bild wird mir angezeigt
                        Unbenannt.png
                        Ich habe die Bilder einmal in der Datenbank, gleichzeitig werden sie auch in einem Ordner gespeichert

                        Kommentar


                        • #13
                          Und jetzt schau dir mal den generierten Quellcode im Browser dazu an.

                          Zudem
                          PHP-Code:
                            if (isset($_POST["upload"])){
                              
                          $target "images/".basename($_FILES["bildbutton"]["name"]);
                                
                          $image $_FILES["bildbutton"]["name"];     $text $_POST["text"];
                               
                          $sql "INSERT INTO images (image,text) values ('$image','$text')";
                              
                          mysqli_query($db$sql);  } 
                          speicherst du zwar den Namen in der DB, aber legst das Bild ja nirgends ab, somit ist das Bild ja gar nicht verfügbar.

                          Kommentar


                          • #14
                            Hab das jetzt anderst gelöst aber keine ahnung ob das eine gute Lösung ist und zwar:
                            Ich speicher Bilder in einen extra Ordner und diesen lese ich aus und es wird mir einwandfrei im Browser angezeigt.

                            Jetzt die Frage ist es dan überhaupt nötig eine Tabelle in einer Datenbank für die Bilder zu haben?

                            Dazu erstmal warum ich das alles mache.

                            Ich habe ein Projekt bekommen das eine Art Quiz darstellen soll
                            Auf der Vokabelliste.html sollen alle Bilder angezeigt werden die abgespeichert sind. Das ist der Code den wir gerade besprechen.
                            Später soll dan wenn das Quiz gestartet wird alle Bilder nacheinander geladen werden und dazu soll man dan eine Frage beantworten, dann soll das näöchste Bild angezeigt werden.

                            Diese Funktion wollte ich mittels einer Datenbank abfragen, aber da ich das jetzt mit dem Ordner gelöst haben kann es dann wenn ich das Quiz code dan zu Problemen kommen?

                            Kommentar


                            • #15
                              Zitat von GIB-Student Beitrag anzeigen
                              Hab das jetzt anderst gelöst aber keine ahnung ob das eine gute Lösung ist und zwar:
                              Ich speicher Bilder in einen extra Ordner und diesen lese ich aus und es wird mir einwandfrei im Browser angezeigt.

                              Jetzt die Frage ist es dan überhaupt nötig eine Tabelle in einer Datenbank für die Bilder zu haben?
                              Keine Ahnung. Wenn es auch so geht brauchst du wohl die Bildernamen nicht in der DB speichern.

                              Zitat von GIB-Student Beitrag anzeigen
                              Später soll dan wenn das Quiz gestartet wird alle Bilder nacheinander geladen werden und dazu soll man dan eine Frage beantworten, dann soll das näöchste Bild angezeigt werden.
                              Benenne die Bilder nach der Quizfrage, dann hast du eine Zuordnung.
                              In etwa so: Frage 34 ->>> image_34.jpg





                              Kommentar

                              Lädt...
                              X