Foros del Web » Programando para Internet » PHP »

Tengo una duda con login de usuarios por sesiones

Estas en el tema de Tengo una duda con login de usuarios por sesiones en el foro de PHP en Foros del Web. Buenas. He escrito este codigo para verificar si un usuario ha iniciado session. Código PHP: session_start (); $ok  =  0 ; // Requisitos para ver la pagina if( $_SESSION [ ...
  #1 (permalink)  
Antiguo 17/08/2009, 13:04
 
Fecha de Ingreso: abril-2005
Mensajes: 100
Antigüedad: 19 años
Puntos: 0
Tengo una duda con login de usuarios por sesiones

Buenas. He escrito este codigo para verificar si un usuario ha iniciado session.

Código PHP:
session_start();
$ok 0;
// Requisitos para ver la pagina
if($_SESSION['id_usuario'] > 0){ $ok++; }
if( ... ){ 
$ok++; } 
if( ... ){ 
$ok++; } 
// Verifica si se cumple todo los requisitos,
// si no se cumple vuelve al index y muestra el login.
if($ok != ){ header('Location: index.php'); exit(); } 

// A partir de aqui el resto del codigo de la pagina, si inició session. 
El codigo es muy simple y tambien practico porque lo puedo meter en un archivo a parte y llamarlo con un include en las paginas que sea necesario estar logueado.

Pero nose si puedo confiar en el al 100%. No quiero que la seguridad de la pagina se vea comprometida. Puedo fiarme de ese header(); exit();?? de que si no se cumple ningun requisito vuelva al index y no continue con el codigo de la pagina???
  #2 (permalink)  
Antiguo 17/08/2009, 13:08
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Tengo una duda con login de usuarios por sesiones

porque no te manejas con cookies creo que las puedes controlar mejor...
  #3 (permalink)  
Antiguo 17/08/2009, 13:48
 
Fecha de Ingreso: abril-2005
Mensajes: 100
Antigüedad: 19 años
Puntos: 0
Respuesta: Tengo una duda con login de usuarios por sesiones

nose, siempre me ha resultao mas comodo trabajar con sesiones, pero al margen de lo que use cookies o sessiones, mi duda va dirigida sobre la ultima linea.

Código PHP:
if($ok != ){ header('Location: index.php'); exit(); } 
No vaya a ser que de alguna manera se salte ese punto de control y ejecute todo el resto del codigo comprometiendo la seguridad de la pagina.

Se que podria ponerlo asi

Código PHP:
if($ok == ){ 

    
// Si inició session, continua corgando la pagina
    // de lo contrario vuelve al index.

    // Resto del codigo.

} else { header('Location: index.php'); exit();  } 
Pero la idea era meter el codigo de control con un simple include al comienzo de cada pagina, pero de esta manera se volveria mas enredoso.
  #4 (permalink)  
Antiguo 17/08/2009, 14:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Tengo una duda con login de usuarios por sesiones

valida con isset($_SESSION['']), es mucho mas seguro, en cuanto a las cookies, las sesiones internamente las usan, además te dan la opcion de no usarlas con enable_trans_sid, pero no te recomiendo lo anterior
  #5 (permalink)  
Antiguo 17/08/2009, 14:34
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Tengo una duda con login de usuarios por sesiones

el isset es el primer punto de comparacion con la variable, si es que viene vacia o con datos
de todas maneras 4 if y ningun else?? :omg

la mejor foma es como lo hiciste la segunda vez!
  #6 (permalink)  
Antiguo 17/08/2009, 15:02
 
Fecha de Ingreso: abril-2005
Mensajes: 100
Antigüedad: 19 años
Puntos: 0
Respuesta: Tengo una duda con login de usuarios por sesiones

Eso es precisamente lo que me gustaria saber, yo siempre uso la segunda forma. Pero analizando detenidamente la primera ¿porque iva a ser peor? si no se cumplen las condiciones te devuelve al index con el header() e impide que continue el codigo con el exit(), no necesita ningun else ¿porque es peor? ¿porque iva a fallar? no tiene porqué, pero claro siempre me queda la duda XD
  #7 (permalink)  
Antiguo 17/08/2009, 15:22
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Tengo una duda con login de usuarios por sesiones

dije que era la mejor forma simplemente porque asi lo indica la logica y asi es el standar
1 if 1 else, nada mas por eso

el que no lo tengas no influye en nada
aunque al ahorrarte 4 else piedes 4 oportunidades de mandar al wn hacia afuera si no cumple la condición XD

un poco más de seguridad no?
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 09:10.