Tworzę sesje za pomocą tej klasy w ten sposob
<?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 )
{
$uArray = array( 'login' => $login, 'pass' => md5( $password ), 'logged' => true );
if( $this->compare( $uArray ) )
{
$this->createSession( $uArray, array( 'pass' ) ); 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( $_GET['login'] == 'true' && isset( $_POST['form_login'] ) ) {
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

prosze o pomoc