Foros del Web » Programando para Internet » PHP »

autentificacion de usuario

Estas en el tema de autentificacion de usuario en el foro de PHP en Foros del Web. hola amigos estoy empleando parte del Autentificator de Cluster en mi web, esta parte es la de aut_verifica.inc.php ahi casi todo el codigo lo utilizo ...
  #1 (permalink)  
Antiguo 09/08/2006, 18:27
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 2 meses
Puntos: 0
autentificacion de usuario

hola amigos estoy empleando parte del Autentificator de Cluster en mi web, esta parte es la de aut_verifica.inc.php ahi casi todo el codigo lo utilizo cosas minimas q he modificado la cosa esta que cuando me kiero autentificar colocando el login y el password correctamente me envia al mensaje "Acceso Incorrecto 2". no me respeta esto :

if (isset($_POST['login']) && isset($_POST['pass'])) {

al parecer esto me lo toma como falso y se ejecuta el codigo donde esta el mensaje "acceso incorrecto2":

session_name($usuario_session);
session_start();

if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){

session_destroy();
die ("Error cod.: 2 - Acceso incorrecto!");
echo $login;
echo $pass;
exit();
}
}

pero cuando ingreso los datos de forma incorrecta:

no entra al sistema pero se ejecuta el codigo donde puse al principio.

aqui dejo todo el codigo:

Código PHP:
<?

include("conexion/funciones.php");
conectar();

$url explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
$redir=$pag_referida;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
die (
"Error cod.:1 - Acceso incorrecto!");
exit;
}

if (isset(
$_POST['login']) && isset($_POST['pass'])) {


if (
$login == "" or $pass == ""){
header("Location: login.php?error_login=0");
exit();
}

$Recordset="SELECT idusuario,nombres,login,password FROM usuarios WHERE login='".$_POST['login']."'";
$Result=mysql_query($Recordset) or die (mysql_error());

$totalfilas=mysql_num_rows($Result);
if(
$totalfilas != 0){

$usuario=stripslashes($_POST['login']);
$password=md5($_POST['pass']);

//if ($usuario == $FILA['login'] and $password == $FILA['password']){
//echo "Autentificado";
//exit();
//}

$FILA=mysql_fetch_array($Result);

mysql_free_result($Result);
mysql_close();

if (
$usuario != $FILA['login'] or $password != $FILA['password']){
header ("Location: login.php?error_login=1");
exit();
}

unset(
$usuario);
unset(
$password);

session_name($usuario_session);
session_cache_limiter('nocache,private');
session_start();

$_SESSION['usuario_id']=$FILA['idusuario'];  
$_SESSION['usuario_login']=$FILA['login'];
$_SESSION['usuario_password']=$FILA['password'];

$pag=$_SERVER['PHP_SELF'];
header("Location: $pag?");
exit();

}else{
    
header("Location: $redir?error_login=1");
    exit();
}
}else{

session_name($usuario_session);
session_start();

if (!isset(
$_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){

session_destroy();
die (
"Error cod.: 2 - Acceso incorrecto!");
echo 
$login;
echo 
$pass;
exit();
}
}
?>
Gracias por su ayuda prestada

Última edición por Cluster; 09/08/2006 a las 18:46
  #2 (permalink)  
Antiguo 09/08/2006, 18:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
if (isset($_POST['login']) && isset($_POST['pass'])) {


if ($login == "" or $pass == ""){
header("Location: login.php?error_login=0");
exit();
}


Eso no es nada correcto .. Para que usas es:
if ($login == "" or $pass == ""){
Si ya está la validaciòn por el isset() aplicado a los $_POST['variables'] ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/08/2006, 10:02
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias por tu ayuda cluster elimine esto que me dijiste pero igual me manda al mensaje de error 2 de Acceso incorrecto. Revisare si se cumple la condicion de la consulta.

Si tienes tiempito me das una manito
Nuevamente gracias
  #4 (permalink)  
Antiguo 10/08/2006, 17:40
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 14 años, 2 meses
Puntos: 0
Me he dado cuenta que este codigo:

// $pag=$_SERVER['PHP_SELF'];
// header ("Location: $pag?");
// exit;

es el que hace que que me no me permite autentificarme me envia al error de Error: 2 Acceso Incorrecto

pero si lo desactivo me autentifica bien
Gracias por su ayuda
  #5 (permalink)  
Antiguo 10/08/2006, 18:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Supongo que por algùn lado tendràs definido $usuario_session (en tu "funciones.php"? .. o donde .. eso es necesario tal cual lo usas (si te basastes en "Autentificator" lo usa).

session_name($usuario_session);

Por otro lado .. el còdigo que destacas como problema no es la "validación" que se hace sino la -consecuencia- .. Me explico..

Lo que se está validando es la existencia de ciertas variables de sesiòn (que se hacen en ese IF()

Realmente no he tenido oportunidad de probar tu còdigo .. me hago un lio con tanto if() else .. para seguir su flujo. Realmente te aconsejo encarecidamenten que pruebes "Autentificator" tal cual se entrega con sus scripts correspondientes y comentes si esos te funcionan .. asì descartamos problemas con sesiones (con la creación y propagación de estas).

Te recuerdo que AUtentificator asume que se propaga el SID por cookies (pues para comodidad tuya y seguridad no se hace por el URL), esto implica que tu php.ini tenga configurado:

session.use_trans_sid = OFF
session.use_cookies = ON

Y como se propaga el SID en cookies, debes tener habilitado la aceptación de cookies de todo tipo en tu navegador.

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 08:13.