bueno, yo utilizo el autentificador de cluster haciendo algunas variantes, les coloco el codigo:
este es: aut_verifica.inc.php
Código PHP:
<?
require ("aut_config.inc.php");
// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['user']) && isset($_POST['pass']) && isset($_POST['emp'])) {
// 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("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
$empresa=$_POST['emp'];
$usuario=$_POST['user'];
$resulta=mysql_query("select gen_basedatos,emp_codigo
from empxbase
where emp_codigo='".mysql_real_escape_string($empresa)."'" ,$db_conexion);
while ( ($datos2 = mysql_fetch_array($resulta)) )
{
$empresa2=$datos2["gen_basedatos"];
$codempresa=$datos2["emp_codigo"];
}
// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT u.usu_nombre,u.tpu_codigo,u.usu_clave,e.gen_basedatos
FROM $sql_tabla u,empxbase e
WHERE usu_nombre='".mysql_real_escape_string($_POST['user'])."' and
usu_clave='".mysql_real_escape_string($_POST['pass'])."' and
e.emp_codigo='$empresa' and e.emp_codigo=u.emp_codigo") or
die(header ("Location: $redir?error_login=1"));
// 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['user']);
// encriptamos el password en formato md5 irreversible.
$password = $_POST['pass'];
// 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['usu_nombre']) {
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['usu_clave']) {
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($usuarios_sesion);
// incia sessiones
session_start();
// Paranoia: decimos al navegador que no "cachee" esta página.
header("ETag: PUB" . time());
header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()-10) . " GMT");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 5) . " GMT");
header("Pragma: no-cache");
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
session_cache_limiter('nocache,private'); // quite por que no se puede pa' tras
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
$_SESSION['usu_nombre']=$usuario_datos['usu_nombre'];
//definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
$_SESSION['usu_clave']=$usuario_datos['usu_clave'];
$_SESSION["ba"]=$empresa2;
$_SESSION["codempresa"]=$codempresa;
$_SESSION["usu_tipo"]=$usuario_datos['tpu_codigo'];
// 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
?>
<script>
alert("El Usuario Digitado es Incorrecto")
window.location="index.php";
</script>
<?
//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['usu_nombre']) && !isset($_SESSION['usu_clave'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die ("Acceso incorrecto!");
exit;
}
}
?>
y en las demas coloco:
Código PHP:
require("aut_verifica.inc.php");
$usuario=$_SESSION['usu_nombre'];
$l = mysql_connect("","sima","123");
mysql_select_db("General",$l);
$r=mysql_query("select t.tpu_codigo
from tipousuario t,usuario u
where u.usu_nombre='".mysql_real_escape_string($usuario)."' and
t.tpu_codigo=u.tpu_codigo" ,$l);
while ( ($rf = mysql_fetch_array($r)) )
{
$tpu_codigo=$rf["tpu_codigo"];
}
con $tpu_codigo, recupero el tipo de usuario.
bueno ahora creo que pueden analizar que puede estar pasando, y si ve cluster esto pues que me pegue una manita, vean el codigo que a veces no sabemos donde estamos cometiendo errores nosotros mismos.
les agradeceria mucho.