我正在创建会话,我可以有效地登录和注销。但我的问题是在菜单栏中我有登录选项。 当用户点击它并登录如何更改文本登录到文本注销?
例如
<a href"home.php">Home</a>
<a href"aboutus.php">Aboutus</a>
<a href"login.php">Login</a>
默认情况下,它们出现在主页中。但是当用户登录时,我希望将其更改为
<a href"home.php">Home</a>
<a href"aboutus.php">Aboutus</a>
<a href"logout.php">Logout</a>
自动即可。我知道我们必须创建一个会话并检查用户ID,我完全不知道如何。请帮帮我
答案 0 :(得分:0)
您需要针对您的用户数据库验证登录信息。如果登录有效,则需要将其存储在会话中。 您可以使用PHP在会话中存储大量信息。会话ID使用cookie来回发送(这是一个自动过程)。因此,PHP将在每个连续请求中提供此会话信息。
您可以通过在每个请求开始时调用session_start();来启动会话加载会话信息。
您可以使用$_SESSION
超全局在PHP中阅读此会话信息,并相应地更改输出。
在this turorial中可以找到关于会话以及如何使用PHP实现它们的更好,更详细的解释,尽管还有许多其他方面可能同样出色。
答案 1 :(得分:0)
尝试使用
当您尝试输入用户电子邮件,密码并单击登录按钮
// login.php中
public function check_login($emailid,$password)
{
$sql="select * from users where user_email='$emailid' and pwd='$password'" or die(mysql_error());
$sql=mysql_query($sql);
$user_data=mysql_fetch_array($sql);
$num_of_rows=mysql_num_rows($sql);
if($num_of_rows==1)
{
$_SESSION['user_id']=$user_data['id'];
return true;
}
else
{
return false;
}
}
session_start();
if(!$_SESSION['user_id'])
{
echo '< a href"login.php">Login</a>';
}
else
{
echo"<span><b>Welcome <?php $_SESSION['user']; ?></b></span>";
echo '< a href"logout.php">Logout</a>';
}
答案 2 :(得分:0)
你可以把这样的东西放在你的“主表”中:
<?php if ($USER_IS_LOGGED_IN){ ?>
<a href"logout.php">Logout</a>
<?php }else{ ?>
<a href"login.php">Login</a>
<?php } ?>
您可以声明一个$USER_IS_LOGGED_IN
变量,或查看用户是否通过其他方式登录。
答案 3 :(得分:0)
简单的if语句。如下所示:
<?php
$loggedin = logincheck($_SESSION['username'],$_SESSION['password']);
?>
<a href"home.php">Home</a>
<a href"aboutus.php">Aboutus</a>
<?php
if ($loggedin) {
?>
<a href"logout.php">Logout</a>
<?php } else { ?>
<a href"login.php">Login</a>
<?php } ?>
注意:我不确定您是如何存储登录数据,或者您是如何检查用户是否已登录。因此,需要更改此代码以适应此情况。
答案 4 :(得分:0)
您应该编写isLoggedIn
函数。
如果会话的名称为uid
且其值为user id
,请执行以下操作:
function isLoggedIn()
{
if(!isset($_SESSION['uid']) || intval($_SESSION['uid']) == 0)
return false;
$uid = md5($_SESSION['uid']);
$q = mysql_query("SELECT id FROM members WHERE md5(id) = '$uid'");
if(mysql_num_rows($q) > 0)
return true;
return false;
}
在菜单栏中写下条件:
if(isLoggedIn())
{
echo "logout";
}
else
{
echo "login";
}
请注意,这只是一个例子,您需要根据需要重新编写它。
答案 5 :(得分:0)
你可以使用php来做到这一点..你创建一个php块,使用echo生成Login .. 它应该是这样的
<?php if(isset($_SESSION['username'])) echo "<a href'login.php'>Login</a>"; else echo "<a href'logout.php'>Logout</a>"; ?>
答案 6 :(得分:0)
使用会话变量来识别当前用户是否已登录,然后创建if-else语句以获得所需的功能......
示例---:
如果用户已登录,则在登录功能中创建会话变量:
function log_in()
{
...
session_start();
$_SESSION['user_id'] = 'user_id';
...
}
然后在你想要的地方尝试这样的事情......
function check_log()
{
if(isset($_SESSION['user_id']))
{
...
echo "<a href='logout.php'>logout</a>";
...
}
else
{
...
echo "<a href='login.php'>login</a>";
...
}
}