<?php /** * @copyright 2006 All rights reserved, do not copy, edit or resale. * @author Krzysztof Jagiełło <balonyo@gmail.com> * @version 0.1 */ class Auth { var $db; function Auth( $db ) { $this->db = &$db; } /** * Metoda klasy, która pobiera dane z bazy, * porównuje je i tworzy sesje lub zwraca * false * * @param string $login * @param string $password */ function login( $login, $password ) { if( $this->compare( $uArray ) ) { return true; } else { return false; } } /** * Porównujemy dane poadne przez usera * z danymi z bazy danych * * @param array $uArray * @param array $sArray * @return bool */ function compare( $uArray ) { $num = count( $this->db->GetAll( 'SELECT id FROM ' . USR_TABLE . ' WHERE auth_login = "' . $uArray['login'] . '" AND auth_pass = "' . $uArray['pass'] . '"' ) ); return ( $num == 1 ) ? true : false; } /** * Metoda tworząca sesje, podajac jej argument * ignore (array) wyznaczamy jej elementy * z pierwszego argumentu metody * ktore mamy pomijac przy tworzeniu * tablicy sesyjnej * * @param array $array * @param array $ignore */ function createSession( $array, $ignore ) { foreach( $array as $key => $val ) { { $_SESSION[$key] = $val; } } } /** * Metoda niszczaca cala sesje */ function destroySession() { } /** * Metoda zwracajaca wartosc element * z tablicy sesyjnej * o podanym kluczu * * @param string_type $key * @return string */ function getValue( $key ) { return $_SESSION[$key]; } /** * Zwraca nazwe zalogowanego usera */ function getAuthName() { return $this->getValue( 'login' ); } /** * Zwraca stan autoryzacji * zalogowany - true * niezalogowany - false */ function isAuth() { return $this->getValue( 'logged' ); } } ?>
wywoluje to w ten sposob
<?php { if( !$auth->login( $_POST['form_login'], $_POST['form_pass'] ) ) { $error = 1; } } if( $_GET['unlog'] == 1 ) { $auth->destroySession(); } if( $_SESSION['logged'] == 1 ) { $engine->set_title('Zalogowany'); $engine->show_page(); $engine->load_page('zalogowany'); } else if( $error == 1 ) { $engine->set_title('Podano złe dane'); $engine->show_page(); $engine->load_page('logowanie'); } else { $engine->set_title('Logowanie'); $engine->show_page(); $engine->load_page('logowanie'); } ?>
jesli uruchamiam ten skrypt na serwerze poraz pierwszy to jestem elegancko logowany. Jednak kiedy skorzystam z unset i sie wyloguje i wywolam print_r tablicy sesyjnej to nadal sa tam wartosci
Cytat
Array ( [s_lang] => pl [login] => test [isAuth] => 1 [logged] => 1 )
potem jak proboje sie zalogowac np z loginem example to nadal w tablicy jest login...
o co chodzi ? 2h nad tym siedze i juz nie moge
