Foros del Web » Programando para Internet » PHP »

Formulario de login PHP para htaccess

Estas en el tema de Formulario de login PHP para htaccess en el foro de PHP en Foros del Web. Hola, estoy desarrollando una aplicacion web, en la misma tengo 2 directorios privados a los que les restringi el acceso a traves de .htaccess yun ...
  #1 (permalink)  
Antiguo 26/03/2010, 14:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 0
Formulario de login PHP para htaccess

Hola, estoy desarrollando una aplicacion web, en la misma tengo 2 directorios privados a los que les restringi el acceso a traves de .htaccess yun archivo de texto con un user y un pass, para acceder a los mismos en otra carpeta. Tb tengo una carpeta publica donde tengo una pagina de login que trabaja contra una BD.
Lo que quiero hacer es que, a través de esta página de login, si el user y pass ingresados son correctos, me permitan acceder al contenido de las carpetas privadas sin que aparezca el popup de login de los navegadores. Hasta ahora pude lograr casi todo, pero me sigue enviando la ventanita de popup.

codigo php
Código PHP:
 require('config.php');
 require(
'config_dp.php');

$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];


    
$sql="SELECT * FROM usuarios WHERE alias='".$myusername."' and clave='".md5($mypassword)."'";

    
$result=mssql_query($sql);

    
$count=mssql_num_rows($result);

    if(
$count==1){

    
session_register("myusername");
    
session_register("mypassword");

  
$PHP_AUTH_USER CLAVEARCHIVOTXT;
  
$PHP_AUTH_PW PASSARCHIVOTXT;

  if (!isset(
$PHP_AUTH_USER)) $PHP_AUTH_USER $_COOKIE['username'];
  if (!isset(
$PHP_AUTH_PW)) $PHP_AUTH_PW $_COOKIE['password'];

  
$auth false// Assume user is not authenticated

  
if (isset( $PHP_AUTH_USER ) && isset($PHP_AUTH_PW)) {

      
// Read the entire file into the variable $file_contents

      
$filename 'c:/ServidorWeb/passwd.txt';
      
$fp fopen$filename'r' );
      
$file_contents fread$fpfilesize$filename ) );
      
fclose$fp );

      
// Place the individual lines from the file contents into an array.

      
$lines explode "\n"$file_contents );

      
// Split each of the lines into a username and a password pair
      // and attempt to match them to $PHP_AUTH_USER and $PHP_AUTH_PW.

      //foreach ( $lines as $line ) {

          
list( $username$password ) = explode':'$lines[0] );

          if ( 
$username == "$PHP_AUTH_USER" ) {

              if ( 
$password == $PHP_AUTH_PW ) {

              
$auth true;
              
setcookie('username',$PHP_AUTH_USER,time()+36000);
              
setcookie('password',$PHP_AUTH_PW,time()+36000);

              }

          }

  }

      }


  if ( ! 
$auth ) {

    
header'WWW-Authenticate: Basic realm="Private"' );
    
header'HTTP/1.0 401 Unauthorized' );
    echo 
'Authorization Required.';
    exit;

  }else{
    
header("location:../private/index.html");
  } 
archivo .htaccess

Código:
AuthType Basic 
AuthName "Making Doors Open" 

php_value auto_prepend_file "../public/checklogin2.php" 

<LIMIT GET POST PUT> 
require valid-user 
</LIMIT>
Alguna idea de donde le puedo estar errando.
  #2 (permalink)  
Antiguo 26/03/2010, 16:54
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Formulario de login PHP para htaccess

Código Apache:
Ver original
  1. #AuthUserFile dirige la dirección al archivo con las contraseñas
  2. AuthUserFile /home/carpetas/.htpasswd
  3. #Tipo de autorización
  4. AuthType Basic
  5. #Esto es como el título del cuadro de dialogo que pide la contraseña
  6. AuthName "Página Protegida por Contraseña"
  7. #Esto significa que no se puede continuar sin el usuario válido.
  8. require valid-user

De aquí sólo hay que tocar la ruta y nombre de archivo de las contraseñas.

