我想使用while在echo中显示echo

  • 本文关键字:echo 显示 while php
  • 更新时间 :
  • 英文 :


我正在尝试创建一个表,如果您登录时在表列中使用文本,就会显示该表!所以我需要使用echo两次,我读到你需要使用while语句来完成这项工作!但它显示了整个while语句,而不仅仅是";三明治乐趣"。


if(isset($_SESSION["loggedin"])) {
echo "You are not logged in.";
} else {
echo "<!DOCTYPE html> <!-- 5 -->
<html>
<head>
<title>Index - Sandwich Fun&trade;</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<meta name="robots" content="noindex"> 
<style type="text/css">
<!--
.smorgass { position: absolute; top: 0; left: 0; width: 100%; }
table, th, td { border: 1px solid black; }
-->
</style>
</head>
<body>
<table height="500" class="smorgass">
<tr><th colspan="3">while ( 1 === 1 ) {
echo "Sandwich Fun&trade;";
}</th></tr>
<tr><td></td><td></td><td></td</tr>
<tr><td></td></tr>
</table>
</body>
</html>"; } ?>

我该怎么办?

您正在混淆php和html。while必须在php中完成。您使用<?php进入php并>退出。这样做要容易得多,否则会与报价等混淆

像这样的

<?php
if(isset($_SESSION["loggedin"])) {
echo "You are not logged in.";
} 
else {?>
<!DOCTYPE html> <!-- 5 -->
<html>
<head>
<title>Index - Sandwich Fun&trade;</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex"> 
<style type="text/css">
<!--
.smorgass { position: absolute; top: 0; left: 0; width: 100%; }
table, th, td { border: 1px solid black; }
-->
</style>
</head>
<body>
<table height="500" class="smorgass">
<tr><th colspan="3">
<?php
while ( 1 === 1 ) {
echo "Sandwich Fun&trade;";
}?>
</th></tr>
<tr><td></td><td></td><td></td</tr>
<tr><td></td></tr>
</table>
</body>
</html>
<?php }?>

您应该中断echo,然后插入while语句(或使用一些模板语言(:

if (isset($_SESSION["loggedin"])) {
echo 'You are not logged in.';
} else {
echo <<< HTML
<!DOCTYPE html> <!-- 5 -->
<html>
<head>
<title>Index - Sandwich Fun&trade;</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<meta name="robots" content="noindex"> 

<style type="text/css">
<!--

.smorgass { position: absolute; top: 0; left: 0; width: 100%; }

table, th, td { border: 1px solid black; }

-->
</style>
</head>
<body>

<table height="500" class="smorgass">
<tr><th colspan="3">
HTML;
while (1 === 1) {
echo 'Sandwich Fun&trade;';
}
echo <<< HTML
</th></tr>
<tr><td></td><td></td><td></td</tr>
<tr><td></td></tr>
</table>

</body>
</html>
HTML;
}

请注意您有无限循环


我建议使用HereDoc语法来减少"的逃逸地狱

为了更清晰有效地工作,我建议您这样做登录检查。把这个放在你的页面上方。

<?php
if (!isset($_SESSION["loggedin"])) {
//  ^ redirect to login if the variable is NOT set
header("Location: login.php");
}
?>
<html>
<head>
<title>Index - Sandwich Fun&trade;</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex"> 
<style type="text/css">
</head>
<body>
<table height="500" class="smorgass">
<tr><th colspan="3">
<?php
while (1 === 1) {
echo 'Sandwich Fun&trade;';
}
?>
</th></tr>
<tr><td></td><td></td><td></td</tr>
<tr><td></td></tr>
</table>
</body>
</html>

通过这种方式,您的工作将更加有序,并且将使在html页面中插入php循环等变得更加容易。如果有人没有登录,它会简单地将他们发送回login.php,我知道你没有要求这样做,但我确实认为这会对你有所帮助。

最新更新