Mam mały problem ze skryptem. Próbuje dodawac sesje do b.danych z tego tutoriala ( http://shiflett.org/articles/storing-sessions-in-a-database ) ale cos jest nie tak:
Cos pewnie robię zle ale nie mogę się doszukać: Nie iwem jak to wywolywac. Jak próbuje wywołać poszczególne funkcje to nic sie nie dzieje. Jak daje F5 to do bazy dodaje sie timestamp za kazdym razem nowy ale nie dodaje sie ID i DATA.
W bazie jest tak:
https://zapodaj.net/cef933d6a55c3.bmp.html
Pod ID jest nazwa ale skad ta nazwa myprefix- i dlaczego nie dodaje sie data???
$addtable = mysqli_query($conn, "CREATE TABLE sessions(id varchar(32) COLLATE utf8_unicode_ci NOT NULL, access int(10) unsigned, data text COLLATE utf8_unicode_ci, PRIMARY KEY (id))");
<?php
session_set_save_handler('_open',
'_close',
'_read',
'_write',
'_destroy',
'_clean');
session_start();
function _open()
{
global $conn;
$conn = mysqli_connect('localhost', 'root@localhost', 'pwd');
if($conn) {
return mysqli_select_db($conn, "sesje_testy");
}
return FALSE;
}
function _read($id)
{
global $conn;
$id = mysqli_real_escape_string($conn, $id);
$sql = "SELECT data
FROM sessions
WHERE id = '$id'";
if($result = mysqli_query($conn, $sql))
{
if(mysqli_num_rows($result) > 0)
{
$ro = mysqli_fetch_assoc($result);
return $ro['data'];
}
}
return '';
}
function _write($id, $data)
{
global $conn;
$access = time();
$id = mysqli_real_escape_string($conn, $id);
$access = mysqli_real_escape_string($conn, $access);
$data = mysqli_real_escape_string($conn, $data);
$sql = "REPLACE
INTO sessions
VALUES ('$id', '$access', '$data')";
return mysqli_query($conn, $sql);
}
function _clean($max)
{
global $conn;
$old = time() - $max;
$old = mysqli_real_escape_string($conn, $old);
$sql = "DELETE
FROM sesions
WHERE access < '$old'";
return mysqli_query($conn, $sql);
}
function _destroy($id)
{
global $conn;
$id = mysqli_real_escape_string($conn, $id);
$sql = "DELETE
FROM sesions
WHERE id = '$id'";
return mysqli_query($conn, $sql);
}
function _close()
{
global $conn;
return mysqli_close($conn);
}
?>