Parse error: syntax error, unexpected 'Antworten' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\mw\Seiten\Fragen2.php on line 124

  • Moin ich habe gerade versucht das noch automatisch ein Link unter jeden Eintrag getragen wird , jedoch spuckt er mir dann diese Fehlermeldung:


    Parse error: syntax error, unexpected 'Antworten' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\mw\Seiten\Fragen2.php on line 124



    Quellcode:

    PHP
    1. <html> <head> <style> div { float: left; width:15%; text-align: center; } div5 { float: left; width:5%; text-align: center; } div3 { float: left; width:100%; text-align: center; } div2 { float: left; width:84%; text-align: center; } div4 { float: left; width:50%; height: 25%; text-align: center; } #header { background-image: url("Logo2.0.jpg") ; width: 100%; height: 90px; text-align: center; postition: fixed } #menue { float:right; width: 15%; margin: 5px; color: black; } li { text-color: yellow; list-style-type:square; } li:hover { background-color:green; list-style-type:square; } body { background-image: url("Hintergrund1.jpg") } </style> </head> <body> <div3 id="header"> <h1> Interroga </h1> </div3> <hr> <div2> <a href="FragenA-Z.php">Fragen A-Z</a> </div2> <div id="menue"> <ul> <li><h3><a href="Projekt2.php">Startseite</a></h3></li> <li><h3><a href="Fragen2.php">Fragen</a></h3></li> <li><h3><a href="Fragenstellen2.php">Fragen stellen</a></h3></li> <li><h3><a href="Impressum2.php">Impressum</a></h3></li> </ul> </div><?php $pdo = new PDO('mysql:host=localhost;dbname=htmlworld2', 'root', '');$statement = $pdo->prepare("SELECT COUNT(*) AS anzahl FROM gaestebuch WHERE deleted_at IS NULL");$statement->execute();$row = $statement->fetch();$anzahl_eintrage = $row['anzahl'];echo "$anzahl_eintrage gestellte Fragen<br><br>";  $seite = 1;if(isset($_GET['seite'])) { $seite = intval($_GET['seite']);} $beitraege_pro_seite = 10;$start = ($seite-1)*$beitraege_pro_seite; $statement = $pdo->prepare("SELECT * FROM gaestebuch WHERE deleted_at IS NULL ORDER BY id DESC LIMIT :start, :limit");$statement->bindParam(':start', $start, PDO::PARAM_INT);$statement->bindParam(':limit', $beitraege_pro_seite, PDO::PARAM_INT);$statement->execute();while($row = $statement->fetch()) { $frage = htmlentities($row['frage']); $text = nl2br(htmlentities($row['text'])); echo "<div4 style="border: 1px solid #000000;"> <div4 style=" padding: 5px; "><h4> Frage:<br></h4> $frage</a></div4> <div4 style="padding: 5px;"><h4>Erleuterung der Frage:<br></h4> $text</div4> <a href="Antworten.php">Antworten</a> </div4><br>"; } $anzahl_seiten = ceil($anzahl_eintrage / floatval($beitraege_pro_seite)); echo "<div5 align="center">";echo "<b>Seite:</b> ";for($a=1; $a <= $anzahl_seiten; $a++) { if($seite == $a){ echo " <b>$a</b> "; } else { echo " <a href="?seite=$a">$a</a> "; }}echo "</div5>"; ?> </body></html>


  • Hey,


    Dein Fehler entsteht (wie du ja an der Zeilenangabe unschwer erkennen kannst) In folgendem Stück:


    PHP
    1. echo "<div4 style="border: 1px solid #000000;">
    2. <div4 style=" padding: 5px; "><h4> Frage:<br></h4> $frage</a></div4>
    3. <div4 style="padding: 5px;"><h4>Erleuterung der Frage:<br></h4> $text</div4>
    4. <a href="Antworten.php">Antworten</a>
    5. </div4><br>";


    Warum? Ganz einfach: Du beginnst nach dem echo einen String, diesne leistest du mit doppelkten Anführungszeichen " ein, und einige Zeichen später, beendest du ihn wieder...
    Innerhalb eines Strings musst du entweder einfache Anführungszeichen ' nutzen, oder die doppelten escapen \"...
    Oder du benutzt für den PHP String einfache Anführungszeichen, dann kannst du darin doppelte Anführungszeichen einfach so benutzen, müsstest dann aber einfache verwenden...


    korrekt wäre also z.B.

    PHP
    1. echo '<div4 style="border: 1px solid #000000;">
    2. <div4 style=" padding: 5px; "><h4> Frage:<br></h4>'.$frage.'</a></div4>
    3. <div4 style="padding: 5px;"><h4>Erleuterung der Frage:<br></h4>'.$text.'</div4>
    4. <a href="Antworten.php">Antworten</a>
    5. </div4><br>';


    ungetestet, sollte aber so klappen...


    Aus irgendeinem grund hast du auch überall "div4" stehen...


    Beste Grüße
    Kanu