Po zmianie strony zmienne sesji sa puste

0

Witam. Na stronie znajduje sie formularz logujacy. Po podaniu loginu i hasla zgodnego z baza danych nastepuje przekierowanie na strone na ktorej wczesniej utworzone zmienne w sesji sa puste. Moze nakieruje Was to ze jezeli zmienie w formularzu z action="user.php" na action="#user.php" i ponownie powroce do action="user.php" to zostane zalogowany poprawnie, jednak po wylogowaniu i ponownym wprowadzeniu danych zalogowanie jest niemozliwe. ID_sesji jest takie ssamo na obu stronach.

index.php

 <?php 
include 'Classes.php';
session_start();
 print_r(session_id());////////////////////////////////////////////////////////////////
ini_set( 'display_errors', 'On' ); 
error_reporting( E_ALL );
?>
 <!--log in -->
        <form action="user.php" method="POST">
            Login:<br><input type="textbox" name="login"><br>
            Password<br><input type="password" name="passwd"><br>
            <input type="submit" name="log_in" value="Log in!"><br>
        </form>
       <!-- #--log in -->
       <?php
      
       if(isset($_POST['log_in'])){
           $database = new database_connection('localhost','koztek','dupa1234','blog');
           $database->connect_pg();
           $guest = new user($_POST['login'],$_POST['passwd']);
           
           if($guest->check_user()!=1){
               echo ("Wrong login or password");
               die;
               $_SESSION['test']='blad';////////////////////////////////////
           }
               
           else{
               $_SESSION['user']=serialize($guest);
               print_r($_SESSION['user']);
               $_SESSION['test']='poprawny';
           } 
            pg_close();
       }
     
       ?>

user.php

<?php 
include 'Classes.php';
session_start();
 print_r(session_id());////////////////////////////////////////////////////////////////
echo session_status() . '<br>';
 echo $_SESSION['test'] . '<br>';/////////////////////////
if(!isset($_SESSION['user'])){
    echo session_status().'<br>';
    session_unset();
    echo session_status().'<br>';
    session_destroy();
    die('Error. You are not logged.<br>Please log in <a href=\'index.php\'>here.</a>');
} 
else {
  $user = unserialize($_SESSION['user']);  
}
 
0

To: http://php.net/manual/en/function.session-save-path.php czasem może zawierać niepoprawną wartość i sesje się nie zapisują i sam musisz dobrać jakiś tymczasowy folder na sesje (byle niedostępny z poziomu przeglądarki - bezpieczeństwo)

btw:

 die;
$_SESSION['test']='blad';////////////////////////////////////

wiesz, że po die już nic się nie wykona?

1 użytkowników online, w tym zalogowanych: 0, gości: 1