Foros del Web » Programando para Internet » PHP »

mostrar usuarios conectados a la web

Estas en el tema de mostrar usuarios conectados a la web en el foro de PHP en Foros del Web. Hola he conseguido crear una sesion con el siguiente codigo, el el lgin.,php session_start(); $_SESSION['usuario'] = 'Bienvenido'; y luego en el index.php session_start(); echo $_SESSION['usuario']; ...
  #1 (permalink)  
Antiguo 07/11/2011, 16:00
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
mostrar usuarios conectados a la web

Hola he conseguido crear una sesion con el siguiente codigo, el el lgin.,php

session_start();
$_SESSION['usuario'] = 'Bienvenido';

y luego en el index.php

session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )
{
echo "Has iniciado sesion correctamente";
}

Lo se no hace falta que me lo digais lo k pasa xdxd

Pues me gustaría saber si es muy complicado que en un lado salga el nombre de los usuarios que han iniciado sesion.
  #2 (permalink)  
Antiguo 07/11/2011, 16:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mostrar usuarios conectados a la web

Tendrías que registrar cada login en una BDD con su último tiempo de actividad, con esos datos puedes hacer un query para obtener los últimos activos (p.e. los últimos 5 mins) y mostrarlos en la pagina web.

Saludos.
  #3 (permalink)  
Antiguo 07/11/2011, 16:25
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 9 meses
Puntos: 28
Respuesta: mostrar usuarios conectados a la web

yo lo hago así:


Código PHP:
<?php if(isset($_SESSION['logueado'])){
if(
$_SESSION['logueado'] == "si"){
echo 
"Conectado Como <b>" $_SESSION['usuario'] . "</b>\n";
echo 
"<br>"?> 
<a class="a1" href="salir.php">Cerrar Sesión</a> 
<?php }else{ ?>
<a class="a1" href="salir.php">Cerrar Sesión</a> 
<?php }}else{?> 
<a class="a1" href="log.php">Inicia Sesión</a> 
<?php ?>
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #4 (permalink)  
Antiguo 07/11/2011, 16:26
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 9 meses
Puntos: 28
Respuesta: mostrar usuarios conectados a la web

de esa forma se imprime te toca hacer la consulta a la base de dato lo metes en un while o un for y listo...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #5 (permalink)  
Antiguo 07/11/2011, 16:43
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 4 meses
Puntos: 48
Respuesta: mostrar usuarios conectados a la web

Pues como ya te dijeron ocuparas una BD, o algo donde tengas almacenado los usuarios & tiempo
Y ya de ahi hacer un poco de calculo para ver cuando quieres que se elimine de la tabla e ir mostrando solo los ultimos 5 o los q decees q se hayan conectado o que esten actualmente conectados con un tiempo de prolongado de 5 mins o algo asi
y cuando uno entre vea por tiempo y los que superen el tiempo ahora con el tiempo que esta en la tabla los que superen a 5 se eliminan y luego al tuyo si esta registrado ya en la tabla actualiza el tiempo, y si no lo esta insertas el usuario y tambien el tiempo, con eso deveria bastar.

Otra cosa aca solo para acortamos el codigo para no poner doble
<a class="a1" href="salir.php">Cerrar Sesión</a>

Cita:
Iniciado por arcanisgk122 Ver Mensaje
yo lo hago así:


Código PHP:
<?php if(isset($_SESSION['logueado'])){
if(
$_SESSION['logueado'] == "si"){
echo 
"Conectado Como <b>" $_SESSION['usuario'] . "</b>\n";
echo 
"<br>";
?>
<a class="a1" href="salir.php">Cerrar Sesión</a> 
<?php }else{?> 
<a class="a1" href="log.php">Inicia Sesión</a> 
<?php ?>
  #6 (permalink)  
Antiguo 08/11/2011, 07:56
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

no consigo hacer que se muestre el nombre del usuario

me sale la inicion ha sido iniciada correctamente,hago un include al archivo de la configuracion de la base de datos

include 'db.inc.php';
session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )
{
echo "Has iniciado sesion correctamente";
}

Y luego no soy capaz de hacer que me salga el name y surname de la bd ,ese es el codigo que necesito xd
  #7 (permalink)  
Antiguo 08/11/2011, 10:38
 
Fecha de Ingreso: junio-2011
Mensajes: 21
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: mostrar usuarios conectados a la web

checalo asi aver que tal jejeje, saludos a todos

Código PHP:
include 'db.inc.php';
session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )  
{  
echo "<?php echo $usuario ?> Has iniciado sesion correctamente";  
}
Cita:
Iniciado por campussummertime Ver Mensaje
no consigo hacer que se muestre el nombre del usuario

me sale la inicion ha sido iniciada correctamente,hago un include al archivo de la configuracion de la base de datos

include 'db.inc.php';
session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )
{
echo "Has iniciado sesion correctamente";
}

