Questo è il mio codice
Codice PHP:
list($status, $user) = auth_get_status();
switch($status)
{case AUTH_LOGEDD_IN: #ora mi loggo
switch(auth_get_option("TRANSICTION METHOD"))
{
case AUTH_USE_LINK:
break;
case AUTH_USE_COOKIE:
setcookie('uid', $uid, time()+3600*365, '/');
break;
case AUTH_USE_SESSION:
$_SESSION['uid'] = $uid;
break;
}
$content =
<<<HTML
Sei loggato!</p>
[url="logout.php"]Logout[/url]</p>
HTML;
if( license_has($user, "webmaster") )
{ $content .= "
<a href=\"../admin/index.php\">Accedi all'amministrazione</a></p>"; }
case AUTH_LOGGED: #sono già loggato
$content =
<<<HTML
Sei loggato!</p>
[url="logout.php"]Logout[/url]</p>
HTML;
if( license_has($user, "webmaster") )
{ $content .= "
<a href=\"../admin/index.php\">Accedi all'amministrazione</a></p>"; }
$perm = mysql_query("SELECT id FROM permessi WHERE nome = 'test'");
$rowperm = mysql_fetch_row($perm);
$content .= "
$rowperm[0]</p>";
$permessi = license_user_get_perms(user_get_id($user));
$content .= "
$permessi</p>";
break;
}
le funzioni sono
Codice PHP:
function auth_get_status()
{
global $_CONFIG;
auth_clean_expired();
$uid = auth_get_uid();
if(is_null($uid))
{return array(100, NULL);}
$result = mysql_query("SELECT U.name as nome, U.surname as cognome, U.username as username FROM $_CONFIG[table_sessioni] S, $_CONFIG[table_utenti] U WHERE S.user_id=U.id and S.uid='$uid' ");
if(mysql_num_rows($result) != 1)
{return array(100, NULL);}
else
{
$user_data = mysql_fetch_assoc($result);
return array(99, array_merge($user_data, array('uid' => $uid)));
}
}
function auth_get_uid()
{ $uid = NULL;
switch(auth_get_option("TRANSICTION METHOD"))
{ case AUTH_USE_COOKIE:
global $_COOKIE;
$uid = $_COOKIE['uid'];
break;
case AUTH_USE_LINK:
global $_GET;
$uid = $_GET['uid'];
break;
}
return $uid ? $uid : NULL;
}
function auth_clean_expired()
{
global $_CONFIG;
$result = mysql_query("SELECT creation_date FROM {$_CONFIG[table_sessioni]} WHERE uid='".auth_get_uid()."'");
if($result)
{
$data = mysql_fetch_array($result);
if($data['creation_date'])
{
if($data['creation_date'] + $_CONFIG['expire'] <= time())
{
switch(auth_get_option("TRANSICTION METHOD"))
{
case AUTH_USE_COOKIE:
setcookie('uid', '', time()-3600, '/');
break;
case AUTH_USE_LINK:
global $_GET;
$_GET['uid'] = NULL;
break;
}
}
}
}
mysql_query("DELETE FROM {$_CONFIG[table_sessioni]} WHERE creation_date + {$_CONFIG[expire]} <=".time() );
}
function license_has($user, $perm)
{
$permessi = license_user_get_perms(user_get_id($user));
$perm = mysql_query("SELECT id FROM permessi WHERE nome = '$perm'");
$rowperm = mysql_fetch_row($perm);
if ($permessi >= $rowperm['0'])
{return TRUE;}
else
{return FALSE;}
}
function license_user_get_perms($id)
{
$result = mysql_query("SELECT permessi FROM utenti WHERE id = '$id'");
$row = mysql_fetch_row($result);
return $row['0'];
}
function user_get_id($user)
{
$result = mysql_query("SELECT id FROM utenti WHERE username='$user[username]' and password='$user[password]'");
$row = mysql_fetch_row($result);
return $row['0'];
}
Ora, quando mi loggo va tutto bene, se però me ne vado dalla pagina, rimanendo sullo stesso sito, e poi provo a tornare nella pagina "protetta" mi si rilogga ma stavolta non mi funziona il controllo permessi, nel senso che proprio non riesce a "leggere" i permessi dell'utente.
Mi aiutate?