Foros del Web » Programando para Internet » PHP »

problemas con autentificator de Cluster

Estas en el tema de problemas con autentificator de Cluster en el foro de PHP en Foros del Web. hola , estoy usando tal para autentificar usuarios, y lo he modificado un poco en relacion a mis necesidades, les cuento un poco: en la ...
  #1 (permalink)  
Antiguo 20/09/2009, 17:19
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
problemas con autentificator de Cluster

hola , estoy usando tal para autentificar usuarios, y lo he modificado un poco en relacion a mis necesidades, les cuento un poco:

en la pagina de formulario, tengo las entradaes de texto user y pass, cuando el usuario presiona el boton para enviar las variables, yo hice que el script hiciera una llamada a si mismo PHP_SELF para que pòsteriormente un if recogiera esas variables y las encriptara y las enviara por otro formulario que estaba en el if, ese script tiene como accion aut_verifica.in.php, a tal script me llegan bien las variables enviadas por el segundo form (variables ya encriptadas).

en el verifica.inc.php se desncriptan los datos y posteriormente se comparan con la bd (hasta ahi ningun problema), el tema es que no me funciona el script

con esta funcion envio el segundo form (variables ya encriptadas)

<script>
document.onLoad = setTimeout('document.encripta.submit()',50);
</script>

este es el code del segundo form

<form id="encripta" name="encripta" action="../../includes/reddir.php" method="post" >

<div class="form-valida">Validando Datos...</div>

<input type="hidden" name="usuario_encriptado" value="<? echo $user_binario; ?>" />
<input type="hidden" name="pass_encriptado" value="<? echo $pass_binario; ?>" />
<input type="hidden" name="coord1" value="<? echo $coord1_crypt; ?>" />
<input type="hidden" name="coord2" value="<? echo $coord2_crypt; ?>" />
<input type="hidden" name="coord3" value="<? echo $coord3_crypt; ?>" />


el code del aut_verifica.in.php
Código PHP:
require ("aut_config.inc.php");
require (
"Librerias/AES/AES.class.php");

// chequear página que lo llama para devolver errores a dicha página.

$url explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;

// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){

//echo "Error cod.:1 - Acceso incorrecto!";
header ("Location: error.php");
exit;
}

function 
hex2bin($h)
  {
  if (!
is_string($h)) return null;
  
$r='';
  for (
$a=0$a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
  return 
$r;
  }

$z "abcdefghijuklmno0123456789012345";
$mode "CBC";
$iv "1234567890abcdef";

$aes = new AES($z$mode$iv);

$usuario_post $_POST['usuario_encriptado'];                 // Usuario ingresado en hexadecimal
$pass_post $_POST['pass_encriptado'];                        // Pass ingresado en hexadecimal

$usuario_binario hex2bin($usuario_post);                    // se convierte la cadena usuario en binario
$password_binario hex2bin($pass_post);                    // se convirete la cadena password en binario

$usuario_decrypt $aes->decrypt($usuario_binario);            // se desencripta el usuario
$pass_decrypt $aes->decrypt($password_binario);            // se desencripta el password

if (isset($_POST['usuario_encriptado']) && isset($_POST['pass_encriptado']))
{

// 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_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die(header ("Location:  $redir?error_login=0"));
mysql_select_db("$sql_db");

// realizamos la consulta a la BD para chequear datos del Usuario.

$usuario_consulta mysql_query("SELECT * FROM $sql_tabla WHERE activo = 1 and usuario ='" .$usuario_decrypt"'") or die(header ("Location:  $redir?error_login=1"));

$consulta_desabilitado mysql_query("SELECT activo FROM $sql_tabla WHERE usuario ='" .$usuario_decrypt"'") or die(header ("Location:  $redir?error_login=1"));

$muestra_desabilitado mysql_fetch_array($consulta_desabilitado);


if (
$muestra_desabilitado['activo'] == '0'):
Header ("Location: $redir?error_login=7");
        exit;
endif;


// 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($usuario_decrypt);
    
// encriptamos el password en formato md5 irreversible.
    
$password md5($pass_decrypt);

    
// 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;
        endif;

    
// 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;
        endif;

    
// 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($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta página.
    
session_cache_limiter('nocache,private');
    
    
// 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'];
    
    
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_nivel']=$usuario_datos['nivel_acceso'];
    
    
//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 (formato md5 encriptado)
    
$_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($usuarios_sesion);
// 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! - Sesion Cerrada");
exit;
}



aca los errores:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php:10) in /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php on line 223

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php:10) in /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php on line 223

Warning: Cannot modify header information - headers already sent by (output started at /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php:10) in /Users/mikelcarozzi/Documents/Web/CosIT/aut_verifica.inc.php on line 246

linea 223:

session_start();
linea 246

Header ("Location: $pag?");

me he quebrado la cabeza pensando que hago mal y nada, porfa ayudaaaaaa!!!!

muchas gracias.



update:

descubri que el error esta mediado por que no se puede ejecutar
las lineas de codigo que tienen relacion a esto:

Header ("Location: $redir?error_login=2");

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Última edición por cadrogui; 20/09/2009 a las 17:34
  #2 (permalink)  
Antiguo 20/09/2009, 18:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: problemas con autentificator de Cluster

Revisa lo siguiente: http://www.forosdelweb.com/wiki/PHP:...lready_sent%3F

y también: http://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F

Saludos.
  #3 (permalink)  
Antiguo 20/09/2009, 18:39
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problemas con autentificator de Cluster

solucionado, modificando el php.ini

error_reporting = E_ALL & E_NOTICE & E_WARNING

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
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 19:30.