Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话_destroy()不工作_Php_Session_Logout - Fatal编程技术网

Php 会话_destroy()不工作

Php 会话_destroy()不工作,php,session,logout,Php,Session,Logout,我的会话\ u destroy()不工作。当我以用户身份注销并返回浏览器时,在线显示用户。我哪里有错误?谢谢。:-) 文件login.php <?php require_once('functions.php'); if(isset($_POST['submit'])){ if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['password']) &

我的会话\ u destroy()不工作。当我以用户身份注销并返回浏览器时,在线显示用户。我哪里有错误?谢谢。:-)

文件login.php

<?php
require_once('functions.php');
if(isset($_POST['submit'])){
    if((isset($_POST['username']) && $_POST['username'] != '') && (isset($_POST['password']) && $_POST['password'] != '')){
        $connection = conectDatabase();
        $query = "SELECT * FROM users WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "';";
        $result = $connection->query($query);
        if ($result->num_rows >0){
             session_start(); 
             $_SESSION['username'] = $_POST['username'];
             header('LOCATION: users.php');  
        } else {
             echo '<p class="formMessage">Username/password do not match !</p>';
        }
    } else {
        echo '<p class="formMessage">Username/Password field is empty</p>';
    }
}                        
?>

file functions.php

<?php
function conectDatabase() {
    $connection = new mysqli('localhost', 'root', '', 'DB');     

    if(mysqli_connect_errno()) {
        die("error DB: " . mysqli_error() . "(" . mysqli_connect_errno() . ").");
    }
    return $connection;
}
?>

文件logout.php

<?php 
    session_start();
    session_destroy();
    header('LOCATION: login.php');
?>


我认为您的登录也不起作用,因为login.php文件上没有会话启动。在login.php文件上启动会话可能会有所帮助。

修改logout.php文件,如下所示:

<?php 
    session_start();
    session_destroy();
    unset($_SESSION);
    session_regenerate_id(true);
    header('LOCATION: login.php');
?>


现在是2014年,你仍然认为在数据库中以明文形式存储用户密码是可以接受的吗?另外,什么是
“在线显示用户”
意思?请同时使用准备好的语句,直接在SQL中使用
$\u POST
元素是危险的。SQL注入一切!你好我的login.php上有session_start(),但不工作。ThnaksOk,然后按照他提到的Dinesh更新您的文件。谢谢Shiv,希望这会有帮助。另外,检查session_start应该在login.php文件中,正如Shiv.hello提到的。我更改了文件,但仍然存在相同的问题。Thnaks:-(在标题('LOCATION:login.php')之前添加$_SESSION=array();My info.php php版本5.3.10-1 ubuntu3.11您是否尝试过在标题('LOCATION:login.php')之前添加$_SESSION=array();在标题('LOCATION:login.php');由于浏览器缓存的原因,只需刷新页面几次即可。