validacion de usuario usando mysql

1376 visitas 4 respuestas

holas denuevo, realizando un ejemplo de validacion de usuario usando mysql tengo problemas, ya q no en ningun momento me pide el usuario y contraseña , para luego compararlo en la BD. . el codigo es el siguiente :

<?php

// USUARIO NO ESTA IDENTIFICADO AUN.

$auth= false; 

if(isset($PHP_AUTH_USER) && isset ($PHP_AUTH_PW)) { // CONEXION A MYSQL include("conecta.php"); $link=Conectarse();

// SELECCIONAMOS LA BASE DE DATOS mysql_select_db("base1",$link);

// GENERAMOS LA CONSULTA

$sql= " select * from users where username = $PHP_AUTH_USER and password = $PHP_AUTH_PW";

// EJECUTAMOS CONSULTA Y COLOCAMOS LOS RESULTADOS EN $RESULT

$result= mysql_query($sql);

// OBTENER EL NUMERO DE FILAS DE $RESULT
$num= mysql_numrows ($result);

if ( $num != 0)
{
// SI SE ENCUENTRA UNA COINCIDENCIA, ENTONCES EL USUARIO ES AUTENTICADO.
 $auth= true;
 }

}

    if (!$auth)

    {
      header(' WWW-Authenticate: Basic realm = "Private"');
      header(' HTTP/1.0 401 Unauthorized ');
    echo " autorizacion rekerida ";
    exit;
    }
    else {
    echo " <p> UD. ESTA AUTENTICADO! </p>";
    }

?>

por desde Chile

Registrado desde: 19 Aug 09

Respuestas

0 0

No pide el user/pass, pero sabes en que "rama" del if entra?

Prueba a en lugar de los $PHP_AUTH_USER poner $_SERVER['PHP_AUTH_USER'] y lo mismo para la del pass

Si entra en la primera el problema está con los headers, si entra en la segunda mira el valor de $auth antes del if. Si antes del if $auth es TRUE mira si entra en el if anterior y si lo hace comprueba el valor de las variables $_SERVER

por desde España

Registrado desde: 19 Jul 07
0 0

lo puse en ambos, y en me tira error en la consulta sql : Parse error: parse error, expecting T_STRING' orT_VARIABLE' or `T_NUM_STRING' in C:\Weblocal\validacion.php on line 19

por desde Chile

Registrado desde: 19 Aug 09
0 0

Mira si poniendo las comillas. Recuerda que probablemente el usuario y la contraseña son string, cadena de texto: $sql= " select * from users where username = '$PHP_AUTH_USER' and password = '$PHP_AUTH_PW'";

además, debes escribir (te falta un guión bajo): $num= mysql_num_rows ($result);

Por otra parte, como te dice Irozga no pareces recoger el dato desde el formulario. No vemos el método que empleas. Ve probando trozo de código tras trozo

por desde España

Registrado desde: 04 Sep 07
0 0

tengo una duda, pq el formulario de acceso solo lo muestra 1 vez? coloque este pequeño ejemplo para ver si mostraba la ventana de acceso pero la muestra solo una vez a q se debe?

<?php

if(!isset($_SERVER[PHP_AUTH_USER])) {

header('WWW-Authenticate: Basic realm="Acceso restringido="');
header('HTTP/1.0 401 Unauthorized');
echo 'autorizacion rekeridA';
exit;
}
else
{
echo " Usuario : $PHP_AUTH_USER <br>";
echo " Contraseña : $PHP_AUTH_PW <br>";

}

?>

por desde Chile

Registrado desde: 19 Aug 09