1326 visitas 4 respuestas

validacion de usuario usando mysql

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 juanblack desde Chile

Registrado desde: 19 Aug 09

Respuestas

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

0

por Irozga desde España

Registrado desde: 19 Jul 07

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

0

por juanblack desde Chile

Registrado desde: 19 Aug 09

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

0

por jurena desde España

Registrado desde: 04 Sep 07

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>";

}

?>

0

por juanblack desde Chile

Registrado desde: 19 Aug 09

o busca en nuestros foros