我正在尝试创建一个表,如果您登录时在表列中使用文本,就会显示该表!所以我需要使用echo两次,我读到你需要使用while语句来完成这项工作!但它显示了整个while语句,而不仅仅是";三明治乐趣"。
if(isset($_SESSION["loggedin"])) {
echo "You are not logged in.";
} else {
echo "<!DOCTYPE html> <!-- 5 -->
<html>
<head>
<title>Index - Sandwich Fun™</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™";
}</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™</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™";
}?>
</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™</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™';
}
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™</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™';
}
?>
</th></tr>
<tr><td></td><td></td><td></td</tr>
<tr><td></td></tr>
</table>
</body>
</html>
通过这种方式,您的工作将更加有序,并且将使在html页面中插入php循环等变得更加容易。如果有人没有登录,它会简单地将他们发送回login.php,我知道你没有要求这样做,但我确实认为这会对你有所帮助。