Witam.
Mam dość dziwny moim zdaniem problem. Tworzę sobie panel admina, jednak mam problem z logowaniem... aktualny (mocno uproszczony, bo szukam błędu) kod wygląda tak:
index.php
  1. <?php
  2. try{
  3. $admin = new admin;
  4. if($r->get_param('log')=='in'){
  5. // echo $admin->check_form($r->get_param('login','post'),$r->get_param('password','post') );
  6. $admin->check_form($_POST['login'],$_POST['password']);
  7. }
  8. elseif($admin->check_access()==true){
  9. echo 'witaj w PA :)';
  10. }
  11. else{
  12. echo $admin->login_form();
  13. }
  14. }
  15. catch (exception $e){
  16. echo $e;
  17. }
  18. ?>

admin.class.php
  1. <?php
  2. public function check_form($login,$password){
  3. // $result = $this->db->execute("SELECT * FROM __admins WHERE login='".$login."' AND password='".$password."'");
  4. // while($row = $this->db->row($result) ){
  5. // self::give_access();
  6. // }
  7. self::give_access();
  8. header ("Location: index.php");
  9. }
  10. /*private */function give_access(){
  11. $_SESSION['admin']='true';
  12. return true;
  13. }
  14. public function check_access(){
  15. if( session_is_registered('admin') ){
  16. return true;
  17. }
  18. else{
  19. return false;
  20. }
  21. }
  22. ?>

jednak nawet w tak uproszczonym sposobie (bez sprawdzania loginu i hasla, i innych badziewi) cały czas wyświetla mi formularz logowania. gdy w admin.class dodam var_dump($_SESSION) to ładnie mi wyświetli dane o sesji- jednak jak w indexie wywala mi NULL :/ a przecież session to tablica superglobalna, więc z problemem z zasięgiem tu nie powinienem mieć problemu- nigdzie po drodze zadnych unsetow, session_destroyow itp nie uzywam- w czym wiec problem?