在我的login.php中我有
<?php
require_once('connection.php');
$loginErr = "";
if(isset($_POST['login']))
{
$email = mysqli_real_escape_string($conn,$_POST['email']);
$pass = mysqli_real_escape_string($conn,$_POST['password']);
$sel_user = "SELECT * FROM register WHERE email='$email' AND password='$pass'";
$run_user = mysqli_query($conn, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user>0){
$_SESSION['email'] = $email;
header('Location: '.'index.php');
}
else {
$loginErr = "Email or password is not correct, try again!";
}
}
?>
基本上,如果用户名和密码匹配,则会创建会话&#34; email&#34;并重定向到索引页面。
在我的导航栏中,这对于索引和其他所有页面都是通用的。我有
<ul class="nav navbar-nav navbar-right">
<?php if(!isset($_SESSION['email'])) { ?>
<li><a href="login">Login</a></li>
<li><a href="register.php">Register</a></li>
<?php } else { ?>
<li><a href="logout.php">Logout</a></li>
<?php } ?>
</ul>
基本上,如果没有会话电子邮件,则会显示登录和注销,如果设置了会话电子邮件,则会显示注销。
但即使用户已登录或退出,它也始终显示登录和注册按钮。
我的退出页面
<?php
session_start();
session_unset($_SESSION['email']);
session_destroy();
header("Location: index.php");
?>
我正在尝试在用户登录和登录时显示注销按钮,不注册时注册按钮。但是我无法在代码中找到错误,也没有给出任何错误。它只是显示登录注册按钮。
感谢。
编辑1:
忘记提及Session start在connection.php文件中
编辑2:
在session_start();我已经登录第一行登录页面和主页但是同样的问题
编辑3: 当我在会话集之后转换会话值时,我得到了电子邮件的会话值,但是当我在主页上转换为var时,我得到未定义索引:电子邮件
答案 0 :(得分:0)
您必须start_Session();
中connection.php
。或者你可以从这里开始......
<?php
require_once('connection.php');
$loginErr = "";
if(isset($_POST['login']))
{
$email = mysqli_real_escape_string($conn,$_POST['email']);
$pass = mysqli_real_escape_string($conn,$_POST['password']);
$sel_user = "SELECT * FROM register WHERE email='$email' AND password='$pass'";
$run_user = mysqli_query($conn, $sel_user);
$check_user = mysqli_num_rows($run_user);
if($check_user>0){
session_start();
$_SESSION['email'] = $email;
header('Location:index.php');
}
else {
$loginErr = "Email or password is not correct, try again!";
}
}
?>
你的logout.php
必须是这样的......
<?php
//session_start(); no need to start here
session_unset($_SESSION['email']);
session_destroy();
header("Location: index.php");
?>
主页上没有start_session。因为会话总是一次启动。并尝试以下代码。
<ul class="nav navbar-nav navbar-right">
<?php if(isset($_SESSION['email'])) { ?>
<li><a href="logout.php">Logout</a></li>
<?php } else { ?>
<li><a href="login">Login</a></li>
<li><a href="register.php">Register</a></li>
<?php } ?>
</ul>