0

我对 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";
    }
?>
4

3 回答 3

2

你确定会话会自动开始吗?否则你需要添加这个:

编辑:并且还删除了 echo 周围的 parentethis,它是语言内置的,它不是一个函数。以及转义引号。

<?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 并使用会话 auto_start。

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

于 2013-06-11T17:15:21.850 回答
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>';
}
于 2013-06-11T17:15:47.120 回答
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()

于 2013-06-11T17:16:25.170 回答