ho fatto questo codice che però non iserisce nulla nel database non so perchè;
Codice PHP:
<?
function inizia_sessione()
{
global $db;
if (isset($_COOKIE['smk_data']))
{
$cookie = explode('-', $_COOKIE['smk_data']);
$username = unserialize($cookie[0]);
$password = unserialize($cookie[1]);
$query = $db->sql_query('SELECT * FROM smk_utenti WHERE u_username = '.$username) or die(mysql_error());
$result = $db->sql_fetch_row($query) or die(mysql_error());
if ($password == $result['u_password'])
{
lancia_sessione($loggato = TRUE, $user_id = $result['u_id']);
}
}
else
{
lancia_sessione($loggato = FALSE, $user_id = 1);
}
if (isset($_GET['s']))
{
controlla_sessione();
}
}
function lancia_sessione($loggato, $user_id)
{
global $db;
$session_data['session_id'] = md5(uniqid(microtime()));
$current_time = time();
$query = $db->sql_query('DELETE FROM smk_sessioni WHERE s_id = '.$session_data['session_id'].' OR UNIX_TIMESTAMP(NOW()) - s_time => 3600') or die(mysql_error());
if ($loggato == TRUE)
{
$logged = 1;
$query = $db->sql_query('INSERT INTO smk_sessioni (s_id, s_time, s_user_id, s_logged_in) VALUES ('.$session_data['session_id'].', '.$current_time.', '.$user_id.', '.$logged.')') or die(mysql_error());
}
else
{
$logged = 0;
$query = $db->sql_query('INSERT INTO smk_sessioni (s_id, s_time, s_user_id, s_logged_in) VALUES ('.$session_data['session_id'].', '.$current_time.', '.$user_id.', '.$logged.')') or die(mysql_error());
}
$session_data['session_logged_in'] = $logged;
$session_data['session_userid'] = $user_id;
return $session_data;
}
function controlla_sessione()
{
$session_id = $_GET['s'];
if (strlen($session_id) != 32)
{
return FALSE;
}
$query = $db->sql_query('SELECT COUNT(s_id) FROM smk_sessioni WHERE s_id = '.$session_id.' AND UNIX_TIMESTAMP(NOW()) - s_time <= 1800') or die(mysql_error());
$result = mysql_fetch_row($query);
if ($result[0] == 0)
{
return FALSE;
}
$query = $db->sql_query('UPDATE smk_sessioni SET s_time = UNIX_TIMESTAMP(NOW()) WHERE s_id = '.$session_id) or die(mysql_error());
return TRUE;
}
?>