Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这个代码有什么问题?我怎样才能纠正它?_Php_If Statement - Fatal编程技术网

Php 这个代码有什么问题?我怎样才能纠正它?

Php 这个代码有什么问题?我怎样才能纠正它?,php,if-statement,Php,If Statement,我对PHP完全陌生。所以,是的,这个代码可能完全没有意义。但是安威。我想寻求帮助。如果有人能告诉我什么是错误的,或者只是写正确的代码 基本上,我试图使代码做的是检查用户是否登录,如果没有,然后显示他登录和注册链接 如果他已登录,则显示他的用户名 以下是PHP代码: <?php require("common.php"); if(empty($_SESSION['user'])) { echo("<a href="login.html">

我对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的代码:(我用来包含此代码的代码。不确定它是否也是…)


感谢您的回答以下问题仍然无法解决:( 这是当前代码,我编辑了你们的建议

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

您确定会话正在自动启动吗? 否则,您需要添加以下内容:

编辑:还要删除echo周围的父项,它是内置语言,不是函数。还有转义引号

<?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

试试这个:

if(empty($_SESSION['user']))
{
    echo '<a href="login.html"><b>Login</b></a>';
    echo ' or ';
    echo '<a href="register.html"><b>Register</b></a>';
}
if(空($\u会话['user']))
{
回声';
回声“或”;
回声';
}

首先,您需要对所有转义语句中的双引号进行转义,如下所示:

echo "<a href=\"login.html\"><b>Login</b></a>";
echo "<a>or<a>";
echo "<a href=\"register.html\"><b>Register</b></a>";
echo”“;
回声“;
echo
不需要括号


其次,为了使用
$\u SESSION
变量,您需要先使用函数
SESSION\u start()

启动会话,然后才能使用
SESSION\u start()
?echo不需要括号
转义引号。我认为您不需要
$\u会话['user']
如果您有
$current\u user->user\u login
。或者反之亦然。
标题操作?我以前从未见过。您的意思是不是
感谢大家的支持。仍然不起作用tho:(当前看起来像这样,但您在设置$\u会话时是否也调用session\u start()?是的。Common.php有session\u start()最后。我还尝试了手动编写session_start()。我想您可能已经关闭了
错误报告功能
。看起来您在
session_start()之后漏掉了一个分号
,如果评论中没有输入错误的话..我这样做了。仍然不起作用。我想知道我是否需要一些php文件上的html。或者php到html?所以目前我的html文件有:所以我试图打印php文件的标题…现在它不会打印到任何地方。您是否正确给出了文件路径?
action=“php/check.php”
是相对于当前位置的。在它之前使用一个
/
。它类似于
操作=“/php/check.php”
。如果它不起作用,请查看此项以获取根目录的位置:@user2475515我以前从未见过
@Fred我怎么没有注意到它?-\u-我使它仍然不起作用,因为:(
echo "<a href=\"login.html\"><b>Login</b></a>";
echo "<a>or<a>";
echo "<a href=\"register.html\"><b>Register</b></a>";