Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/12/2005, 09:39
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
¿Sabías que al crear una sesión .. ya se está creando un "código" aleatorio que no es más que el mismisimo SID (identificador único de sesión)?
Te hago el comentario por qué NO es necesario generar y volcar en una variable de sesión un dato así .. por qué ya lo tienes si usas la función:

session_id()
www.php.net/session_id

.. o si quieres el SID completo . .usalo como constante que es:
Código PHP:
echo SID// sin comillas, es una constante 
Por otro lado .. una visita de un robot a tus páginas se hace exactamente igual que con cualquier conexión HTTP a una de tus páginas con otro tipo de "cliente" como pueda ser un navegador.

La sesión se creará y continuará usandose si puede propagar el SID .. sea por cookies o por el URL. Un "robot" no gestionará cookies como un navegador .. pero si sigue "links" y bajo PHP propagas el SID en el URL .. llamaras a tu sesión en curso con su SID válido.

En tu código .. el uso que haces de sesiones no es correcto, deberías usar:

Código PHP:
session_start(); 
if (!isset(
$_SESSION['nusuario'])) { 
   
$nusuario=rand(10,1000000); 
   
$_SESSION['nusuario']= $nusuario

Tampoco se vé como sigue el flujo de ese código para ver como y donde exactamente almacentas tu registro con ese "nusuario" .. Pero, podría estar el problema por ahí .. estás asumiendo variables como "globales".

Pero como te he comentado .. simplemente usando:
session_start();
$numuser=session_id();

Ese SID (id de sesión concretamente en ese caso) será igual para toda la sesión si se consigue propagar el SID correctamente. No sé si usas sólo sesiones para este tema o para más cosas .. en tal caso sigue usando tus variables de sesión como de costumbre.

Un saludo,