[php] sesja

Wiem, że temat był już wielokrotnie poruszany, ale ja mam cały czas problem pomimo wielu przyjętych koncepcji.

<?php 

ob_start();

$pass = 222;


if(isset($_POST["pass"])){

    if($_POST["pass"] == $pass){

    echo("Hasło poprawne. Sesja została rozpoczęta");

    session_start();

    session_register("pass");

        if(isset($_SESSION["pass"])){

            echo("Idź");

        }

    }


    else{

    echo("Hasło błędne. Sesja nie została rozpoczęta");

    }

}


?>





[/code]

Dlaczego, pomimo rozpoczęcia i zarejestrowania sesji skrypt nie wykrywa $_SESSION[“pass”] ?

prawdopodobnie na serwerze włączone masz save_mode więc rejestrowanie zmiennych poprzez session_register() nic nie daje, zresztą nawet gdyby dawało, warto by to zmienić ze względów bezpieczeństwa, zmienne sesyjne inicjuj poprzez

$_SESSION['nazwa'] = wartość;

Dzięki, pomocne.

Teraz druga sprawa. Z tego co kojarzę, sesja powinna być aktualna do momentu wyłączenia przeglądarki, a nie otrzymuję tego efektu. Po kliknięciu na dowolny link (w przypadku wymienionym powyżej: secret.php w którym sprawdzam, czy sesja $_SESSION[“pass”] istnieje) okazuje się, że takowa sesja nie istnieje.

Jakieś propozycje?

a pokaż jak aktualnie wyglądają oba pliki

<?php 

session_start();

$pass = '222';


if(isset($_POST['pass'])){

    if($_POST['pass'] == $pass){

      echo('Hasło poprawne. Sesja została rozpoczęta');

      $_SESSION['pass'] = true;

          if(isset($_SESSION['pass'])){

              echo('Idź');

          }

    }

    else{

      echo('Hasło błędne. Sesja nie została rozpoczęta');

    }

}


?>



[/code]


------------

secret.php

[code] <?php if(isset($_SESSION[‘pass’])){ echo(‘działa’); } else{ echo(‘nie działa’); } ?>

w pliku secret.php również musisz rozpocząć działanie sesji poprzez

session_start();

i tak jak zrobiłeś to poprzednio, najlepiej umieszczać rozpoczęcie sesji zaraz na samym początku dokumentu

Po paru przeróbkach działa. Wielkie dzięki.