在PHP中打印问题

时间:2015-07-29 15:25:07

标签: php html printing

当我运行此代码时:

<html>
    <head>
    </head>
    <body>
    <ul>
        <li>
            <?php
                if(isset($_COOKIE["username"])){

                    print "Hello, ";
                }
                elseif(isset($_SESSION["userId"])){

                    print "Hello, ";
                }
                else{
                    print "<p><a href='logInForm.php'>Log In</a></p>";
                }
            ?>
        </li>
    </ul>
    </body>
</html>

这是输出:

-Log In

";}?>

我不知道为什么要从括号中打印出来。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

这应该效果更好

<html>
<head>
    <title>Some login thing</title>
</head>
<body>
<ul>
    <li>
    <p>
    <?php
        if(isset($_COOKIE["username"])){

        echo "Hello ".$_COOKIE["username"].", ";
        }
        elseif(isset($_SESSION["userId"])){

        echo "Hello user #".$_SESSION["userId"].", ";
        }
        else{
        echo "<a href=\"logInForm.php\">Log In</a>";
        }
    ?>
    </p>
    </li>
</ul>
</body>
</html>

我坚持使用一种引号来表示字符串并回显\"表示打印"。如果它没有被转义,则会发生错误。此外,我更改了Hello消息以包含用户名或用户ID。

我还将<p>标签移到PHP代码之外,这样所有文本都将被视为段落,而不仅仅是登录链接。

Print可能会有效,但我发现echo对我来说效果更好,而且输入的字符少一个。