Foros del Web » Programando para Internet » PHP »

problemas con sesiones

Estas en el tema de problemas con sesiones en el foro de PHP en Foros del Web. Hola cluster a ver mira estoy mareando con tu autentificator pero no entiendo muy bien q me pasa: yo creo un form con usuario y ...
  #1 (permalink)  
Antiguo 29/01/2003, 11:52
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
problemas con sesiones

Hola cluster a ver mira estoy mareando con tu autentificator pero no entiendo muy bien q me pasa:

yo creo un form con usuario y pass:

Cita:
<form action="aut_grupos_verifica.php" method="post">
Usuario: <input type="text" name="usuario">
Passwor: <input type="password" name="pass">
<INPUT TYPE="submit">

eso me manda a la pagina aut_grupos_verifica.php (no he innovado mucho buscando un nombre jeje )

y esto es lo que tengo en la pagina

Código PHP:
<?
// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['usuario']) && isset($_POST['pass'])) {

// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexion mysql_connect("localhost""musikaid_user""pass") or die(header ("Location:  $redir?error_login=0"));
    
mysql_select_db ("musikaid_altas"$db_conexion);

// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta mysql_query("SELECT ,usuario,pass FROM grupos WHERE usuario='".$_POST['usuario']."'")or die(header ("Location:  $redir?error_login=0"));
 
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 
if (mysql_num_rows($usuario_consulta) != 0) {

    
// eliminamos barras invertidas y dobles en sencillas
    
$login stripslashes($_POST['usuario']);
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_array($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($db_conexion);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // página de error.
    
if ($login != $usuario_datos['usuario']) {
           
Header ("Location: $redir?error_login=4");
        exit;}

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la página de error
    
if ($password != $usuario_datos['pass']) {
        
Header ("Location: $redir?error_login=3");
        exit;}

    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name(gruposmusikaid);
     
// incia sessiones
    
session_start();
// Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.
    // definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
    
$_SESSION['usuario_id']=$usuario_datos['id_grupo'];

    
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_login']=$usuario_datos['usuario'];

    
//definimos usuario_password con el password del usuario de la sesión actual 
    
$_SESSION['usuario_password']=$usuario_datos['pass'];


    
// Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    
$pag=$_SERVER['PHP_SELF'];
    
Header ("Location: $pag?");
    exit;
    
   } else {
      
// si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      
Header ("Location: $redir?error_login=2");
      exit;}
} else {

// -------- Chequear sesión existe -------

// usamos la sesion de nombre definido.
session_name(gruposmusikaid);
// Iniciamos el uso de sesiones
session_start();

// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.

if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die (
"Error cod.: 2 - Acceso incorrecto!");
exit;
}
}

?>

y lo que me pasa es q siempre que meto el usuario y el pass me sale el Error cod 2: Acceso incorrecto!

q esta al final del codigo

mira si lo quere ver el form esta AQUI .

usuario lord
pass 1

no entiendo muy bien q pasa a ver si me puedes ayudar , gracias

Última edición por lochorui; 29/01/2003 a las 12:00
  #2 (permalink)  
Antiguo 29/01/2003, 12:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En la documentación creo dejar claro q su uso es el siguiente:

de tu "action" de tu formulario .. lo apuntas a (en tu caso):

aut_grupos_verifica.php .. y este debe contener:

<?
require("aut_verifica.inc.php"); // si, el original o le cambias el nombre ..
// tu regla de validacion de nivel si lo deseas ..

// resto de tu pagina q requiere autentificación ...
?>

Usalo como se ha diseñado .. tiene un archivo config.inc.php que es donde debes indicar los datos de conexion a tu BD q se piden y el nombre de la session q le vas a dar si es q quiers usarlo ...

cosas como esta q haces en tu "versión" .. no son correctas ...
session_name(gruposmusikaid);
Revisa el código original .. y usalo.


Por lo demas .. Autentificator requiere de que en tu servidor tengas Habilitadas el uso de sessiones y Que se propague el SID en modo automatico.

Mira tu php.ini o <? phpinfo(); ?> ... y revisa:
session.use_trans_sid = 1

Si usas propagación por cookie del SID (en el mismo php.ini sale su estado o en un phpinfo() ..) asegurate que tu navegador acepta cookies . pues es ahí . .en una cookie donde PHP propaga el SID (Identificador Único de session) ..

El error que te da .. "Cod. 2" .. es porqué no puede leer las variables de sessión. Bien porque no se propaga el SID .. o porque no estan habilitadas ..

Un saludo,
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 01:17.