Y luego no soy capaz de hacer que me salga el name y surname de la bd ,ese es el codigo que necesito xd
  #8 (permalink)  
Antiguo 08/11/2011, 13:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

si te digo que el campo en la base de datos es $name y $surname ahora solo me sale donde tengo que configurar la variable del

Entonces ha mi me sale ha iniciado la sesion correctamente, asi que perfect :)

Ahora lo que quiero es que me salga el nombre($name) de los usuarios conectados el problema es que no se como enviar ese dato a la base de datos !
  #9 (permalink)  
Antiguo 08/11/2011, 13:49
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

Cita:
Iniciado por Disfrith Ver Mensaje
checalo asi aver que tal jejeje, saludos a todos

Código PHP:
include 'db.inc.php';
session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )  
{  
echo "<?php echo $usuario ?> Has iniciado sesion correctamente";  
}
Por que meter las etiquetas <?php ?> dentro de las mismas?

Con hacerlo así sería suficiente.

echo "$usuario Has iniciado sesion correctamente";
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #10 (permalink)  
Antiguo 08/11/2011, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mostrar usuarios conectados a la web

Cita:
Iniciado por campussummertime Ver Mensaje
si te digo que el campo en la base de datos es $name y $surname ahora solo me sale donde tengo que configurar la variable del

Entonces ha mi me sale ha iniciado la sesion correctamente, asi que perfect :)

Ahora lo que quiero es que me salga el nombre($name) de los usuarios conectados el problema es que no se como enviar ese dato a la base de datos !
Ya te he respondido, tienes que agregar un cierto tiempo de actividad y buscar usuarios por ese tiempo...
  #11 (permalink)  
Antiguo 09/11/2011, 13:52
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

alguna guia que me podais dar respecto a lo que me ha comentado Gatorv ya que no se hacer lo que me ha comentado.

Gracias :)
  #12 (permalink)  
Antiguo 09/11/2011, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mostrar usuarios conectados a la web

Desconozco si hay una guia, pero tienes que hacer esto:

- Agregar una columna "ultima_actividad" a tu tabla usuarios
- Cuando haga login, o cada que revise una pagina, actualizas esa columna "ultima_actividad" con el valor actual de time(), para que represente la ultima actividad.
- Cuando quieras mostrar los usuarios activos (por ejemplo en los últimos 10 minutos), haces una consulta a tu tabla usuarios, donde el tiempo actual, menos 10 minutos sea igual o mayor al campo ultima_actividad.
- Eso te mostrara todos los usuarios que estan activos en los ultimos 10 minutos.

Saludos.
  #13 (permalink)  
Antiguo 09/11/2011, 14:10
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

Cita:
Iniciado por campussummertime Ver Mensaje
alguna guia que me podais dar respecto a lo que me ha comentado Gatorv ya que no se hacer lo que me ha comentado....
Busca información sobre session save handler y mysql. Podrás encontrar clases y tutoriales para hacerlo.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #14 (permalink)  
Antiguo 09/11/2011, 15:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

okey GatorV entonces entiendo agrego un campo mas tipo bolean o k sea tipo time?

gracias Uncontroled_Duck eso es lo k necesitaba. :)
  #15 (permalink)  
Antiguo 09/11/2011, 15:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mostrar usuarios conectados a la web

Si vas a usar time(), debería de ser tipo int, para que guardes la fecha en un formato númerico.
  #16 (permalink)  
Antiguo 10/11/2011, 09:52
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