Ahora el archivo de las contraseñas se puede llamar como quieras. Por tradición se le llama .htpsswd, pero no es demasiado seguro.

Código Apache:
Ver original
  1. usuario:12isWJdQAtNkQ

Aquí tenemos el nombre de usuario, [dos puntos], y la contraseña codificada con crypt pasando como segundo argumento "12" (osea, crypt("contraseña","12"), lo cual devuelve desde PHP 12isWJdQAtNkQ).
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #3 (permalink)  
Antiguo 28/03/2010, 01:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Formulario de login PHP para htaccess

Gracias por responder amigo. Te comento, eso que me respondes, ya lo he hecho, lo que quiero hacer es evitar que me pida ese user y pass a traves de la ventanita popup del navegador, intento hacerlo directamente desde el formulario de login, primero confirmar que exista en la BD y si existe, permitirle el acceso sin ingresar nuevamente un user y pass.
No se si me explico bien? Se entiende?
  #4 (permalink)  
Antiguo 28/03/2010, 04:00
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Formulario de login PHP para htaccess

Oh, vale, eso se hace con cookies, nada de Apache. Me imagino que hay alguna manera de hacer un formulario para el htpsswd, pero ni lo conozco ni te va a funcionar.

Arriba de la página pones un condicional, si está logeado le cargas la página, y si no, le cuelgas el identificador.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #5 (permalink)  
Antiguo 28/03/2010, 10:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Formulario de login PHP para htaccess

tenes idea de como se hace con cookies?
  #6 (permalink)  
Antiguo 28/03/2010, 10:32
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: Formulario de login PHP para htaccess

Por supuesto: con la función setcookie

El esquema es el siguiente:
  1. Muestras un formulario muy simple que contenga dos campos, uno para el usuario, y otro para la contraseña.
  2. En el programa que recibe los datos del formulario (programa PHP) se comprueba que coinciden el nombre de usuario con la contraseña. Como no es muy seguro guardar la contraseña sin encriptar en la base de datos, lo mejor es que la encriptes con un algoritmo irreversible (md5 o sha1) de esta manera es imposible desencriptar la contraseña.
  3. Ahora el usuario está identificado correctamente, pero hay que pasar algo que indique que está identificado. Esto se hace con cookies.
  4. Hay muchas opciones para hacerlo con cookies. Yo generalmente uso 2 (no te voy a explicar mi sistema completo por que sería muy complejo de contar, pero te explico una solución parecida). Entonces, para hacerlo con cookies necesitas guardar con cookies:
    • El nombre de usuario: para saber que usuario es.
    • Algún identificador único que no se pueda copiar. Mi sistema tiene un identificador dinámico, tu puedes hacer lo que quieras. Lo mas simple es guardar la codificación irreversible de la contraseña (no es excesivamente seguro, pero lo suficiente para ir empezando).
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #7 (permalink)  
Antiguo 29/03/2010, 06:34
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Formulario de login PHP para htaccess

Bueno anes, te agradezco tu ayuda, yo eso lo venia haciendo con session, pero me pidieron otra cosa, asi voy a ver como sigo. Gracias otra vez.
  #8 (permalink)  
Antiguo 28/04/2010, 17:54
 
Fecha de Ingreso: abril-2010
Mensajes: 4
Antigüedad: 14 años
Puntos: 0
Respuesta: Formulario de login PHP para htaccess

que tal...

yo necesito hacer mas o menos lo mismo peor en mi caso si es necesario el htaccess porque lo que yo quiero es tener acceso a los archivos y no a una simple pagina y comprobar si esta logeado o no

el htaccess seria precisamente para no tener acceso a los archivos, porque de otra forma se puede acceder a ellos con la url completa...

entonces teniendo el htaccess y el ht lo que necesito es logearme desde otra pagina (carpeta publica) y en esa pagina mostrar los archivos de la carpeta protegida...

podrian ayudarme con esto????
  #9 (permalink)  
Antiguo 28/04/2010, 19:00
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Formulario de login PHP para htaccess

necesitas prgramar un cortafuego que restrinja o permita ingreso por rango ip ademas de scanear proxys

saludos!!

Etiquetas: htaccess, login, formulario
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 00:30.