我正在建立一个网站,当用户已登录时,该网站不得显示登录选项,即会话处于活动状态。我尝试过这个,但它没有返回所需的输出。请帮忙。感谢。
<?php
if(!isset($_SESSION)) {echo "<li><a href='Employee.php'>Login</a></li>";}
?>
编辑: 我正在添加从数据库检查登录详细信息并启动会话的部分。
$query = "SELECT Cust_FName from customer where Cust_ID='$name' and Password='$pass'";
$result = mysqli_query($con, $query);
if(mysqli_num_rows($result)!= false)
{
$row = mysqli_fetch_row($result);
echo row[0];
if(mysqli_num_rows($result) > 0)
{
echo "Logged in!";
session_start();
$_SESSION['userName'] = $row[0];
header("Location: index.php");
}
}
答案 0 :(得分:2)
如果要检查会话是否已启动,可以使用
if(session_status() != PHP_SESSION_ACTIVE) {
echo "<li><a href='Employee.php'>Login</a></li>";
}
问题是,如果用户没有登录,会话也在那里。你必须检查是否例如设置$_SESSION['user_id']
:
if(!isset($_SESSION['user_id']) {
echo "<li><a href='Employee.php'>Login</a></li>";
}
在我的示例中,{>> 1}}将在用户登录成功时填写。
答案 1 :(得分:0)
放入登录页面
<?php
session_start();
// Store Session Data
$_SESSION['login_user']= $username; // Initializing Session
?>
必须检查使用时
<?php
session_start();
// Store Session Data
if(isset($_SESSION['login_user'])){
//do things
}
?>
并退出
<?php
session_destroy();
?>
答案 2 :(得分:0)
<强>问题强>
来自你的评论:
登录按钮只应在用户未登录时显示,一旦登录,它就会消失。
<强>解决方案强>
// This would be your login.php page
<?php
session_start();
// process your HTML form, like this
if(isset($_POST['login'])){
// Remember: always validate your form inputs
$name = $_POST['name'];
$pass = $_POST['pass'];
$query = "SELECT Cust_FName from customer where Cust_ID='$name' and Password='$pass'";
$result = mysqli_query($con, $query);
if(mysqli_num_rows($result)!= false){
$row = mysqli_fetch_row($result);
//echo row[0];
if(mysqli_num_rows($result) > 0){
//echo "Logged in!";
$_SESSION['userName'] = $row[0];
header("Location: index.php");
exit(); // exit() is necessary, otherwise the script execution is not terminated. Setting header alone is not enough to redirect.
}
}
}
if(isset($_SESSION['userName'])){
// user is already logged in
// redirect the user to a different page
// header("Location: index.php");
// exit();
}else{
// user is not logged in
// display login option
?>
<!--Your HTML form for login-->
<form action="login.php" method="POST">
<input type="text" name="name" value="" /><br />
<input type="text" name="pass" value="" /><br />
<input type="submit" name="login" value="Login" />
</form>
<?php
}
?>
<强>编辑:强>
Session是一个驻留在我们服务器中的文件,在该文件中我们可以存储任何数量的信息。我们通常在客户端的浏览器上部署会话cookie。
在输出任何HTML或空格之前,我们需要开始会话。
当我们这样做时,
<?php
session_start();
?>
它会说,转到浏览器,获取会话ID并打开相应的文件,如果它没有找到任何会话ID,它将启动一个新会话。用户只能看到会话ID,没有别的。
提示:请记住不时清理会话。