Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/01/2003, 21:44
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Pretendes usar un nombre de session diferente para cada usuario "longueado" en tu sistema?

Bueno, lo que es session_name() que define el nombre de la session en curso se ha de definir antes de un session_start() el cual debes usar para obtener el valor de alguna variable de session .. de session del nombre que se inició ..

Por lo tanto .. no veo lógica a tus pretensiones ya que si usas el nombre de session diferente al "por defecto de php.ini" .. el típico PHPSESID:

Código PHP:
<?php 
session_name
('misesion');
session_register('contador');
echo 
'<a href="'.$PHP_SELF.'?'.SID.'">Contador vale: '.++$contador.'</a><br>';
echo 
'Ahora el nombre es '.session_name().' y la sesión '.$misesion.'<br>';
?>
Esto ya sabras q el session_name() solo lo vas a ver a partir de la primera peticion que hagas de la pagina que inicies las sessiones .. En ese caso .. cuando pinches el link "contador vale: ...". A todo esto .. el SID lo estas propagando manualmente ok, es mas seguro pero acuerdate de propagarlo siempre .. en links, y tag hidden de formularios si los usas ..). Tambien recuerda que estas asumiendo globales las variables de sesion (ya que accedes solo con $sunombre .. ) esto no es nada recomendable usando sessiones .. usa los arrays asociados: $HTTP_SESSION_VARS['variable'] .. o si usas PHP 4.1.x en adelante $_SESSION['variable'].

Código PHP:
<? 
session_name
('aqui debe ir el nombre de la session que se inicio'); 
session_start(); // inicio de uso de sessiones para la session de nombre iniciado anteriormente.
echo $HTTP_SESSION_VARS['variable_de_session_bajo_name'];
?>
Así es como deberias acceder a las variables que tengas en la session .. Pero insisto, en la session de nombre que le distes anteriormente .. si le indicas otro .. será otra session no la misma en la que registrastes esas variables.

<?
$usuario=$HTTP_POST_VARS["usuario"];
session_name('$usuario');
// Contenido;
?>

Aquí viene el problema .. Si usas un formulario para dar nombre a una session .. está será valida solo en ese instante .. mejor dicho con este código das nombre a la session con el nombre del $usuario .. pero el las páginas que "salte" ese usuario han de tener ese mismo nombre $usuario .. ¿a caso piensas guardarte o leer constantemente de una BD/archivo de texto plano .. ese nombre de $usuario? .. Recuerda que ha de ser el mismo para las variables de session que guardes bajo ese nombre de session.

Lo normal es darle un nombre de la session que sea Unico para la aplicacion en curso (para tu sitio) ... o bien usar el por defecto de PHP .. (en mi script en la configuracion veras que te doy opcion a que pongas un nombre de session ..).

Luego, cada session que inicie un "login" se le asigna un SID (Identificador Unico de Session) que si lo asigna PHP es un numero aleatorio Unico para cada sesion iniciada .. Eso es lo que propagas por cada script para que se identifique todas las acciones de registrar/leer/modificar variables de session en la session activa bajo ese SID unico.

En la session puedes guardar Arrays e incluso Objetos (se pierden los metodos pero igual los puedes guardar) (todo serializado). Te lo comento por si quieres organizarte con arrays bidimensionales tipo $usuario['nombre']['propiedades'] ...

Un saludo,