Foros del Web » Programando para Internet » PHP »

Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Estas en el tema de Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo en el foro de PHP en Foros del Web. ya hice el siguiente codigo que he probado y funciona Código PHP: <?php session_start (); // Obtengo la fecha actual $x  =  date ( "H i s m d Y" , time ()); // creo un arreglo para dividir horas,minutos,segundos, etc. ...
  #1 (permalink)  
Antiguo 17/07/2010, 15:11
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

ya hice el siguiente codigo que he probado y funciona

Código PHP:
<?php
session_start
();

// Obtengo la fecha actual
$x date("H i s m d Y",time());
// creo un arreglo para dividir horas,minutos,segundos, etc.
$fecha explode(" ",$x);
//imprimo el arreglo
$fecha1=date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

if(
$_SESSION["hora"]=="") {
// Hago la suma de los minutos
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

echo 
$_SESSION["hora"];
echo 
"<br>";
echo 
$fecha1;
}
else
{
if(
$fecha1>$_SESSION["hora"]) {

echo 
"la fecha actual es mayor se va a logout.php";
}
else
{
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

echo 
$fecha1;
echo 
"<br>";
echo 
$_SESSION["hora"];
echo 
"la sesion se actualizo antes";
}
}
?>
ahora lo que quiero es guardarlo como una funcion para llamarla de cada pagina con un
Código PHP:
<? include("inactivo.php"); ?>
y que haga lo mismo que me esta haciendo actualmente


todos los echo que aparecen en el codigo, son solo de prueba, en la funcion no van
  #2 (permalink)  
Antiguo 17/07/2010, 15:15
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: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Te recomiendo que leas sobre las funciones. Mira este material http://php.net/manual/en/language.functions.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/07/2010, 15:20
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

no entiendo nada, lo que dice el manual, y menos porque esta en ingles
  #4 (permalink)  
Antiguo 17/07/2010, 15:25
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Como te va este EJEMPLO:

<?php
echo 'Jeje...';
?>

Ahora convertimos "ESO" en una funcion:

<?php
function ejemplito(){
echo 'Jeje...';
}
?>

Si la quieres llamar en OTRA PAGINA debes utilizar INCLUDE
Conoces INCLUDE ?
  #5 (permalink)  
Antiguo 17/07/2010, 15:26
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: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

y este http://www.forosdelweb.com/wiki/Manu...PHP:_Funciones
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 17/07/2010, 15:30
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Hola

@abimaelrc, en VBScript existen dos tipos de procedimiento: las funciones y las subrutinas ¿no existen subrutinas in PHP? He estado buscando y no he encontrado nada sobre ello

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 17/07/2010, 15:33
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: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Es que a las subrutinas también se le conoce como funciones. ¿A que te refieres con subrutinas?

Edito:
Si lo que te refieres a que PHP llame a un pedazo de código (que no está declarado en una función) y lo ejecute y cuando termine vuelva donde se quedo. Si es así entonces en php 5.3 crearon lo que se conoce como goto. Debes usarlo si es necesario, porque es difícil luego leer el código. Si lo quieres usar, úsalo pero lo mejor es usar funciones para ello.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 17/07/2010 a las 15:39
  #8 (permalink)  
Antiguo 17/07/2010, 15:34
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Cita:
Iniciado por Anarko Ver Mensaje
Como te va este EJEMPLO:

<?php
echo 'Jeje...';
?>

Ahora convertimos "ESO" en una funcion:

<?php
function ejemplito(){
echo 'Jeje...';
}
?>

Si la quieres llamar en OTRA PAGINA debes utilizar INCLUDE
Conoces INCLUDE ?

de verdad es tan sencillo, no me lo imaginaba, ya que las funciones que he usado traen return y otras cosas mas que pensaba que lo llevaban todas las funciones

voy a prober y les aviso


y abimaelrc ese manual si me sirve ya lo estoy leyendo Gracias
  #9 (permalink)  
Antiguo 17/07/2010, 15:35
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Unas pocas lineas de lectura
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 17/07/2010, 15:46
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: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Ok, si no devuelves algo la función entonces ¿para qué es útil? o ¿es que la subrutina hace el cambio sin necesidad de devolver nada? Si es así, entonces existen las variables por referencia que puedes hacer el cambio sin necesidad de retornar un valor. Ejemplo sencillo
Código PHP:
Ver original
  1. $foo = 'foo';
  2. function bar(&$bar){
  3.     $bar = 'bar';
  4. }
  5. bar($foo);
  6. echo $foo; //imprime bar
Ahí vez que se modificó la variable $foo sin haberla modificado directamente. Ya que se hizo el cambio por referencia. Un poco de lectura con respecto a lo que hace las variables por referencia http://php.net/manual/en/language.references.php

Como también modifiqué el mensaje anterior y te indique esta parte:
Cita:
Iniciado por abimaelrc Ver Mensaje
Edito:
Si lo que te refieres a que PHP llame a un pedazo de código (que no está declarado en una función) y lo ejecute y cuando termine vuelva donde se quedo. Si es así entonces en php 5.3 crearon lo que se conoce como goto. Debes usarlo si es necesario, porque es difícil luego leer el código. Si lo quieres usar, úsalo pero lo mejor es usar funciones para ello.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 17/07/2010, 15:47
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

