我正在为我的网站制作登录功能。我正在使用PHP来检查用户是否已登录。如果是,我想显示正常的网站,如果没有,我只想用登录按钮显示网站的一部分。
如何在不需要echo
PHP内部的所有html的情况下执行此操作?
这是我的代码:
//conect to database
//header & navigation
<?php
if(!isset($_SESSION['steamid'])) {
//user not logged in
echo "</br>";
steamlogin(); //login button
} else {
//user is logged in
//all the code for normal website
//(code includes HTML, JS, PHP)
}
?>
//footer
答案 0 :(得分:2)
<?php
if(!isset($_SESSION['steamid'])) {
//user not logged in
echo "</br>";
steamlogin(); //login button
} else {
?>
//user is logged in
//all the code for normal website
//(code includes HTML, JS, PHP)
<?php
}
?>
你可以在else之后关闭php标签并在之后包含普通的html,然后再次启动php标签来呈现php代码
答案 1 :(得分:1)
只需关闭if语句中的php标记,如:// conect to database //标题&amp;导航
<?php
if(!isset($_SESSION['steamid'])) {
//user not logged in
echo "</br>";
steamlogin(); //login button
} else {
//user is logged in
//all the code for normal website
//(code includes HTML, JS, PHP)
?>
<!-- html code -->
<?php
}
?>
// footer
答案 2 :(得分:0)
简短的回答是关注与模板的分离。
所以基本上完成所有逻辑(PHP)(在输出任何HTML之前):
<?php
// logic that works out if user is logged in, generating variables to use later
// ...
$logged_in = (isset($_SESSION['steamid'])) ? $_SESSION['steamid'] : null;
$username = (isset($_SESSION['steamuser'])) ? $_SESSION['steamuser'] : null; // just for example
?>
...然后当您执行HTML模板(仍然需要.php
个文件以便处理PHP标记,即welcome.php
)时,您只需将它们包装在这样的条件下:
<?php if ($logged_in): ?>
<h1>Welcome <?php echo $username; ?></h1>
<?php else: ?>
<h1>Welcome, please login.</h1>
<?php endif; ?>
棘手的一点是组织文件,因为您无疑希望在整个网站上重复使用您的身份验证检查。因此,您需要了解包含,您甚至可以了解MVC(模型 - 视图 - 控制器)框架如何帮助您提高知识水平。