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.html
和login.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