Foros del Web » Programando para Internet » PHP »

sesiones con session_mysl.php

Estas en el tema de sesiones con session_mysl.php en el foro de PHP en Foros del Web. Hola, Por razones puntuales tengo que cambiar mi sistema de sesiones habitual y utilizar el que usa este fichero. Si alguien lo usa le agradecería ...
  #1 (permalink)  
Antiguo 11/02/2010, 06:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 19 años, 2 meses
Puntos: 0
sesiones con session_mysl.php

Hola,

Por razones puntuales tengo que cambiar mi sistema de sesiones habitual y utilizar el que usa este fichero. Si alguien lo usa le agradecería que me ayudara. He conseguido implementarlo, o eso creía yo, y aparentemente funciona, pero solo con un usuario, cuando hay dos usuarios rondando por la web ya no funciona porque el se pinsan el valor de las variables de sesion unos a otros.

Pongo el código de como lo he utilizado que creo que es aquí donde estoy haciendo algo mal. Cuando un usuario cambia de idioma se le cambia tambien a los demas. En la base de datos solo crea una variable idioma. No se si tengo que crear una por cada usuario o como saber de quien es cada sesión.

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");


Gracias
  #2 (permalink)  
Antiguo 11/02/2010, 09:06
Avatar de zeuslife  
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 533
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: sesiones con session_mysl.php

Una idea... no tendrás que generar manualmente el nombre de la sessión? Es decir, lo que seria PHPSESSID
__________________
Neversyn Software e Ingeniería
  #3 (permalink)  
Antiguo 11/02/2010, 09:09
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: sesiones con session_mysl.php

Lo has probado de esta forma?

Código PHP:
<?php session_start();// antes de cualquier cabecera
include("includes/session_mysql.php");

if(
sess_read('auten_idioma')!='SI'){
sess_write('idioma',1);
}
$idi=sess_read('idioma');
include (
"idioma/".$idi.".php");?>
Podrias mostrar el codigo de session_mysql.php ?

Saludos
  #4 (permalink)  
Antiguo 11/02/2010, 09:49
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: sesiones con session_mysl.php

Cita:
Iniciado por santris Ver Mensaje
Lo has probado de esta forma?

Código PHP:
<?php session_start();// antes de cualquier cabecera
include("includes/session_mysql.php");

if(
sess_read('auten_idioma')!='SI'){
sess_write('idioma',1);
}
$idi=sess_read('idioma');
include (
"idioma/".$idi.".php");?>
Podrias mostrar el codigo de session_mysql.php ?

Saludos
Gracias, pero no es eso, ya lo probe y además en la documentación poner que tiene que ir como yo lo he puesto
  #5 (permalink)  
Antiguo 11/02/2010, 09:53
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: sesiones con session_mysl.php

Cita:
Iniciado por zeuslife Ver Mensaje
Una idea... no tendrás que generar manualmente el nombre de la sessión? Es decir, lo que seria PHPSESSID
Debe ser algo así, el crea un registro con un ID pero no se como tengo que crear el resto de los registros y como identificarlos después.

Gracias
  #6 (permalink)  
Antiguo 11/02/2010, 09:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: sesiones con session_mysl.php

no es mi estilo... ¿pero porque no hacerlo así??

Código PHP:
session_start();
include(
"includes/session_mysql.php");
if( ! isset(
$_SESSION['auten_idioma'])){
$_SESSION['auten_idioma'] = 1// ???
}
$idi=$_SESSION['auten_idioma'];
include (
"idioma/".$idi.".php"); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/02/2010, 12:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: sesiones con session_mysl.php

Cita:
Iniciado por pateketrueke Ver Mensaje
no es mi estilo... ¿pero porque no hacerlo así??

Código PHP:
session_start();
include(
"includes/session_mysql.php");
if( ! isset(
$_SESSION['auten_idioma'])){
$_SESSION['auten_idioma'] = 1// ???
}
$idi=$_SESSION['auten_idioma'];
include (
"idioma/".$idi.".php"); 
No me vale, tengo que manejar algunas variables de sesion mas y mi cliente tiene un servidor que no puede con ello, es raro, pero cierto. La solución parece que puede estar en este método pero me esta quebrando la cabeza.
  #8 (permalink)  
Antiguo 11/02/2010, 12:29
Avatar de morior  
Fecha de Ingreso: agosto-2009
Ubicación: Barcelona
Mensajes: 437
Antigüedad: 15 años, 3 meses
Puntos: 12
Respuesta: sesiones con session_mysl.php

Una cosa, ¿puedes mostrarnos lo que hay en el archivo?
session_mysql.php
__________________
Juego de navegador online
  #9 (permalink)  
Antiguo 12/02/2010, 01:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 99
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: sesiones con session_mysl.php

<?
$SESS_DBHOST = "xxx"; /* database server hostname */
$SESS_DBNAME = "xxx"; /* database name */
$SESS_DBUSER = "xxx"; /* database user */
$SESS_DBPASS = "xxx"; /* 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");

?>

Etiquetas: 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 14:43.