PHP auth against htaccess protection
I needed to authenticate against a .htaccess protected directory using PHP.I needed it because I wanted to use LDAP login with PHP but couldn't access the LDAP server directly. I set up a protected directory using LDAP ressources on a web server and authenticated against it with this function.
To be frank, that is rather a workaround, but it was the only way to establish what I wanted to have.
<?php function httpauth($host,$authurl,$ssl = 0, $user, $pass){ if($ssl){ $port = 443; $prefix = "ssl://"; }else{ $port = 80; $prefix = ""; } $sock = fsockopen($prefix.$host, $port); fputs($sock, "HEAD ".$authurl." HTTP/1.0\r\n"); fputs($sock, "Host: ".$host."\r\n"); fputs($sock, "Authorization: Basic ".base64_encode($user.":".$pass)."\r\n"); fputs($sock, "\r\n"); $ret = trim(fgets($sock)); fclose($sock); if($ret == "HTTP/1.1 200 OK") return true; else return false; } //USAGE: if(httpauth("example.org","/protectedDir/index.html",1,"anyone","myPass")){ echo "Authenticated!"; }else echo "Auth failed..." ?>