Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Variable in escapten HTML Code

Einklappen

Neue Werbung 2019

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

  • PHP Variable in escapten HTML Code

    Hi,
    ich bin neu in diesem Forum und habe direkt eine Frage:
    und zwar die warscheinlich am häufigsten gestellte... Wieso funktioniert dieser Code nicht ??? DD

    Mir wird "syntax error, unexpected '$aN' (T_VARIABLE)" angezeigt und das es sich hierbei wahrscheinlich um ein Simikolon handelt ist mir auch klar...
    Doch wo sollte ich in einem escapten Code ein solches setzen ?

    PHP-Code:
    <?php
    $pdo 
    = new PDO('mysql:host=localhost;dbname=Data''root''');

    $sql "SELECT Artikel_Name, Artikel_Fach, Artikel_Text FROM artikel";
    foreach (
    $pdo->query($sql) as $row) {
       echo 
    $row['Artikel_Name']." ".$row['Artikel_Fach']."<br />";
       echo 
    $row['Artikel_Text']."";

    $aN =['Artikel_Name'];
    $aF =['Artikel_Fach'];
    $aT =['Artikel_Text'];

    echo 
    "<div class="row">
      <div class="
    column">
        <div class="
    card">
          <img src="
    /w3images/team1.jpg" alt="Jane" style="width:100%">
          <div class="
    container">
            <h2>
    "
    $aN"
             </h2>
            <p class="
    title">CEO & Founder</p>
            <p>Some text that describes me lorem ipsum ipsum lorem.</p>
            <p>example@example.com</p>
            <p><button class="
    button">Contact</button></p>
          </div>
        </div>
      </div>

    "
    ;
    }
    ?>
    PS: ich bin mir nicht sicher wie das mit den Forenregeln aussieht... Ich hoffe ich bin hier richtig und belässtige keinen mit dummen Fragen

    LG

  • #2
    PHP-Code:
    $aN =['Artikel_Name']; 
    Hier weisst du der Variablen ein Array zu mit einem Feld. Lass dir das mal ausgeben mit var_dump($aN), dann siehst du es.

    Auch gleich der nächste Fehler mit angesprochen:
    PHP-Code:
    echo "<div class="row"> 
    Ergibt <div class=
    weil da das geöffnete doppelte Anführungszeichen das Ende markiert.
    Wenn du innerhalt von Anführungszeichen diese verwenden willst, dann musst die maskieren mit einem \

    oder du wechselt die Anführungszeichen von einfachen zu doppelten oder umgekehrt.
    PHP-Code:
    echo '<div class="row">' 
    Dann kannst du aber keine Variablen mehr direkt dort reinschreiben, wie hier
    PHP-Code:
    "$aN
    Mache es dann so
    PHP-Code:
    echo 'test ' $var 'ist "perfekt" ' 
    Wenn du Variablen in HTML ausgibst müssen diese auch immer maskiert werden. Dafür gibt es die Funktion htmlspecialchars.

    Kommentar


    • #3
      Ich glaube ich hab mich ein bisschen Falsch ausgedrückt...
      und so ein paar Logikfehler mit eingebaut...
      wie man sieht werden oben mit echo $row['Artikel_Name'].... die Werte aus einer Tabelle ausgegeben... wie bekomme ich es jetzt hin das diese Werte auch in den unteren Zeilen im escapten Code stehen bei: "Artikel_Name"/ "Artikel_Fach"/ "Artikel_Text"

      PHP-Code:
      <?php
      $pdo 
      = new PDO('mysql:host=localhost;dbname=Data''root''');

      $sql "SELECT Artikel_Name, Artikel_Fach, Artikel_Text FROM artikel";
      foreach (
      $pdo->query($sql) as $row) {
         echo 
      $row['Artikel_Name']." ".$row['Artikel_Fach']."<br />";
         echo 
      $row['Artikel_Text']."";

      $aN =['Artikel_Name'];
      $aF =['Artikel_Fach'];
      $aT =['Artikel_Text'];




      echo 
      "<div class="row">
        <div class="
      column">
          <div class="
      card">
            <img src="
      /w3images/team1.jpg" alt="Jane" style="width:100%">
            <div class="
      container">
              <h2>

      "
      Artikel_Name"

               </h2>
              <p class="
      title">


              </p>
              <p>

      "
      Artikel_Fach"

              .</p>
              <p>

      "
      Artikel_Text"

              </p>
              <p><button class="
      button">Contact</button></p>
            </div>
          </div>
        </div>

      "
      ;
      }
      ?>

      Kommentar


      • #4
        Beispiel
        PHP-Code:
        <?php
        error_reporting
        (-1);
        ini_set('display_errors'1);

        header('Content-Type: text/html; charset=utf-8');

        /* Datenbankverbindung anpassen */
        $dsn  'mysql:dbname=test;host=localhost;charset=utf8';
        $user 'root';
        $pass '';
        $options = [
            
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            
        PDO::ATTR_EMULATE_PREPARES => false
        ];
        $pdo = new PDO($dsn$user$pass$options);

        $sql "SELECT `name`, `fach`, `text` FROM `artikel`";
        $sth $pdo->query($sql);
        $result $sth->fetchAll();;

        /* Ab hier eforlgt die Ausgabe */
        ?>

        <!DOCTYPE html>
        <html lang="de">
        <head>
        <title>Test</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="styles/mainstyle.css">

        </head>
        <body>
        <?php foreach ($result as $row): ?>
        <div class="card">
              <img class="person" src="/w3images/team1.jpg" alt="Jane">
              <div class="container">
                    <h2><?= htmlspecialchars($row['name']); ?>
                    </h2>
                    <p class="title"> </p>
                    <p><?= htmlspecialchars($row['fach']); ?></p>
                    <p><?= htmlspecialchars($row['text']); ?></p>
                    <button class="button">Kontakt</button>
              </div>
            </div>
        </div>
        <?php endforeach; ?>
        </body>
        </html>

        Kommentar

        Lädt...
        X