错误的字符串回显PHP

时间:2016-04-24 14:38:35

标签: php

<table id="profil_table">
<?php
$req_album = $bdd->prepare("SELECT * FROM album WHERE idUser = ?");
$req_album->execute(array($_GET['id']));
$cpt = 0;
do{
    echo "<tr>";
    for($i=0; $i<3; $i++){
    $resultat = $req_album->fetch();
       if(isset($resultat['nom'])){
       echo "<a href=\"album_page.php?id=".$_GET['id']."\"><td><img src=\"img/".$userinfo['pseudo']."/".$resultat['nom']."/couverture".".".$resultat['typePhotoCouv']."\"/>".$resultat['nom']."</td></a>";
       $cpt++;
    }else{
       echo "<td></td>";
    }
     }
     echo "</tr>";
     }while(isset($resultat['nom']));
if($cpt == 0){
    echo "<div id=\"vide\">Vous n'avez toujours pas publié d'album!</div>";
}
?>
</table>

您是否在if语句后看到我打印的内容:isset($resultat['nom'])

这就是打印出来的内容:

image1

&#34; a&#34;标签打印出来的PHP代码。这怎么可能呢?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

a元素不允许作为tr元素的直接子元素。 only allowed childrentdth个元素。发生的事情是,您的浏览器正在重新编辑生成的HTML,尽最大努力使其合法,因为它将您发送的HTML转换为内存中的真实DOM树。

您应该在浏览器中“查看来源”以查看实际生成的来源;您发布的视图可能是您的浏览器最终生成的内存中的DOM树。

解决方案是将a内的td元素移动。

答案 1 :(得分:0)

试试这个 将&lt; a&gt; 放在&lt; td&gt;

<table id="profil_table">
<?php
$req_album = $bdd->prepare("SELECT * FROM album WHERE idUser = ?");
$req_album->execute(array($_GET['id']));
$cpt = 0;
do{
    echo "<tr>";
    for($i=0; $i<3; $i++){
    $resultat = $req_album->fetch();
       if(isset($resultat['nom'])){
       echo "<td><a href=\"album_page.php?id=".$_GET['id']."\"><img src=\"img/".$userinfo['pseudo']."/".$resultat['nom']."/couverture".".".$resultat['typePhotoCouv']."\"/>".$resultat['nom']."</a></td>";
       $cpt++;
    }else{
       echo "<td></td>";
    }
     }
     echo "</tr>";
     }while(isset($resultat['nom']));
if($cpt == 0){
    echo "<div id=\"vide\">Vous n'avez toujours pas publié d'album!</div>";
}
?>
</table>