Foros del Web » Programando para Internet » PHP »

Autentificación HTTP sencilla

Estas en el tema de Autentificación HTTP sencilla en el foro de PHP en Foros del Web. He creado un sistema sencillo de autentificación HTTP que me funciona perfectamente de manera local: Código PHP: function  auth ( $nombre , $password ) { $sql  ...
  #1 (permalink)  
Antiguo 30/12/2006, 15:53
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Autentificación HTTP sencilla

He creado un sistema sencillo de autentificación HTTP que me funciona perfectamente de manera local:

Código PHP:
function auth($nombre,$password) {
$sql "select * from panel"//Obtendo los datos de mySQL
$consulta mysql_query($sql);
$fila mysql_fetch_array($consulta);
$mysql_nombre $fila['nombre'];
$mysql_password $fila['password'];

if(
$nombre != $mysql_nombre and $password != $mysql_password) {
   return 
false;
 } else {
   return 
true;
   }
//else
//function

//Si mi funcion "auth()" es falsa entonces mando las cabeceras HTTP de autentificación.
if(!auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
   
header('WWW-Authenticate: Basic realm="Panel"');
   
header('HTTP/1.0 401 Unauthorized');
   echo 
"<b>No</b> tienes permiso para acceder";
   exit();
//if 
Sin embargo una ves que subo este código al servidor la historia es distinta. Me sale el cuadro de diálogo para poner un nombre y una contraseña pero por mas que ponga el nombre y la contraseña parecería que éstos no son los válidos, incluso he quitado a mySQL de la mezcla para ver si ese era el problema:

Código PHP:
function auth($nombre,$password) {
$mysql_nombre "usuario";
$mysql_password "pass";
if(
$nombre != $mysql_nombre and $password != $mysql_password) {
   return 
false;
 } else {
   return 
true;
   }
//else
//function

if(!auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
   
header('WWW-Authenticate: Basic realm="Panel"');
   
header('HTTP/1.0 401 Unauthorized');
   echo 
"<b>NO</b> tienes permiso para acceder";
   exit();
//if 
Y sigue sucediendo lo mismo. ¿Cuál podría ser el problema?

Localmente tengo lo siguiente:
Apache/2.0.59 (Win32)
PHP version:5.1.6
MySQL version:5.0.24a-community-nt


Mi servidor tiene lo siguiente:
Apache 1.3.37 (Unix)
MySQL 4.1.21-standard
PHP 4.4.3


Cualquier idea será muy bien recibida. Gracias!
  #2 (permalink)  
Antiguo 30/12/2006, 19:00
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Autentificación HTTP sencilla

Probablemente el servicio de hosting halla modificado la configuración de Apache, por lo que no te va a funcionar y además vas a generar un log de errores.
Deberias cambiar a un sistema de autenticación con Sessiones.
  #3 (permalink)  
Antiguo 30/12/2006, 19:11
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Autentificación HTTP sencilla

Es lo más probable... Ya he escrito al servicio de soporte técnico de la compañía que hosepda mi sitio haber que se puede hacer.

Noramalmente utilizo sesiones y formularios, creo que tendré que regresar a este método.

Gracias!

PD. Si alguien más sabe que podría estar pasando agradecería su información.
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 11:21.