Foros del Web » Programando para Internet » PHP »

autenticar usuarios (del FAQ)

Estas en el tema de autenticar usuarios (del FAQ) en el foro de PHP en Foros del Web. Hola, no logro hacer rular el FAQ de Temaqueja sobre autenticación de usuarios, cual codigo reposteo aqui: Código PHP: <? /* Autenticación */    $muerte  =  ...
  #1 (permalink)  
Antiguo 11/03/2003, 00:33
Avatar de kaiowas  
Fecha de Ingreso: septiembre-2001
Ubicación: el averno...
Mensajes: 531
Antigüedad: 16 años, 9 meses
Puntos: 0
autenticar usuarios (del FAQ)

Hola, no logro hacer rular el FAQ de Temaqueja sobre autenticación de usuarios, cual codigo reposteo aqui:

Código PHP:
<?
/* Autenticación
*/
  
$muerte 'Acceso Denegado!!!!  :-p';

  if(!isset(
$PHP_AUTH_USER)) {
    
header('WWW-Authenticate: Basic realm="Nombre del Site"');
    
header('HTTP/1.0 401 Unauthorized');
    echo 
$muerte;
    exit;
  } else {
    
// valido mi clave en el servidor ...
    
if (@$db_link mysql_connect("localhost""usuario""clave")) {
        @
mysql_select_db("base_de_datos");
    }

    
$sql "select * from usuarios 
                where ((usr_login = '$PHP_AUTH_USER') 
                     and (usr_pass = '$PHP_AUTH_PW')) "
;

    
$qpassmysql_query($sql$db_link);
    if(
mysql_num_rows($qpass)<>1)  {
      echo 
$muerte;
      exit;
    }

  }
?>
- probé a modificar varias cosas, como que empiece con <?php en vez de <?

- también me marché a php.net a investigar sobre el asunto, y por lo que veo, desde php 4.1 hay que usar la superglobal $_SERVER dejando asi el principio del if: (mi version es 4.3.0)

Código PHP:
if (!isset($_SERVER['PHP_AUTH_USER'])) { 
y bueno, no logro hacerlo rodar, me he intentado documentar y tampoco....

¿que acaso no tendré algo mal configurado en mi php? cosa que dudo por que no le he tocado, ni manipulado a penas.... y lo tengo como módulo de apache, ya que como CGI no funcionaría tampoco este ejemplo.

Agradecería un pelin de ayuda, y si hay algo mal en el FAQ, pues de paso aviso para que se corrija....

Gracias
  #2 (permalink)  
Antiguo 11/03/2003, 07:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 16 años, 5 meses
Puntos: 126
Register_globals como lo usas? a OFF o a ON ?

Si lo usas a ON y php como Módulo de Apache no deberias tener problemas .. Pero si lo usas a OFF deberias cambiar todos las referecias a $PHP_AUTH_xxx por su acceso por el array superglobale $_SERVER .. al igual que hiciestes con la primera .. con el resto tambien.

Y .. sobre todo indica que error obtienes o cual es el comportamiento q hace ese script al ejecutarlo.

Otro detalle .. aunque parezca obvio .. la autentificación se hace via HTTP sobre una base de datos Mysql (una tabla) .. El modelo de datos de la tabla NO se incluye (el SQL) .. así q tendras q "deducirlo" de las llamadas que se hacen a campos de la tabla que se usa para los usuarios ... (sería bueno q Temaqueja lo pusiera tambien .. Pero eso es cosa que Ud's los usuarios de esas "faq's" lo pidieran a los autores de la FAQ en cuestión)

Un saludo,
  #3 (permalink)  
Antiguo 12/03/2003, 04:38
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 7 meses
Puntos: 5
En el manual de PHP, concretamente en la URL

http://www.php.net/manual/es/features.http-auth.php

te explica las cosas que tienes que tener en cuenta para utilizar la autenticación de usuarios a través de HTTP.

Si te fijas, una de las cosas que te explica es que el header debe llevar comillas dobles y no comillas simples como tú tienes puesto.

Por eso te falla el código.

Un beso
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 23:42.