Ankündigung

Einklappen
Keine Ankündigung bisher.

Über PHP Seite Zeile in mySQL DB einfügen

Einklappen

Neue Werbung 2019

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

  • merve
    hat ein Thema erstellt Über PHP Seite Zeile in mySQL DB einfügen.

    Über PHP Seite Zeile in mySQL DB einfügen

    Hallo,

    ich habe in meinem Studienbuch das Beispiel in die bereits vorhandene Datenbanktabelle "News" über die Maske einer Webseite neue Datensätze hinzuzufügen. Ich arbeite lokal auf meinem Rechner, auf dem XAMPP installiert ist und Apache & mySQL gerade laufen.

    Das ist der COde:
    PHP-Code:
    <html>
    <head></head>
    <body>
        <?php
        
    echo "
            <h2>Bitte geben Sie die News ein</h2>\n
            <form method-post action="
    newseinfuegen.php">
            <table bgcolor="
    #DDDDDD" cellpadding=5>
            
    <tr><td>Titel:</td>
            <
    td><textarea rows-1 cols-60 name="titel">
            </
    textarea> </td></tr>
            <
    tr><td>Vorspann: </td>
            <
    td><textarea rows-3 cols-60 name="vorspann">
            </
    textarea> </td></tr>
            <
    tr><td>Inhalt: </td>
            <
    td><textarea rows-5 cols-60 name="inhalt">
            </
    textarea></td></tr>
            <
    tr><td>Ort: </td>
            <
    td><textarea rows-1 cols=60 name="ort">
            </
    textarea></td></tr>
            <
    tr><td>Autor: </td>
            <
    td><textarea rows-1 cols=60 name="autor">
            </
    textarea></td></tr>
            </
    table><BR>
            
    ";
        //Abbruch Button
        echo "
            
    <button name="back" type="button"
            
    onclick="window.location.href='news.php'"
            
    value="Zurück zur Liste">
            <
    img src="./img/trash-bin.png"
            
    border=/> abbrechen </a>
            </
    button>
            
    ";
        //EinfügeButton
        echo "
            
    <button name="insert" type="submit" value="einfügen">
            <
    img src="./img/pencil-tool.png" border=/> einfügen </a>
            </
    button>
            
    ";
        echo "
    </form>";
        if (strlen(@
    $_POST['titel ']) > 0) {
            //Datenbankabfrage erstellen
            
    $sql = "Insert into news ";
            
    $sql . " (TitelVorspannInhaltOrtDatumAutor)";
            
    $sql . " values ('";
            $sql .=  $_POST['
    titel'] . "','";
            $sql .=  $_POST['
    vorspann'] . "','";
            $sql .=  $_POST['
    inhalt'] . "''";
            $sql .=  $_POST['
    ort'] . "','";
            $sql .=  date("Y-m-d") . "'
    '";
            $sql .=  $_POST['
    autor'] . "')";
            //Aufbau der Verbindung
            
    $db_host = "localhost";
            
    $db_name = "kundendatenbank";
            
    $db_user = "root";
            
    $db_pw = "";
            // Aufbau der Verbindung
            
    $verbindung = new mysqli($db_host$db_user$db_pw$db_name);
            
    $verbindung->set_charset("utf8"); // Zur richtigen Darstellung von Umlauten
            // Datenbankabfrage gegen die DB absetzen
            
    $res = $verbindung->query($sql) or
                die("
    Konnte die Daten nicht einfuegen");
        }
        ?>
    </body>
    </html>
    und das ist der Screenshot zu der Maske:

    news_insert.PNG

    Leider kommt der neue Eintrag nicht bei der DB an.. Seht ihr woran das liegen könnte?

  • hellbringer
    antwortet
    1. Es wird das EVA-Prinzip nicht eingehalten. Datenbankabfragen haben inmitten der HTML-Ausgabe nichts verloren.

    2. Der Kontextwechsel nach SQL wird nicht beachtet. Werte dürfen nicht einfach so in SQL-Code eingefügt werden. (siehe mysqli_real_escape_string())

    3. Das Error-Reporting von mysqli wird nicht aktiviert, somit werden Fehler bei der Datenbankabfrage nicht gemeldet. (siehe mysqli_report())

    4. Der HTML-Code sieht aus wie vor 25 Jahren. Man missbraucht heutzutage keine HTML-Tabellen mehr für ein Formular-Layout.

    Einen Kommentar schreiben:

Lädt...
X