okey :) , pues resulta que la session save handler no tiene muchos tutoriales.... :(
  #17 (permalink)  
Antiguo 10/11/2011, 11:25
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

Cita:
Iniciado por campussummertime Ver Mensaje
okey :) , pues resulta que la session save handler no tiene muchos tutoriales.... :(
Más o menos son todos iguales, las funciones son similares, y después adaptas el funcionamiento a tu proyecto y a tus necesidades.

Recuerdo haber visto algunas más...

En php.net http://php.net/manual/es/function.se...ve-handler.php

http://phptutorial.info/?session-set-save-handler

http://www.php-editors.com/php_manua...e-handler.html

Esta clase se debe ejecutar en cada petición, las funciones, más algunas que se pueden añadir se encargan de controlar las sesiones y la validez de las mismas.

En el constructor por ejemplo puedes crear la conexión con la db, la comprobación de la/s cookie/s.

Puedes crear una función que actualice cada impresión para controlar la inactividad del usuario.

En el read, se puede comprobar si existe la session en la db y si no crearla.

Viendo los ejemplos y probando, puedes crearte un controlador de sessiones realmente bueno. Solo tienes que plantearte, que quieres que haga la clase?

Puedes probar y postear los fallos que te vas encontrando.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #18 (permalink)  
Antiguo 10/11/2011, 11:36
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

session_set_save_handler ( "host","user","pass");

suponiendo k "host" es el server, user usuario administrador y pass la contraseña del usuario.
  #19 (permalink)  
Antiguo 10/11/2011, 12:03
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

No, con session_set_save_handler estableces los nombres de las funciones que van a controlar.

En uno de los ejemplos he visto que lo ha echo así:
Código PHP:
Ver original
  1. public function __construct() {
  2.         array($this, "open"),
  3.         array($this, "close"),
  4.         array($this, "read"),
  5.         array($this, "write"),
  6.         array($this, "destroy"),
  7.         array($this, "gc")
  8.         );
  9. }

Entonces las funciones serán:
Código PHP:
Ver original
  1. public function open() {
  2. }
  3.  
  4. public function close() {
  5. }
  6.  
  7. public function read() {
  8. }
  9.  
  10. //...
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #20 (permalink)  
Antiguo 10/11/2011, 12:14
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

Para la conexión lo puedes poner así, solo con editar los datos del array debería conectar la Db.
Código PHP:
Ver original
  1. private $sDB; // select DB
  2. private $cDB; // conect DB
  3. private $dDB = array('localhost', 'user', 'pass', 'dbname'); // datos DB
  4.  
  5. public function __construct() {
  6. $this->cDB = mysql_connect(!$this->dDB[0] ? 'localhost' : $this->dDB[0], $this->dDB[1], $this->dDB[2])
  7.                 or die("Mensaje que quieras mostrar (" . mysql_error() . ")");
  8. $this->sDB = mysql_select_db($this->dDB[3], $this->cDB)
  9.                 or die("mensaje que quieras mostrar (" . mysql_error() . ")");
  10. }

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #21 (permalink)  
Antiguo 11/11/2011, 04:49
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

me da errorrores aqui..

Me da errores

private $kfernandez; // select DB