bueno ya probe asi y no me funciono

coloque este codigo en el archivo inactivo.php
Código PHP:
<?php
function inactivo() 
{

session_start();

// Obtengo la fecha actual
$x date("H i s m d Y",time());
// creo un arreglo para dividir horas,minutos,segundos, etc.
$fecha explode(" ",$x);
//imprimo el arreglo
$fecha1=date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

if(
$_SESSION["hora"]=="") {
// Hago la suma de los minutos
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

}
else
{
if(
$fecha1>$_SESSION["hora"]) {

?>

             <script type='text/javascript' language='javascript'>
         alert('EXPIRO SU SESION') 
         document.location.href='logout.php'     
             </script> 
<?
}
else
{
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

}
}

}
?>
luego en las paginas coloque
Código PHP:
<? include("../inactivo.php"); ?>
pero luego del tiempo pasado no me saca del sistema, sigue como si nada pasara
  #12 (permalink)  
Antiguo 17/07/2010, 15:52
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

bueno ahora le agregue algo nuevo

Código PHP:
<? include("../inactivo.php"); 
inactivo()
?>
y apenas me conecto me dice el mensaje de javascript

<script type='text/javascript' language='javascript'>
alert('EXPIRO SU SESION')
document.location.href='logout.php'
</script>
  #13 (permalink)  
Antiguo 17/07/2010, 15:53
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

No se trata de eso. Mi pregunta va relacionada con hacer web modulares. Por ejemplo creamos archivo donde solamente habrá formularios. En ASP algo como esto
Cita:
sub frm1()
'formulario 1
end sub

sub frm2()
'formulario 2
end sub
Ahora incluimos ese archivo
Cita:
<!--#include virtual="/archivo.asp"-->
y ahora podemos llamar a esas subrutinas en cualquier lugar de la página
Cita:
'justamente después de <body>
Call frm1()

'justamente antes de </body>
Call frm2()
¿Se puede hacer eso en PHP?

EDITO: ¿Es posible que se trate de hacer una clase con funciones que solamente devuelvan/imprima el script usando echo?

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 17/07/2010 a las 16:06
  #14 (permalink)  
Antiguo 17/07/2010, 16:07
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: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

En el caso de las web modulares, lo que se hace por lo general es crear un archivo que contenga el formulario y luego con include, require, include_once o requiere_once se coloca donde tu deseas. Algo como
formulario1.php
Código HTML:
Ver original
  1. <form ....>
  2. ........
  3. ........
  4. </form>
index.php
Código PHP:
Ver original
  1. <html>
  2. <body>
  3. <?php include 'formulario1.php'; ?>
  4. </body>
  5. </html>
También puedes usar las funciones para ello. Ejemplo
formularios.php
Código PHP:
Ver original
  1. <?php
  2. function form1(){
  3. ?>
  4. <form ....>
  5. ........
  6. ........
  7. </form>
  8. <?php
  9. }
  10.  
  11. function form2(){
  12. ?>
  13. <form ....>
  14. ........
  15. ........
  16. </form>
  17. <?php
  18.  
  19. }
  20. ?>
index.php
Código PHP:
Ver original
  1. <?php
  2. include 'formularios.php';
  3. ?>
  4. <html>
  5. <body>
  6. <?php form1(); ?>
  7. <?php form2(); ?>
  8. </body>
  9. </html>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 17/07/2010, 16:18
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Perfecto, es a lo me refería
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #16 (permalink)  
Antiguo 17/07/2010, 17:06
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

bueno por lo visto ya se soluciono el problema, como lo dije anteriormente, voy a seguir probando
  #17 (permalink)  
Antiguo 17/07/2010, 17:27
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Quien me ayuda a hacer una funcion para cerrar sesion al estar inactivo

Cita:
Iniciado por johhan16 Ver Mensaje
bueno ya probe asi y no me funciono

coloque este codigo en el archivo inactivo.php
Código PHP:
<?php
function inactivo() 
{

session_start();

// Obtengo la fecha actual
$x date("H i s m d Y",time());
// creo un arreglo para dividir horas,minutos,segundos, etc.
$fecha explode(" ",$x);
//imprimo el arreglo
$fecha1=date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

if(
$_SESSION["hora"]=="") {
// Hago la suma de los minutos
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

}
else
{
if(
$fecha1>$_SESSION["hora"]) {

?>

             <script type='text/javascript' language='javascript'>
         alert('EXPIRO SU SESION') 
         document.location.href='logout.php'     
             </script> 
<?
}
else
{
$fecha[1] = $fecha[1]+1;
// Asigno la fecha modificada a una nueva variable
$fecha2 date("H:i:s d/m/Y ",mktime($fecha[0],$fecha[1],$fecha[2],$fecha[3],$fecha[4],$fecha[5]));

$_SESSION["hora"]=$fecha2;

}
}

}
?>
luego en las paginas coloque
Código PHP:
<? include("../inactivo.php"); ?>
pero luego del tiempo pasado no me saca del sistema, sigue como si nada pasara

Coloca esta linea POR FUERA DE LA FUNCION:

session_start();

Y EN la SEGUNDA LINEA del documento

Etiquetas: cerrar, funcion
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 10:55.