Wow, pues la verdad que es un poco mas complejo que simplemente ponerte una lineas, pero aqui va un poco...
1.- Debes modificar la forma en la que tu pagina administra las sesiones, una forma púede ser a traves del .htaccess
.htaccess
=========================
php_value session.save_handler 'user'
php_value session.save_path 'php_sessions'
php_value auto_prepend_file 'home/path/mysql_session_handler.php'
=========================
Una vez hecho eso, debes crear unas funciones para administrar tu sesion, aqui te pongo una que uso yo:
mysql_session_handler.php
Código PHP:
<?php
assert(ini_get('session.save_handler') == 'user');
if ($mysql_session_table = ini_get('session.save_path')) {
$mysql_session_table = 'php_sessions';
}
$mysql_session_handle = null;
function mysql_session_open($save_path, $session_name)
{
global $mysql_session_handle;
include_once ("../constantes_co_es.php");
// Aqui sustituyes los datos de tu conexion a la BD
$host=BD_HOST;
$user=BD_USUARIO;
$pass=BD_PASSWORD;
$dbas=BD_BASE;
$mysql_session_handle = mysql_connect($host,$user,$pass);
mysql_select_db($dbas,$mysql_session_handle);
return $mysql_session_handle;
}
function mysql_session_close()
{
global $mysql_session_handle;
if (isset($mysql_session_handle)) {
return mysql_close($mysql_session_handle);
}
return true;
}
function mysql_session_read($key)
{
global $mysql_session_handle, $mysql_session_table;
$key = mysql_escape_string($key);
$now = time();
$query = "select data from $mysql_session_table " .
"where session_id = '$key';";
$result = mysql_query($query,$mysql_session_handle);
if (($result === false) || (mysql_num_rows($result) != 1)) {
$query = "insert into $mysql_session_table " .
"(session_id, last_active, data) " .
"values('$key', $now, '');";
$result = mysql_query($query, $mysql_session_handle);
if (($result !== false) && (@mysql_affected_rows($result) == 1)) {
@mysql_free_result($result);
return '';
}
$query = "select data from $mysql_session_table " .
"where session_id = '$key';";
$result = mysql_query($query,$mysql_session_handle);
if (($result === false) || (@mysql_num_rows($result) != 1)) {
@mysql_free_result($result);
return '';
}
}
$data = mysql_result($result, 0, 'data');
@mysql_free_result($result);
return $data;
}
function mysql_session_write($key, $val)
{
global $mysql_session_handle, $mysql_session_table;
$key = mysql_escape_string($key);
$val = mysql_escape_string($val);
$now = time();
$query = "update $mysql_session_table set last_active=$now, data='$val' " .
"where session_id='$key';";
$result = mysql_query($query,$mysql_session_handle);
$success = ($result !== false);
@mysql_free_result($result);
return $success;
}
function mysql_session_destroy($key)
{
global $mysql_session_handle, $mysql_session_table;
$key = mysql_escape_string($key);
$query = "delete from $mysql_session_table where session_id = '$key';";
$result = mysql_query($query,$mysql_session_handle);
$success = (($result !== false) && (@mysql_affected_rows($result) == 1));
@mysql_free_result($result);
return $success;
}
function mysql_session_gc($maxlifetime)
{
global $mysql_session_handle, $mysql_session_table;
$expiry = time() - $maxlifetime;
$query = "delete from $mysql_session_table where last_active < $expiry;";
return (mysql_query($query,$mysql_session_handle) !== false);
}
/* Aqui le indicas a PHP que funciones administran que partes de la sesion. */
session_set_save_handler(
'mysql_session_open',
'mysql_session_close',
'mysql_session_read',
'mysql_session_write',
'mysql_session_destroy',
'mysql_session_gc'
);
?>
Por ultimo vas a necesitar una tabla para manejar las sesiones en tu base de datos:
Código:
CREATE TABLE `php_sessions` (
`session_id` varchar(40) NOT NULL default '',
`last_active` int(11) NOT NULL default '0',
`data` text NOT NULL,
PRIMARY KEY (`session_id`)
) TYPE=MyISAM;
Si todo esto te parece demasiado, mejor te recomiendo buscar algun script listo para usar (que desconozco) u olvidarte del tema hasta que mejores tu percepción del PHP.