Foros del Web » Programando para Internet » PHP »

Necesito ejemplo de sesiones con session_set_save_handler

Estas en el tema de Necesito ejemplo de sesiones con session_set_save_handler en el foro de PHP en Foros del Web. Hola, Necesito por favor que alguien me pase un ejemplo de sesiones con session_set_save_handler y sobretodo como usarlas. He buscado un monton y solo encuentro ...
  #1 (permalink)  
Antiguo 11/02/2010, 12:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Necesito ejemplo de sesiones con session_set_save_handler

Hola,

Necesito por favor que alguien me pase un ejemplo de sesiones con session_set_save_handler y sobretodo como usarlas. He buscado un monton y solo encuentro mil ejemplos del fichero que contiene las funciones pero no se como usarlas en el resto de las paginas, o como usar ese objeto o como quiera que sea, ya he probado mil cosas y ta claro que no se como hacerlo.

Por favor, necesito que sea este método y no otro.

Gracias
  #2 (permalink)  
Antiguo 11/02/2010, 12:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Necesito ejemplo de sesiones con session_set_save_handler

En la pagina de PHP hay un ejemplo completo que tal vez pueda servirte, supongo que solo viste la documentacion oficial y no los comentarios de usuarios:

http://www.php.net/manual/en/functio...dler.php#81761
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/02/2010, 13:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Necesito ejemplo de sesiones con session_set_save_handler

Añado, buscando y buscando encontre esto que te puede ayudar http://onlamp.com/pub/a/php/2001/05/...ns.html?page=1
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 12/02/2010, 02:42
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Necesito ejemplo de sesiones con session_set_save_handler

Os lo agradezco, pero esto ya lo he visto, el fichero con las funciones ya lo tengo aunque hay muchos diferentes, ni la tabla es la misma en todos. El caso es que debo ser mu torpe porque mi problema es que no lo entiendo, veo los comentarios de la pagina oficial pero cada uno lo tiene hecho de una manera y asi me lio.
Yo lo que necesito es que me digan con este fichero que contiene estas funciones tienes que hacer xxxx para guardar una variable y xxxxx para leerla, porque con la multitud de información que hay por hay cada vez me lio más.

Además yo ya tengo algo que funciona con un usuario pero cuando hay más se pisan las sesiones unos a otros, ta claro que algo estoy haciendo mal.

Os pongo todo mi código haber si alguien me puede decir que hago mal

Tabla

CREATE TABLE `wip_ses_lis` (
`sesskey` varchar(32) NOT NULL default '',
`expiry` int(11) unsigned NOT NULL default '0',
`lastused` timestamp(14) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`sesskey`)
) TYPE=MyISAM;


Fichero session_mysql.php

<?
$SESS_DBHOST = "localhost"; /* database server hostname */
$SESS_DBNAME = "wip"; /* database name */
$SESS_DBUSER = "root"; /* database user */
$SESS_DBPASS = ""; /* database password */

$SESS_DBH = "";
$SESS_LIFE = get_cfg_var("session.gc_maxlifetime");

function sess_open($save_path, $session_name) {
global $SESS_DBHOST, $SESS_DBNAME, $SESS_DBUSER, $SESS_DBPASS, $SESS_DBH;

if (! $SESS_DBH = mysql_connect($SESS_DBHOST, $SESS_DBUSER, $SESS_DBPASS)) {
echo "<li>Can't connect to $SESS_DBHOST as $SESS_DBUSER";
echo "<li>MySQL Error: ", mysql_error();
die;
}

if (! mysql_select_db($SESS_DBNAME, $SESS_DBH)) {
echo "<li>Unable to select database $SESS_DBNAME";
die;
}

return true;
}

function sess_close() {
return true;
}

function sess_read($key) {
global $SESS_DBH, $SESS_LIFE;

$qry = "SELECT value FROM wip_ses_lis WHERE sesskey = '$key'";
$qid = mysql_query($qry, $SESS_DBH);

$ret = mysql_fetch_row($qid);
mysql_free_result($qid);

if (list($value) = $ret) {
$ret = $value;
} else {
$ret = '';
}

return $ret;
}

function sess_write($key, $val) {
global $SESS_DBH, $SESS_LIFE;

$expiry = time() + $SESS_LIFE;

$value = addslashes($val);

$qry = "REPLACE INTO wip_ses_lis (sesskey, expiry, value) VALUES ('$key', $expiry, '$value')";
$success = mysql_query($qry, $SESS_DBH);

return $success;
}

function sess_destroy($key) {
global $SESS_DBH;

$qry = "DELETE FROM wip_ses_lis WHERE sesskey = '$key'";
$success = mysql_query($qry, $SESS_DBH);
return $success;
}

function sess_gc($maxlifetime) {
global $SESS_DBH;

# disabling session expiration
return 0;
}

session_set_save_handler(
"sess_open",
"sess_close",
"sess_read",
"sess_write",
"sess_destroy",
"sess_gc");

?>

Código por ejemplo de index.php para establecer idioma en el que se mueve el usuario

<?
include("includes/session_mysql.php");
session_start();
if(sess_read('auten_idioma')!='SI'){
session_start();
sess_write('idioma',1);
}
$idi=sess_read('idioma');
include ("idioma/".$idi.".php");
?>

PROBLEMA

En la base de datos me guarda

INSERT INTO `wip_ses_lis` VALUES ('idioma', 1265962609, 20100212085249, '1');
INSERT INTO `wip_ses_lis` VALUES ('43a35a26ded52380e94767aaaa215f49', 1265962609, 20100212085249, '');

Yo cambio de idioma sin problema, pero si entra otro usuario y cambia de idioma, se cambia el valor de idioma y me cambia el idioma a mi tambien. Por eso pienso que estoy haciendo mal lo de guardar las variables y leerlas. Necesito que me digan como hacerlo, estoy ya muy perdida.

Gracias

Etiquetas: ejemplo, sesiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:25.