وقتی از کد زیر استفاده می کنم، سسشن ها توی دیتابیس ذخیره می شن و هم اینکه توی پوشه تمپ یه فایل سسشن خالی بوجود می یاد. چرا با اینکه سسشن ها توی دیتابیس ذخیره می شن، این فایل توی پوشه تمپ بوجود می یاد؟ آیا این مشکل بخاطر ضعف تابع هست؟ لطفا توضیح بدید.
لطفا اگر یه کد آماده برای ذخیره کردن سسشن ها توی دیتابیس دارید، برام ارسالش کنید.
لطفا اگر یه کد آماده برای ذخیره کردن سسشن ها توی دیتابیس دارید، برام ارسالش کنید.
PHP:
function ses_open($cxn)
{
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
}
function ses_close()
{
return mysql_close($cxn);
}
function ses_read($id)
{
$sql = "SELECT data FROM sessions WHERE id = '$id'";
if ($result = mysql_query($sql))
{
if (mysql_num_rows($result))
{
$record = mysql_fetch_assoc($result);
return $record['data'];
}
}
function ses_write($id, $data)
{
$access = time();
$sql="INSERT INTO sessions (id,data,access) VALUES ('$id','$data','$access')
ON DUPLICATE KEY UPDATE id='$id', data='$data', access='$access'";
return mysql_query($sql);
}
function ses_destroy($id)
{
$id = mysql_real_escape_string($id);
$sql = "DELETE FROM sessions WHERE id = '$id'";
return mysql_query($sql);
}
function ses_clean($max)
{
$old = time() - $max;
$sql = "DELETE FROM sessions WHERE access < '$old'";
return mysql_query($sql);
}
session_set_save_handler('ses_open','ses_close','ses_read','ses_write','ses_destroy','ses_clean');