RSS Forums RSS
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 19086 | Replies: 33
Reply
Join Date: Mar 2005
Posts: 7
Reputation: Boat_2005 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Boat_2005 Boat_2005 is offline Offline
Newbie Poster

html/php form for .htaccess validation

  #1  
Mar 28th, 2005
Until Microsoft released their security update to IE, I used an html form for the user to input his/her username/password which was passed to ‘username: password@www.domain.com/restricted_directory’.
The IE patch now restricts this.

When AuthUserFile is in my .htaccess file and I try to access a restricted file, the browser brings up a login popup and I can gain access.

My goal is to login through my html form. I’m very close to getting this working, but I don’t understand how the $auth = false or true get’s passed.

Could it be the <LIMIT GET POST PUT> require valid-user</LIMIT> in the .htaccess needs to change?
Or is something else missing from my .htaccess file?
Do I need something like auth($_SESSION[‘user’], $_SESSION[‘pass’]) in the .htaccess file?

I hope this thread helps other people with this problem. I’ve Googled the heck out of this issue and there are no good examples…
I’ve added my auth.php and .htaccess files below.
I feel that I’m so close, but can’t get passed the finish line.

Also, my DB is Apache.


My auth.php file looks like this ….

[php]<?php
session_start();
$PHP_AUTH_USER = $_POST['username'];
$PHP_AUTH_PW = $_POST['password'];
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 = '/usr/local/zeus/web_roots/main/domain.com/cgi-bin/pa/passwordfile.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( ':', $line );

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

// Get the salt from $password. It is always the first
// two characters of a DES-encrypted string.

$salt = substr( $password , 0 , 2 );

// Encrypt $PHP_AUTH_PW based on $salt

$enc_pw = crypt( $PHP_AUTH_PW, $salt );

if ( $password == "$enc_pw" ) {

// A match is found, meaning the user is authenticated.
// Stop the search.

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

}

}
}

}

if ( ! $auth ) {

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

} else {

header( 'Location:first.htm' );
}

?> [/php]
My .htaccess file looks like this….

AuthType Basic 
AuthName "Making Doors Open" 
AuthGroupFile /dev/null/ 

php_value auto_prepend_file "/usr/local/zeus/web_roots/main/domainname.com/auth.php" 

<LIMIT GET POST PUT> 
require valid-user 
</LIMIT> 
Last edited by tgreer : Oct 31st, 2006 at 8:12 pm. Reason: Added missing code tags.
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Mar 2005
Posts: 7
Reputation: Boat_2005 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Boat_2005 Boat_2005 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation - Can anyone help?

  #2  
Mar 29th, 2005
Can anyone help?
Reply With Quote  
Join Date: Mar 2005
Location: London, UK
Posts: 2
Reputation: tarik is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
tarik tarik is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation - Can anyone help?

  #3  
Mar 30th, 2005
I'm currently working on the same problem.. I'll let you know if I have any luck with it!

Tarik

Originally Posted by Boat_2005
Can anyone help?
Reply With Quote  
Join Date: Mar 2005
Posts: 7
Reputation: Boat_2005 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Boat_2005 Boat_2005 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation - Can anyone help?

  #4  
Mar 30th, 2005
That’s great! I hope this thread helps you. I believe that the code I added to this thread is 90% complete. If you figure out the rest that would be incredible..

Originally Posted by tarik
I'm currently working on the same problem.. I'll let you know if I have any luck with it!

Tarik
Reply With Quote  
Join Date: Mar 2005
Posts: 7
Reputation: Boat_2005 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Boat_2005 Boat_2005 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation - Can anyone help?

  #5  
Mar 31st, 2005
This link may help.
http://www.php.net/manual/en/features.http-auth.php

Originally Posted by tarik
I'm currently working on the same problem.. I'll let you know if I have any luck with it!

Tarik
Reply With Quote  
Join Date: Mar 2005
Location: London, UK
Posts: 2
Reputation: tarik is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
tarik tarik is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation

  #6  
Mar 31st, 2005
I've had a look through your code and perhaps I am overlooking something but i am slightly confused exactly what you are trying to achieve...

