在PHP中使用大量HTML

时间:2015-06-26 15:06:44

标签: php html

我正在为我的网站制作登录功能。我正在使用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

3 个答案:

答案 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(模型 - 视图 - 控制器)框架如何帮助您提高知识水平。