这段代码有什么问题?我怎么能纠正它?

时间:2013-06-11 17:10:54

标签: php if-statement

我是PHP的新手。所以是的,这段代码可能完全没有意义。但总是。我想请求帮助。如果有人可以告诉我什么是错的,或者只是写出正确的代码。

基本上我尝试使代码做的是检查用户是否已登录,如果没有,则显示他登录并注册链接。

如果他已登录,则显示他的用户名。

这是PHP代码:

<?php

    require("common.php");

    if(empty($_SESSION['user']))
    {
        echo("<a href="login.html"><b>Login</b></a>");
        echo("<a>or<a>");
        echo("<a href="register.html"><b>Register</b></a>");
    }

    else
    {
        echo 'Username: ' . $current_user->user_login . "\n";
    }
?>

来自HTML的代码:(我用来包含此代码的代码。不确定它是否也......)

<header action="php/check.php" method="post">

感谢您的回答仍然没有工作:( 这是当前的代码,我编辑了你们的建议。

<?php
    session_start()

    require("common.php");

    if(empty($_SESSION['user']))
    {
        echo '<a href="login.html"><b>Login</b></a>';
        echo '<a>or<a>';
        echo '<a href="register.html"><b>Register</b></a>';
    }

    else
    {
        echo 'Username: ' . $current_user->username . "\n";
    }
?>

3 个答案:

答案 0 :(得分:2)

您确定会话是自动启动的吗? 否则你需要添加:

编辑:并且还删除了回声中的parentet,它内置了语言,它不是一个功能。还有逃避引用。

<?php
    session_start()

    require("common.php");

    if(empty($_SESSION['user']))
    {
        echo "<a href=\"login.html\"><b>Login</b></a>";
        echo "<a>or<a>";
        echo "<a href=\"register.html\"><b>Register</b></a>";
    }

    else
    {
        echo 'Username: ' . $current_user->user_login . "\n";
    }
?>

您还可以添加php.ini并使用session auto_start。

http://www.php.net/manual/en/session.configuration.php#ini.session.auto-start

答案 1 :(得分:0)

试试这个:

if(empty($_SESSION['user']))
{
    echo '<a href="login.html"><b>Login</b></a>';
    echo ' or ';
    echo '<a href="register.html"><b>Register</b></a>';
}

答案 2 :(得分:0)

首先,您需要在所有转义语句中转义双引号:

echo "<a href=\"login.html\"><b>Login</b></a>";
echo "<a>or<a>";
echo "<a href=\"register.html\"><b>Register</b></a>";

您不需要echo的括号。

其次,为了使用$_SESSION变量,您需要使用函数session_start()在此之前启动会话。