Foros del Web » Programando para Internet » PHP »

problema con session_handler

Estas en el tema de problema con session_handler en el foro de PHP en Foros del Web. Ahora me estoy peleando con el sesion handler y de momento me va ganando el -.- cosa que no me agregada,os explico , cuando hago ...
  #1 (permalink)  
Antiguo 01/12/2011, 08:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
problema con session_handler

Ahora me estoy peleando con el sesion handler y de momento me va ganando el -.- cosa que no me agregada,os explico , cuando hago el login me funciona y me redirige

Tengo que poner el session_start en accedido?Pero luego no se como continuar..quiero controlar el tiempo que lleva el usuario en la web por eso uso esto o se haria con un time?

Esto me mata y tngo que saber como se hacer par continuar con mi progreso en php :)


login.php

<?php
$email1=$_POST["email1"];
$password1=$_POST["password1"];
if ($email1&&$password1);
{
include("./db.inc.php");
$query = mysql_query("SELECT * FROM web WHERE email1='$email1'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['email1'];
$dbpassword = $row['password1'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
//
}
if ($email1==$dbusername&&$password1==$dbpassword)
{
echo "Has accedido ";
session_start
}
else
echo "Contraseña errónea";
}
}
?>
  #2 (permalink)  
Antiguo 02/12/2011, 19:46
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: problema con session_handler

Cita:
Iniciado por campussummertime Ver Mensaje
$email1=$_POST["email1"];
$password1=$_POST["password1"];
Recuerda hacer TRIM cada ingreso de values...

Cita:
Iniciado por campussummertime Ver Mensaje
$numrows = mysql_num_rows($query);
Y si no devuelve VALORES ?????

Recuerda utilizar el IF(...){
}
Cita:
Iniciado por campussummertime Ver Mensaje
$numrows = mysql_num_rows($query);
Segun el código que TU haz pegado, NUNCA VUELVES A UTILIZAR $numrows

... ¿para que la haz creado ???

Cita:
Iniciado por campussummertime Ver Mensaje
session_start
Por generalización, (standard), sessiones en MAYUSCULAS:

SESSION_START

y recuerda los paréntesis:

SESSION_START();

Finalmente: SI, en TODAS debe existir:

SESSION_START();

con include o en forma literal...

Continua con tu proyecto !
Pinta bien !!!

:)
  #3 (permalink)  
Antiguo 03/12/2011, 04:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

pero como podria hacer para enviar la sesion a la bd ?? xd con la funcion time? tengo un campo time en la bd y no se como activarlo.

En si he abierto un tema aqui y no se como me pueden cerrar este o algo y ahy esta mejor explicado

http://www.forosdelweb.com/f18/function-time-961845/
  #4 (permalink)  
Antiguo 03/12/2011, 07:35
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: problema con session_handler

Cita:
Iniciado por campussummertime Ver Mensaje
pero como podria hacer para enviar la sesion a la bd ?? xd con la funcion time? tengo un campo time en la bd y no se como activarlo.

En si he abierto un tema aqui y no se como me pueden cerrar este o algo y ahy esta mejor explicado

http://www.forosdelweb.com/f18/function-time-961845/
Amigo campussummertime, cual es el motivo de saber el tiempo en la pagina...

1) si es para conocer el tiempo de los visitantes, y cantidad de visitas etc... utiliza analitycs de Google.

2) si es para cortar la sesion a x tiempo. Podriamos crear algo como esto...


cuando inician sesion:
Código PHP:
session_start();

$_SESSION['time_start'] = microtime(true); 

Y en las hojas, seguro utilizas el codigo que te recomende la otra vez...