You mention that you used to login using username:password@domain.com, using htaccess authentication and you say that your goal is to login through your html form. From this I would presume that you wanted to continue using the basic httaccess authentication, whilst logging in through the form rather that the popup window (which is what I am attempting myself).

Your code suggests that you are not using htaccess authentication any more - you are writing your own authentication which checks against a custom database file, which is fine, but I don't understand why you need to specify AuthType Basic, or anything within the <LIMIT GET PUT> section in the htaccess file as it is no longer needed.

Rather than needing something like auth($_SESSION[‘user’], $_SESSION[‘pass’]) in the .htaccess file, it looks to me like all you need is to save auth=true in your Session...

e.g, when you establish that the username / password combination is valid then do this...

$_SESSION['auth'] = true;

This variable will now be accessible to you as you navigate around the site.

Whenever a new page is loaded, test whether the user is authenticated by using...

if ( $_SESSION['username'] == true )
{ //Display HTML Content }

Is this what you are trying to achieve?

Tarik
Reply With Quote  
Join Date: Mar 2005
Posts: 7
Reputation: Boat_2005 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
Boat_2005 Boat_2005 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation

  #7  
Apr 1st, 2005
Removing AuthTypeBasic and <LIMIT GET PUT> from my .htaccess file makes sense.

I can replace $auth = true; with $_SESSION['auth'] = true; and $auth = false; with $_SESSION[‘auth’] = false;.

Do you think that I still need
setcookie('username',$PHP_AUTH_USER,time()+36000);
setcookie('password',$PHP_AUTH_PW,time()+36000);

The part I’m having trouble understanding is how to bridge the gap from my auth.php file to having access.
My HTML forms action point to a file in my restricted directory. When it tries to access that file the .htaccess file directs the username and password to the auth.php file which validates against my username/password file. If it’s valid => “$_SESSION[‘auth’] = true;�.

Were would I add this?
if ( $_SESSION['username'] == true )
{ www.domain.com/path/to/restricted/field.html }

I added it to my .htaccess file and when I logged in got the following error => Error 405 Method Not Allowed.

Any ideas? You mentioned that your trying to get this working. Have you been able to? If not what road blocks have you run into?
Reply With Quote  
Join Date: Apr 2005
Posts: 2
Reputation: psk79 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
psk79 psk79 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation

  #8  
Apr 28th, 2005
I ma having the same problem. Did u come up with a solution ???

I read that its impossible to do this.
I have a bunch of cgi scripts with .htacess. I need to
give access to these scripts only to users who logged in with
same usr/pswd as that in htpasswd file.
Reply With Quote  
Join Date: Oct 2006
Posts: 1
Reputation: DW5 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
DW5 DW5 is offline Offline
Newbie Poster

Re: html/php form for .htaccess validation

  #9  
Oct 31st, 2006
Originally Posted by psk79 View Post
I ma having the same problem. Did u come up with a solution ???

I read that its impossible to do this.
I have a bunch of cgi scripts with .htacess. I need to
give access to these scripts only to users who logged in with
same usr/pswd as that in htpasswd file.



I was wondering if anyone had a solution to this problem. I am in desperate need of code to create a log-in form with a .htaccess file.


I would very much appreciate any help.


Thanks,

DW5
Reply With Quote  
Join Date: Sep 2005
Posts: 732
Reputation: digital-ether has a spectacular aura about digital-ether has a spectacular aura about 
Rep Power: 6
Solved Threads: 44
Moderator
digital-ether's Avatar
digital-ether digital-ether is offline Offline
Master Poster

Re: html/php form for .htaccess validation

  #10  
Nov 3rd, 2006
Is the problem how to get let .htaccess know that the user is authorized and set this in php?

I've never used .htaccess for authentication before so I wouldnt know but I can suggest that you remove .htaccess altogether, and use just php if you are deperate. You can still do the exact same thing, read the user and pass from the password file, but have authentication rely on php alone. .. if you're desperate...
www.fijiwebdesign.com - web design and development and fun
Cpanel Email - Let users Register email accounts on your website upon registration
Ajax Chat - Fully browser based chat!
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 12:16 pm.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC