Foros del Web » Programando para Internet » PHP »

para cluste - sesiones

Estas en el tema de para cluste - sesiones en el foro de PHP en Foros del Web. Hola Cluster, me base en tu sistema de autenticacion de usuarios para crear un script pero no em guarda la sesion y al logearse un ...
  #1 (permalink)  
Antiguo 27/03/2004, 09:43
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 10 meses
Puntos: 8
para cluste - sesiones

Hola Cluster, me base en tu sistema de autenticacion de usuarios para crear un script pero no em guarda la sesion y al logearse un usuario se demora mucho y al final termina colgandose, aqui esta el script

Si otra persona lo ve y ve el error, please me lo dice
^
Código PHP:
<?php
    
include('includes/conex.php');
    include(
'includes/global_tab.php');
    
    if (isset(
$_POST['user']) && isset($_POST['pass'])) {
        
$q="select * from $table_login where user='".$_POST['usuario']."' && pass=password('".$_POST['clave']."')";
        
$rs=mysql_query($q,$conn);
        if (
mysql_num_rows($rs)!=0){
            
$usuarios_datos=mysql_fetch_array($rs);
            
mysql_free_result($rs);
            
mysql_close($conn);
        
            
session_name($usuarios_sesion);
            
session_start();
            
session_cache_limiter('nocache,private');
        
            
$_SESSION['usuario_login']=$usuarios_datos['user'];
            
$_SESSION['usuario_pass']=$usuarios_datos['pass'];
        
            
$pag=$_SERVER['PHP_SELF'];
            
header("Location: $pag?");
            exit();
        } else {
            
$errLogin="Los datos ingresados no son válidos";
            
$url="location: index.php?errLogin=".$errLogin;
            
header($url);
            exit();
        }
    } else {
        
session_name($usuarios_sesion);
        
session_start();
        if (!isset(
$_SESSION['usuario_login']) && !isset($_SESSION['usuario_pass'])){
            
session_destroy();
            
$errLogin="No ha iniciado una sesión";
            
$url="location: index.php?errLogin=".$errLogin;
            
header($url);
            exit();
        }
    }
?^>
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 28/03/2004, 20:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Deberías describir cuando sucede el problema .. si es cuando el usuario/contraseña es valido .. o un usuario/contraseña no valido ..

En principio no veo donde defines:

la variable $pag en:
header("Location: $pag?");

Y esa función redireccina .. así que si no tiene ahí un valor de un URL válido es probable que haga lo que mencionas ..

Otro detalle (que no es referente al problema puntual sino a los que tendras despues) es:

$errLogin="Los datos ingresados no son válidos";
$url="location: index.php?errLogin=".$errLogin;
header($url);

Si propagas por el URL frases (lease: palabras separadas por espacios) debes codificar el URL para que al otro lado recibas dicha frase correctamente y no sólo la primera palabra .. para eso usa: urlencode()

$url="location: index.php?errLogin=".urlencode($errLogin);

Y donde la recibas usa para esa variable: urldecode() ...

Pero, si te fijas en el código Original de Autentificator para representar los mensajes de error uso indices de arrays que contienen los mensajes de error .. Fijate que si modifico el URL con ese mensaje de error para poner código "malicioso" podría ser ejecutado sin problemas por tu echo $_GET['errLogin'] que tendrás en la página que muestres los mensajes de error ...

(PD: las preguntas que tengas que hacer a cualquier ususario del foro de forma personal .. por favor usa el sistema de Mensajería Privada (MP) del foro .. y si no son tan privadas no te dirigas a nadie en concreto sino, nadie entrará al menaje a colaborar..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:36.