Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Abfrage ( HTML zeichen)

Einklappen

Neue Werbung 2019

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

  • PHP Abfrage ( HTML zeichen)

    Hallo liebes Forum,

    ich benötige nochmal eure Hilfe, Ich habe mit einem Youtube-Video ein guten Script erstellt, welcher genau macht, was ich will. . . . Naja fast

    in der Spalte "link" steht in der SQL-Datenbank folgender Inhalt: "<a href="http://deinlinkziel.de"><button>Klick!</button></a>"

    mit diesen Code:

    PHP-Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>PHP Abfrage</title>
    </head>
    <body>


    <?php
    //
    $server "xxxxx";
    $user "xxxx";
    $pass "xxxxxx";
    $dbname "xxxxx";
    $db = new mysqli($server,$user,$pass$dbname);
    if(
    $db->connect_error){
    die(
    "Verbindung fehlgeschlagen: " $db->connect_error);
    }
    $sql"SELECT * FROM category_products Right Join produkte on produkte.id = category_products.product_id WHERE produkte.id >0 LIMIT 18";
    $ergebnis $db->query("SET NAMES 'utf8'");
    $ergebnis $db->query($sql);
    if(
    $ergebnis->num_rows >0){
    echo 
    "<table><tr><th>ID</th><th>titel</th><th>preis</th><th>bild</th><th>bild2</th><th>Link</th>

    </tr>"
    ;
    while(
    $row $ergebnis->fetch_assoc()){
    echo 
    "<tr>";
    echo 
    "<td>" $row['id'] . "</td>";
    echo 
    "<td>" $row['titel'] . "</td>";
    echo 
    "<td>" $row['preis'] . "</td>";
    echo 
    "<td>" $row['bild'] . "</td>";
    echo 
    "<td>" $row['bild2'] . "</td>";
    echo 
    "<td>" $row['Link'] . "</td>";


    //
    //
    //
    echo "</tr>";
    }
    echo 
    "</table>";
    }else{
    echo 
    "Leider nichts gefunden";
    }
    $db->close();
    ?>


    </body>
    </html>

    zeigt er leider den wirklich den Link als Button an, ich möchte aber gern das in der Ausgabetabelle der komplette Code steht.quasi "<a href="http://deinlinkziel.de"><button>Klick!</button></a>" , wie kann ich das machen ?

    ich hoffe das war verständlich

    Danke für eure Hilfe.


    LG Sandra

  • #2
    Jag den String vor der Ausgabe durch die folgende Funktion:
    https://www.php.net/manual/de/functi...ecialchars.php

    PS: Jede Ausgabe in HTML sollte entsprechend escaped werden.

    Kommentar


    • #3
      Und bitte bieachte das EVA Prinzp! Kein DB-Connect in der Ausgabe (HTML) der hat da nichts verloren. https://php-de.github.io/jumpto/eva-prinzip/

      Und.. Info.. Statt:

      PHP-Code:
      $ergebnis $db->query("SET NAMES 'utf8'"); 
      Beser:
      PHP-Code:
      mysqli->set_charset("utf8"
      https://www.php.net/manual/de/mysqli.set-charset.php
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Zitat von Zeichen32 Beitrag anzeigen
        Jag den String vor der Ausgabe durch die folgende Funktion:
        https://www.php.net/manual/de/functi...ecialchars.php

        PS: Jede Ausgabe in HTML sollte entsprechend escaped werden.
        Oh mann, das habe ich nicht verstanden. . . .

        Kommentar


        • #5
          Du musst den Kontextwechsel zu PHP hin korrekt escapen, sonst reisst du dir da eine potentielle XSS Lücke auf. https://php-de.github.io/jumpto/kontextwechsel/
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Wäre jemand so lieb, und würde es an meinem Beispiel erklären?

            Kommentar


            • #7
              Hast du die Links gesehen? Da steht eigentlich alles drinnen.

              PHP-Code:
               htmlspecialchars($row['Link'], ENT_COMPAT"UTF-8") . 
              Das aber nicht nur bei Link, sonder bei allen! Kannst dir auch eine Funktion schreiben.
              PHP-Code:
              function html_esc($html) {
                  return 
              htmlspecialchars($htmlENT_COMPAT"UTF-8")

              Und es gibt altenrative Syntax, statt HTML Code in PHP Strings zu pressen und sinnlos durch den Parser zu jagen

              PHP-Code:
              <?php while ($row $ergebnis->fetch_assoc()): ?>
                  <tr>
                      <td><?= html_esc($row['id']) ?></td>
                      <td><?= html_esc($row['titel']) ?></td>
                      <td><?= html_esc($row['preis']) ?></td>
                      <td><?= html_esc($row['bild']) ?></td>
                      <td><?= html_esc($row['bild2']) ?></td>
                      <td><?= html_esc($row['Link']) ?></td>
                  </tr>
              <?php end while; ?>

              Und das EVA Prinzip oben bitte auch nicht vergessen. DB Connects/Verarbeitung hat in der HTML-Ausgabe (das A von EVA) nicht verloren.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Hier noch ein Lesetipp zu Kontextwechsel.

                Und anstatt
                PHP-Code:
                "SELECT * FROM 
                ist es immer besser alle Spalten aufzuführen, die man auch ausgeben will. Wenn du Mysql hast dann auch mit Backticks versehen.

                Kommentar


                • #9
                  Die Zeile:

                  HTML-Code:
                  <a href="http://deinlinkziel.de"><button>Klick!</button></a>
                  ist kein valides HTML....

                  Kommentar


                  • #10
                    Hallo Leute,

                    ich bin ein kleiner Anfänger - ich bin mir garnicht sicher, ob ich ein so ein Profi werden will, wie ihr.

                    Ich benötige nur diese einen Code für ein privates Projekt für mich und meine Mädels, quasi eine PHP Befehl für unsere Tanzschuhe.

                    Selbst die Hinweise von hausl ( und ich habe wirlich versucht das einzusetzen) hat irgendwie nicht geklappt.

                    Hat jemand Lust und wäre so lieb, mir vielleicht - dieses eine Mail - den Code umzuschreiben?

                    Liebe Grüße und vielen Dank


                    Sandra

                    Kommentar


                    • #11
                      Hat jemand Lust und wäre so lieb, mir vielleicht - dieses eine Mail - den Code umzuschreiben?
                      MOD: Verschoben von PHP-Einsteiger
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Ok, vielleicht ist es hier wirklich besser aufgehoben,

                        Kann mir jemand diesen Code so umbasteln?


                        LG

                        Sandra

                        Kommentar

                        Lädt...
                        X