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( $fp, filesize( $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.