Código PHP:
session_start();
if(!isset(
$_SESSION['time_start'])) //¿ NO esta seteado time_start?
{
 
header ('Location: login.php'); // NO esta seteado, entonces no logeo, ir al login.
exit;
}elseif( ( (
microtime(true) - $_SESSION['time_start']  )  >= 70 //¿Mayor o Igual a 70"(segundos).?
{
 
header('Location: tiempo_excedido.php');// Es mayor o igual.
exit;

__________________
Mono programando!
twitter.com/eguimariano

Última edición por SirDuque; 03/12/2011 a las 08:04
  #5 (permalink)  
Antiguo 04/12/2011, 15:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

ok, pregunto por mi ignorancia, con el siguiente código:

session_start();
$_SESSION['time_start'] = microtime(true);

Iniciaría la cuenta en el campo time 'última actividad' por supuesto tendría que canviar el nombre xd

http://img74.xooimage.com/files/9/f/a/ultima-actividad-2f5d019.png

Gracias!
  #6 (permalink)  
Antiguo 04/12/2011, 15:36
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: problema con session_handler

Hace algunos días puse una clase básica de session_save_handler totalmente funcional.

Echa un vistazo que igual te puede ayudar.
http://www.forosdelweb.com/f18/mostr...2/#post4038850

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 04/12/2011, 16:50
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

pero realizaria lo que yo he indicado anteriormente??Gracias por tu respuesta.
  #8 (permalink)  
Antiguo 05/12/2011, 02:07
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: problema con session_handler

Cita:
Iniciado por campussummertime Ver Mensaje
pero como podria hacer para enviar la sesion a la bd ?? xd con la funcion time? tengo un campo time en la bd y no se como activarlo[...]
La respuesta que di, va por este comentario.

Básicamente lo que hace es controlar las sessions a través de la DB. Controla el tiempo máximo de actividad del usuario, y el tiempo máximo de inactividad.

No deja de ser una clase, la cual puede ser modificada y ampliada tanto como necesites. Y que realice las comprobaciones que quieras para cada session.

Por eso indico que es básica, ya que cada proyecto requiere unas necesidades distintas, y esa clase es la base para ser ampliada.

Saludos,

PD.: Pruébala y me cuentas, solo son dos archivos y la DB.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #9 (permalink)  
Antiguo 05/12/2011, 08:03
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

Hola chicos, me gustaría acabar de preguntar alguna cosas , en las hojas si que utilizo el codigo de SirDuque

Pero me da error en las línias que estan en negrita me podríais ayudar ? Es error de sintaxi por eso.

session_start();
if(!isset($_SESSION['time_start']))
{
header ('Location: login.php');
exit;
}elseif( ( (microtime(true) - $_SESSION['time_start'] ) >= 70 )
header('Location: tiempo_excedido.php')
exit;

}

Y ya le he echado un vistazo a lo mio pero prefiero asi ....

Última edición por campussummertime; 05/12/2011 a las 08:23
  #10 (permalink)  
Antiguo 05/12/2011, 16:10
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

Os explico lo que he solucionado, no hagais caso al post anterior

ahora lo tengo asi el codigo, tengo el siguiente codigo php

Sigo pensando que hay variables que repito y por eso puede ser que no me funcione,ya que ahun me estoy iniciando en esto y voy copiando los codigos a mano y los intento adaptar.

Alguna idea? Es que tengo un campo time que se llama ultima actividad y no deberia ponerse en marcha cuando inicia sesion?Ayuda ahora el codigo lo tengo adaptado de la siguiente manera,dejo el php entero para poder ayudar, creo que tengo puesto demasiados headers por eso.

<?php
$email1=$_POST["email1"];
$password1=$_POST["password1"];
if ($email1&&$password1);
{
include("./db.inc.php");
$query = mysql_query("SELECT * FROM web WHERE email1='$email1'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['email1'];
$dbpassword = $row['password1'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
//
}
if ($email1==$dbusername&&$password1==$dbpassword)
{
;
echo "Has accedido ";
session_start();
$_SESSION['ultima_actividad'] = microtime(true);
//sesiones
session_start();
if(!isset($_SESSION['ultima_actividad'])) //¿ NO esta seteado ultima_actividad?
{
header ('Location: iniciarsesion.php'); // NO esta seteado, entonces no logeo, ir al login.
exit;
}elseif( ( (microtime(true) - $_SESSION['ultima_actividad'] ) >= 70 ) )//¿Mayor o Igual a 70"(segundos).?
{
header('Location: tiempo_excedido.php');// Es mayor o igual.
exit;
}
else
echo "Contraseña errónea";
}
}}
?>
  #11 (permalink)  
Antiguo 05/12/2011, 17:06
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: problema con session_handler

Cita:
Iniciado por campussummertime Ver Mensaje
Os explico lo que he solucionado, no hagais caso al post anterior

ahora lo tengo asi el codigo, tengo el siguiente codigo php

Sigo pensando que hay variables que repito y por eso puede ser que no me funcione,ya que ahun me estoy iniciando en esto y voy copiando los codigos a mano y los intento adaptar.

Alguna idea? Es que tengo un campo time que se llama ultima actividad y no deberia ponerse en marcha cuando inicia sesion?Ayuda ahora el codigo lo tengo adaptado de la siguiente manera,dejo el php entero para poder ayudar, creo que tengo puesto demasiados headers por eso.

<?php
$email1=$_POST["email1"];
$password1=$_POST["password1"];
if ($email1&&$password1);
{
include("./db.inc.php");
$query = mysql_query("SELECT * FROM web WHERE email1='$email1'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['email1'];
$dbpassword = $row['password1'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
//
}
if ($email1==$dbusername&&$password1==$dbpassword)
{
;
echo "Has accedido ";
session_start();
$_SESSION['ultima_actividad'] = microtime(true);
//sesiones
session_start();
if(!isset($_SESSION['ultima_actividad'])) //¿ NO esta seteado ultima_actividad?
{
header ('Location: iniciarsesion.php'); // NO esta seteado, entonces no logeo, ir al login.
exit;
}elseif( ( (microtime(true) - $_SESSION['ultima_actividad'] ) >= 70 ) )//¿Mayor o Igual a 70"(segundos).?
{
header('Location: tiempo_excedido.php');// Es mayor o igual.
exit;
}
else
echo "Contraseña errónea";
}
}}
?>
campussummertime no te entiendo ni J.

Código PHP:
session_start();
if(!isset(
$_SESSION['ultima_actividad'])) //¿ NO esta seteado ultima_actividad?
{
 
header ('Location: iniciarsesion.php'); // NO esta seteado, entonces no logeo, ir al login.
exit;
}elseif( ( (
microtime(true) - $_SESSION['ultima_actividad']  )  >= 70 ) )//¿Mayor o Igual a 70"(segundos).?
{
 
header('Location: tiempo_excedido.php');// Es mayor o igual.
exit;

Esto es una cabezera, la cual va en todas las hojas, menos el Login y el inicio.

Te recomiendo para que entiendas un poco:

primero crea un un FORM en HTML
usuario y contraseña.

Despues el PHP con el logeo, que seria este codigo:

Código PHP:
$email1=$_POST["email1"];
$password1=$_POST["password1"];
if (
$email1&&$password1);
{
include(
"./db.inc.php");
$query mysql_query("SELECT * FROM web WHERE email1='$email1'");
$numrows mysql_num_rows($query);
{
while (
$row mysql_fetch_assoc($query))
{
    
$dbusername $row['email1'];
    
$dbpassword $row['password1'];
    
$dbalias $row['alias'];
    
$dbname $row['name'];
    
$dbsurname $row['surname'];
}
if (
$email1==$dbusername&&$password1==$dbpassword)
{
    echo 
"Has accedido ";
    
session_start();
    
$_SESSION['ultima_actividad'] = microtime(true);
    
//sesiones
    
header ('Location: inicio.php');
    exit;
}else{
    echo 
"Contraseña errónea";
    
header ('Location: login.html');
    exit;

}
}

y por ultimo, el envio a otra pagina con la cabezara que calcula el tiempo de session.

Por favor, fijate lo que hacen los codigos antes de seguir, por que no estas entendiendo nada.
__________________
Mono programando!
twitter.com/eguimariano
  #12 (permalink)  
Antiguo 06/12/2011, 05:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 129
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problema con session_handler

Mirare de informarme mas pero es que de sesiones encuentro poco por internet :(

Etiquetas: mysql, 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 22:56.