注销php会话错误

时间:2014-12-15 16:39:16

标签: php mysql session

我的登录工作正常,因为它将我重定向到index.php 但是在我点击登录按钮后,它转到了index.php,并且会话没有登录。它应该声明" Hello $ username",但它仍然声明" ;再次登录"而不是退出。

index.php代码:

<?php
        session_start();    
        if( !empty($_SESSION) && isset($_SESSION['username'])){
            echo 'Olá ' . $_SESSION['username'];
            echo '<a href="logout.php"><br/>Logout</a>';
        }
        else{
            echo '<a href="login.php" class="hiper">Fazer Login</a>';
            echo '<a href="criarconta.php" class="hiper"><br/>Criar Conta</a><br/>';
        }
      ?>

login.php代码:

<?php

    if(!empty($_POST)){
        $username=$_POST['username'];
        $password=$_POST['password'];

        require_once 'Validate.php';
        $flag_error = false;
        $errors = array ('username' => array (false,'username incorrecto.'),'password' => array (false,'Password tem de conter pelo menos 8 caracteres.'));


    /*if(!checkusername($username)){
        $errors['username'][0] = true;
        $flag_error=true;

    }

    if(!Valid_Pass($password)){
        $errors['password'][0]=true;
        $flag_error=true;

    }*/

    if(!$flag_error){

        require_once 'ligacao.php';
        $query = "SELECT * FROM utilizadores` WHERE 'username' = '$username' AND 'password' = '$password'";
        $verificar=mysql_query($query) or die (mysql_error());

        if (mysql_num_rows($verificar)==true){
            $_SESSION['username'] = $username;
            header('Location: index.php');
            }else{
            echo '<font color="red"> Esta conta não existe. </font></a>';   
        }

    }   
}
?>

我知道登录有效,因为它重定向到&#34;标题(&#39;位置:index.php&#39;);&#34;,但会话保持登录状态。它可能是什么?

2 个答案:

答案 0 :(得分:3)

您需要在使用该会话的每个页面上使用session_start(),因此请将其添加到login.php的顶部。

答案 1 :(得分:0)

session_start();

这会启动会话,您应该在每个需要用户登录访问它的文件中使用它。

 $_SESSION['color']='red'; 
 $_SESSION['size']='small'; 
 $_SESSION['shape']='round';

这会在会话中设置变量

 session_unset();

删除所有会话变量

 session_destroy(); 

销毁会话