public function _construct() {

include 'db.inc.php';
session_start();
echo $_SESSION['usuario'];
if( isset($_SESSION['usuario']) )
{
echo "<?php echo $usuario ?> Has iniciado sesion correctamente";
}
//
private $kfernandez; // select DB
private $localhost; // conect DB
private $dDB = array('localhost', 'user', 'pass', 'dbname'); // datos DB

public function _construct() {
$this->localhost = mysql_connect(!$this->dDB[0] ? 'localhost' : $this->dDB[0], $this->dDB[1], $this->dDB[2])
or die("Mensaje que quieras mostrar (" . mysql_error() . ")");
$this->kfernandez = mysql_select_db($this->dDB[3], $this->localhost)
or die("mensaje que quieras mostrar (" . mysql_error() . ")");
}
  #22 (permalink)  
Antiguo 11/11/2011, 08:07
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

La clase no tiene que tener salida de nada a la vista. El constructor solo se encarga de armar las variables y conexiones.

Te dejo una muy básica, ya la tienes que adaptar para que funcione con tu proyecto.

Tienes que poner los archivos index.php y class.sessions.php en el mismo directorio.
Abres index.php en el navegador despues de crear la tabla y editar los datos de conexión en la clase sessions.
Si cambias alguna variable de la clase, asegurate que has cambiado todas de la misma forma, si no podrás encontrarte errores y no funcionará correctamente.

Pruébala e intenta entender su funcionamiento antes de cambiar algo.

La tabla: MySql
Código MySQL:
Ver original
  1. CREATE TABLE `sessions` (
  2.   `session_id` varchar(32) COLLATE utf8_bin DEFAULT NULL,
  3.   `last_impression` int(11) NOT NULL,
  4.   `created` int(11) NOT NULL,
  5.   PRIMARY KEY (`id`),
  6.   UNIQUE KEY `id` (`id`),
  7.   UNIQUE KEY `session_id` (`session_id`)

La clase sessions:
Código PHP:
Ver original
  1. <?php
  2. /** Error Report */
  3. //comentar las dos líneas siguientes para evitar el reporte de errores
  4. ini_set("display_errors", 1);
  5.  
  6. /**
  7.  * Class para controlar sessiones
  8.  * class.sessions.php
  9.  */
  10. class sessions
  11. {
  12.     private $php_session_id;
  13.     private $native_session_id;
  14.     private $session_timeout  = 900; //tiempo en segundos de inactividad - 900 = 15 minutos
  15.     private $session_lifespan = 1800; //tiempo total en segundos de la session - 1800 = 30 minutos
  16.     private $sDB; // select DB
  17.     private $cDB; // conect DB
  18.     private $dDB = array('localhost', 'root', 'root', 'forosdelweb'); // datos DB, por defecto root, root
  19.  
  20.     /**
  21.      * constructor
  22.      */
  23.     public function __construct()
  24.     {
  25.         //conexión a la db
  26.         $this->cDB = mysql_connect(!$this->dDB[0] ? 'localhost' : $this->dDB[0], $this->dDB[1], $this->dDB[2])
  27.                 or die("Mensaje que quieras mostrar (" . mysql_error() . ")");
  28.         $this->sDB = mysql_select_db($this->dDB[3], $this->cDB)
  29.                 or die("mensaje que quieras mostrar (" . mysql_error() . ")");
  30.        
  31.         //estableces el controlador
  32.                 array(&$this, '_open_method'),
  33.                 array(&$this, '_close_method'),
  34.                 array(&$this, '_read_method'),
  35.                 array(&$this, '_write_method'),
  36.                 array(&$this, '_destroy_method'),
  37.                 array(&$this, '_gc_method')
  38.         );
  39.        
  40.         if( isset($_COOKIE["PHPSESSID"]) )
  41.         {
  42.             //seguridad y comprobación de tiempo
  43.             $this->php_session_id = $_COOKIE["PHPSESSID"];
  44.             $time = time();
  45.             $select = "SELECT id FROM sessions WHERE session_id = \"$this->php_session_id\" ";
  46.             $select.= "AND (($time - created) < '$this->session_lifespan') ";
  47.             $select.= "AND (($time - last_impression) <= '$this->session_timeout' ";
  48.             $select.= "OR last_impression IS NULL)";
  49.             $result = mysql_query($select);
  50.             if( mysql_num_rows($result) == 0 )
  51.             {
  52.                 //eliminar de la base de datos; al mismo tiempo, eliminar la basura
  53.                 $select = "DELETE FROM sessions ";
  54.                 $select.= "WHERE (session_id = '$this->php_session_id') ";
  55.                 $select.= "OR ($time - created > '$this->session_lifespan')";
  56.                 $result = mysql_query($select);
  57.                 //deshacerse de esta... obligamos a PHP a darnos una válida
  58.                 unset($_COOKIE["PHPSESSID"]);
  59.             }
  60.         }
  61.        
  62.         session_set_cookie_params($this->session_lifespan);
  63.         //el sesion start ya lo das aquí, no necesitas ponerlo en el resto de archivos.
  64.         session_start();
  65.     }
  66.    
  67.     /**
  68.      * Realiza impresiones de tiempo por cada petición.
  69.      */
  70.     public function impress()
  71.     {
  72.         if( $this->native_session_id )
  73.         {
  74.             $time = time();
  75.             $result = mysql_query("UPDATE sessions SET last_impression = $time WHERE id = '$this->native_session_id'");
  76.         }
  77.     }
  78.    
  79.     /**
  80.      * retorna el sesid del usuario
  81.      */
  82.     public function getSessionId()
  83.     {
  84.         return $this->php_session_id;
  85.     }
  86.    
  87.     public function getConect()
  88.     {
  89.         return $this->cDB;
  90.     }
  91.    
  92.     /**
  93.      * open method
  94.      * @param type $save_path
  95.      * @param type $session_name
  96.      * @return type
  97.      */
  98.     private function _open_method($save_path, $session_name)
  99.     {
  100.         //no hacer nada
  101.         return true;
  102.     }
  103.    
  104.     /**
  105.      * close method
  106.      * @return type
  107.      */
  108.     public function _close_method()
  109.     {
  110.         mysql_close($this->cDB);
  111.         return true;
  112.     }
  113.    
  114.     /**
  115.      * read method
  116.      * @param type $id
  117.      * @return type
  118.      */
  119.     public function _read_method($id)
  120.     {
  121.         $this->php_session_id = $id;
  122.        
  123.         //comprobar si existe en la base de datos o no
  124.         $result = mysql_query("SELECT id FROM sessions WHERE session_id = '$id'");
  125.         if( mysql_num_rows($result) > 0 )
  126.         {
  127.             $row = mysql_fetch_array($result);
  128.             $this->native_session_id = $row["id"];
  129.         }
  130.         else
  131.         {
  132.             //tenemos que crear una entrada en la base de datos
  133.             $time = time();
  134.             $result = mysql_query("INSERT INTO sessions(session_id, created)
  135.                                    VALUES ('$id', '$time')");
  136.             //obtenemos el ID verdadedro
  137.             $result = mysql_query("SELECT id FROM sessions WHERE session_id = '$id'");
  138.             $row = mysql_fetch_array($result);
  139.             $this->native_session_id = $row["id"];
  140.         }
  141.         //devolver un string vacío
  142.         return '';
  143.     }
  144.    
  145.     /**
  146.      * write method
  147.      * @param type $id
  148.      * @param type $sess_data
  149.      * @return type
  150.      */
  151.     public function _write_method($id, $sess_data)
  152.     {
  153.         return true;
  154.     }
  155.  
  156.     /**
  157.      * destroy method
  158.      * @param type $id
  159.      * @return type
  160.      */
  161.     private function _destroy_method($id)
  162.     {
  163.         $result = mysql_query("DELETE FROM sessions WHERE session_id = '$id'");
  164.         return $result;
  165.     }
  166.  
  167.     /**
  168.      * gc method
  169.      * @param type $maxlifetime
  170.      * @return type
  171.      */
  172.     private function _gc_method($maxlifetime)
  173.     {
  174.         return true;
  175.     }
  176.    
  177. }
  178. ?>

Un archivo para probarla:
Código PHP:
Ver original
  1. <?php
  2. require_once('class.sessions.php');
  3. $session = new sessions();
  4. $session->impress();
  5. /**
  6.  * index.php
  7.  * Esto va en todas las páginas
  8.  * No debes poner NADA antes de este código
  9.  *
  10.  * La conexión está ya incluida en la clase
  11.  */
  12. ?>
  13. <!--
  14. To change this template, choose Tools | Templates
  15. and open the template in the editor.
  16. -->
  17. <!DOCTYPE html>
  18. <html>
  19.     <head>
  20.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  21.         <title></title>
  22.     </head>
  23.     <body>        
  24.         Estado de la conexión: <?php
  25.         //conexión a la db
  26.         echo ( mysql_connect())? 'Está conectada.': 'No está conectada.';
  27.         ?>
  28.         <br />
  29.         <br />
  30.        
  31.         El id de sesion actual es: <?php echo $session->getSessionId() ?>
  32.         <br />
  33.         <br />
  34.        
  35.         <?php
  36.         //puedes trabajar añadiendo directamente la conexión ala query con:
  37.         //$session->getConect();
  38.         $select = 'SELECT id, session_id, last_impression, created ';
  39.         $select.= 'FROM sessions ';
  40.         $select.= "WHERE session_id = '" . $session->getSessionId() . "'";
  41.         $result = mysql_query($select, $session->getConect());
  42.  
  43.         if(  mysql_num_rows($result) > 0 )
  44.         {
  45.             $row = mysql_fetch_array($result);
  46.         }
  47.         ?>
  48.         Datos de la DB:<br />
  49.         Id: <?php echo $row['id'] ?> <br />
  50.         Session: <?php echo $row['session_id'] ?> <br />
  51.         Ultima impresión: <?php echo $row['last_impression'] ?> <br />
  52.         Creada:: <?php echo $row['created'] ?>
  53.     </body>
  54. </html>

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #23 (permalink)  
Antiguo 11/11/2011, 09:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: mostrar usuarios conectados a la web

Luego te digo algo :)
  #24 (permalink)  
Antiguo 11/11/2011, 13:50
Avatar de royarzunm  
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: mostrar usuarios conectados a la web

estoy haciendo un sistema de control de taller y de tickets incluido, y registraba el estado y guardaba en un campo en la bd del usuarios, pero tenia un problema, si no hacía click en salir y la sesion se cerraba automáticamente el registro queda online.
juajuajua nunca se desconecta.

saludos.
  #25 (permalink)  
Antiguo 11/11/2011, 13:54
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 10 meses
Puntos: 261
Respuesta: mostrar usuarios conectados a la web

Cita:
Iniciado por royarzunm Ver Mensaje
estoy haciendo un sistema de control de taller y de tickets incluido, y registraba el estado y guardaba en un campo en la bd del usuarios, pero tenia un problema, si no hacía click en salir y la sesion se cerraba automáticamente el registro queda online.
juajuajua nunca se desconecta.

saludos.
Con esta clase eso se controla con las variables
private $session_timeout = 900;
private $session_lifespan = 1800;

Que controlan el tiempo de inactividad y la duración máxima de la session.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: conectados, usuarios
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:05.