Foros del Web » Programando para Internet » PHP »

Autenticacion Http con PHP y Mysql

Estas en el tema de Autenticacion Http con PHP y Mysql en el foro de PHP en Foros del Web. Buenas tardes, foreros una vez mas necesito de su ayuda en esta ocación con la autenticacion http. Resulta que indagando por internet he encontrado muchos ...
  #1 (permalink)  
Antiguo 03/10/2012, 11:54
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 7 años, 8 meses
Puntos: 19
Autenticacion Http con PHP y Mysql

Buenas tardes, foreros una vez mas necesito de su ayuda en esta ocación con la autenticacion http.

Resulta que indagando por internet he encontrado muchos tutoriales y uno de los cuales encontre este http://www.forosdelweb.com/f18/ayuda...-mysql-735923/

el codigo aparentemente funciona

Código PHP:
<?php
        
    
include("src/Principal.php"); //conexion a la BD y demas funciones
    
    
if(!isset($_SERVER['PHP_AUTH_USER']) || (!isset($_SERVER['PHP_AUTH_PW'])))    {    
        
$user $_SERVER['PHP_AUTH_USER'];
        
$pass Encriptar($_SERVER['PHP_AUTH_PW']);
        
$query ="SELECT * FROM tusuarios WHERE cId_Usuario='$user' AND cPassword ='$pass'";
        echo 
mysql_error();
        
$result EjecutarSql($query);
        
$validate mysql_num_rows($result);
        
header('WWW-Authenticate: Basic realm="Acceso"');
        
header('HTTP/1.0 401 No esta Autorizado');
        echo 
"Please leave the site";
        exit;;
    
             if(!
$validate) {
                echo 
"vete";
             exit;
             }
    }
?>
<html>
<head>
    <title>Hola</title>
</head>
<body>
<h2>BIENVENIDO</h2>

</body>
</html>
Digo aparentemente porque al probarlo me permite entrar con cualquier valor que ingrese.. como sino pasara por el query, aparte de eso quiero usar el nombre de usuario ingresado para otros querys.

Si me pueden ayudar con eso estaria muy agradecido.!
  #2 (permalink)  
Antiguo 03/10/2012, 12:07
 
Fecha de Ingreso: abril-2012
Mensajes: 115
Antigüedad: 7 años, 7 meses
Puntos: 2
Respuesta: Autenticacion Http con PHP y Mysql

Prueba así

Código PHP:
    if(!isset($_SERVER['PHP_AUTH_USER']) || (!isset($_SERVER['PHP_AUTH_PW'])))    {    
        
$user $_SERVER['PHP_AUTH_USER'];
        
$pass Encriptar($_SERVER['PHP_AUTH_PW']);
        
$query ="SELECT * FROM tusuarios WHERE cId_Usuario='$user' AND cPassword ='$pass'";
        echo 
mysql_error();
        
$result EjecutarSql($query);
        
$validate mysql_num_rows($result);


    
             if(!
$validate) {
                
header('WWW-Authenticate: Basic realm="Acceso"');
                
header('HTTP/1.0 401 No esta Autorizado');
                echo 
"Please leave the site";
                echo 
"vete";
             exit;
             }
    } 
  #3 (permalink)  
Antiguo 03/10/2012, 12:13
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 7 años, 8 meses
Puntos: 19
Respuesta: Autenticacion Http con PHP y Mysql

Gracias por responder..! probe con el codigo modificado pero aun asi me pasa con cualquier usuario y clave que le ingrese... asi no este en la BD no se que hacer!
  #4 (permalink)  
Antiguo 04/10/2012, 10:58
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 7 años, 8 meses
Puntos: 19
Respuesta: Autenticacion Http con PHP y Mysql

Buenos días indagando consegui un codigo que funciona!! pero ahora me mandaron a adaptarlo el codigo es el siguiente:

autenticacion.php
Código PHP:
<?
include("src/Principal.php"); //clase conexion y demas funciones
function validateUser () {


    
$user $_SERVER['PHP_AUTH_USER'];
    
$password Encriptar($_SERVER['PHP_AUTH_PW']);
    
    
$sql "SELECT Count(*) as Number FROM tusuarios WHERE cId_Usuario='" $user "' AND cPassword='" $password "'";
    
$query EjecutarSql($sql) or die(mysql_error());

    
$result mysql_fetch_array($query);
    
$NumberOfUsers $result['Number'];

    if (
$NumberOfUsers != 1) {
        
        
header('WWW-Authenticate: Basic realm="Site Administration Area"');
        
header('Status: 401 Unauthorized');
        
/* Special Header for CGI mode */
        
header('HTTP-Status: 401 Unauthorized');
    
        
?>
<html>
<head>
<title>Access Unauthorized</title>
</head>
<body>
<h1>Access to the requested page denied</h1>
You have been denied access to this page for entering an 
incorrect or non-exist username and password.<br><br>
Press 'Refresh' to retry the login procedure.
</body>
</html>
        <?php

        
exit;
    } 
}    

?>
Index.php
Código PHP:
 <?php require_once("autenticacion.php"); validateUser(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Autenticacion</title>
</head>

<body>
<h2>BIENVENIDO <?=$_SERVER['PHP_AUTH_USER']?></h2>
</body>
</html>
lo probe y funciona correctamente pero ahora me mandaron a hacer la autenticacion con el Active Directory y la verdad no tengo la mas minima idea de como adactarlo a este codigo.

Espero me puedan ayudar.

Etiquetas: autenticación, mysql, https
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 18:56.