PHP会话不工作,不给任何错误

问题描述:

在我的login.php我有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!"; 
    } 
} 
?> 

基本上,如果用户名和密码相匹配它创建会话“电子邮件”,并重定向到索引页。

在我的导航栏中,像索引和其他所有页面一样。我有

<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:

忘记提到会话开始是在connection.php文件

编辑2:

在session_start();我已经把在登录页面,首页,但同样的问题的第一线

编辑3: 当我VAR转储会话集之后会议上,我得到的电子邮件会话值,但是当我VAR在网页倾倒我得到了一个未定义指数:电子邮件

+0

您是否在connection.php上启动会话? –

+0

是会话启动connection.php – Phoenix

+0

请尝试下面的代码。在logout.php –

您必须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"); 
?> 

不在家page.Because会议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> 
+0

会话开始connection.php – Phoenix

+0

你可以发布你的HTML? –

+0

header('Location:'。'index.php');改变它.. –