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在网页倾倒我得到了一个未定义指数:电子邮件
答
您必须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>
您是否在connection.php上启动会话? –
是会话启动connection.php – Phoenix
请尝试下面的代码。在logout.php –