HTML PHP成功登录后显示用户名

我在我的onlinestore.html文件中有一个<div> ,它是我的菜单,包含登录/注册。 我想要的是成功登录后,用于登录/注册的<div>更改为用户名。 我所做的不会显示我想要的预期输出。因此,我的代码有什么问题吗?

这是我所做的:

onlinestore.html

<li class='active' style='float:right;'>
  <?php 
  session_start();
    if($_SESSION['logged']==true){ 
        echo $_SESSION["username"];
        echo '<a href="logout.php"><span>Logout</span></a></li>';
        }
    elseif($_SESSION['logged']==false) 
        echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
    ?>

这是另一个文件checklogin.php:

if($count==1){
  session_start();
  $_SESSION['logged']=true;
  $_SESSION ['username']=$myusername;
  header("refresh:1;url=onlinestore.html");
  }
else{
   $_SESSION['logged']=false;
   header("refresh:2;url=login.html");}

这是预期的输出:

登录前 在这里输入图像描述

登录后 在这里输入图像描述

这是我用上面的代码得到的:


要么你需要将你的onlinestore.htmllogin.html重命名为.php文件,这样PHP才能在它们中工作,或者在你的htaccess文件中使用addtype选项。

在你的onlinestore.html这样做:

<?php
session_start(); // Right at the top of your script
?>

<li class='active' style='float:right;'>
  <?php 
  if($_SESSION['logged']==true)
    { 
      echo $_SESSION["username"];
      echo '<a href="logout.php"><span>Logout</span></a></li>';
    }
  elseif($_SESSION['logged']==false)
    {
      echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
    }
  ?>

在你的checklogin.php做到这一点:

<?php
session_start(); // Right at the top of your script
?>

if($count==1)
  {
    $_SESSION['logged']=true;
    $_SESSION['username']=$myusername;
    header("Location: onlinestore.html");
    exit();
  }
else
  {
     $_SESSION['logged']=false;
     header("Location: login.html");
     exit();
  }

如果上述不起作用,请告诉我发生了什么。
你有HTML文件设置解析PHP代码?
或者一个htaccess文件:
AddType application/x-httpd-php .htm .html

编辑

试试这个进行调试:

在你的checklogin.php做到这一点:

<?php
session_start(); // Right at the top of your script
?>

if($count==1)
  {
    $_SESSION['logged']=true;
    $_SESSION['username']=$myusername;
    echo "Login worked";
    exit();
  }
else
  {
     $_SESSION['logged']=false;
     echo "Login failed";
     exit();
  }

这会告诉你登录是否正常。 如果不是,并且您“登录失败”,那么这就是为什么您在页面上获得“登录/注册”链接的原因。

如果显示“登录成功”,则将代码重新设置为它的样子,然后在您的onlinestore.html页面上,在文件顶部执行此操作:

echo "This is working";
exit();

怎么了? 您是否在页面上看到“This is working”的信息,而没有其他信息?


在你的else语句中,你没有像在if语句中那样定义session_start()

而且,不是检查$ _SESSION的值并确定它的值,可以使用下面的代码:

if (session_status() == PHP_SESSION_NONE) {
//Do something if the session is not existing
}

其他选项都存储在一个变量$_COOKIE ,然后检查是否isset与否( if(isset($_COOKIE["username"]){}

我希望这能帮助你


如果您希望显示用户名,则需要将onlinestore.html的代码更改为以下内容:

<li class='active' style='float:right;'>
  <?php 
    session_start();
    if($_SESSION['logged']==true){ 
      echo '<a href="logout.php"><span>' + $_SESSION["username"] + ' (Logout)</span></a></li>';
    }
    elseif($_SESSION['logged']==false) 
      echo '<a href="registerform.html"><span>Login/Register</span></a></li>';
  ?>
链接地址: http://www.djcxy.com/p/18111.html

上一篇: HTML PHP Display username after success login

下一篇: I cannot access tomcat admin console?