[PHP] WWW-Authenticate

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mr_Dark
  • Registratie: Januari 2003
  • Laatst online: 10-08 13:45

Mr_Dark

Gotta catch 'em all

Topicstarter
Vooraf: Ja ik heb de GoT search en Google gebruikt

Oke.. ik heb van de week mijn computer geformatterd en Windows XP Prof er opnieuw opgezet. En dan natuurlijk ook Apache 2, PHP 4.3.10 en MySQL 4.1.
Het enige is dat mijn WWW-Authenticate niet meer werkt, ik blijf die login box maar krijgen.

De module "mod_auth.so" is geladen in Apache.
PHP word niet geladen door middel van een module want dan krijg ik een fout melding dat die de opgegeven module niet kan vinden.

Dit gebruik ik voor PHP:
ScriptAlias /php/ "C:/Program Files/Apache Group/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Voor de rest werkt alles goed behalve die Authenticate..

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(!isset($_SERVER['PHP_AUTH_USER'])) 
{
    header("WWW-Authenticate: Basic realm=\"Mijn Realm\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Tekst om te sturen als de gebruiker op Annuleren klikt.\n";
    exit;
} 
else 
{
    echo "Hallo $PHP_AUTH_USER.<P>";
    echo "Je gebruikte $PHP_AUTH_PW als je password.<P>";
}
?>


Als ik $_SERVER['PHP_AUTH_USER'] verander in $HTTP_SERVER_VARS['PHP_AUTH_USER'] of gewoon $PHP_AUTH_USER doet die het ook niet.

Wie kan mij helpen?

[ Voor 16% gewijzigd door Mr_Dark op 19-01-2005 13:26 ]


Acties:
  • 0 Henk 'm!

  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

wat levert een print_r op van $_SERVER?

Don't mind Rick


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik zit niet helemaal in deze materie, maar volgens mij heb je hier een .htpasswd file voor nodig. Zit die naar behoren in elkaar?

(Verder is het $_SERVER['PHP_AUTH_USER'], die andere twee varianten mag je vergeten. :))

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Ik begrijp niet helemaal wat er nu verkeerd gaat (kom je nu in de if of in de else?), maar ik kan me voorstellen dat het direct aanroepen van $PHP_AUTH_USER _niet_ werkt (in je else), hier kan je beter $_SERVER['PHP_AUTH_USER'] gebruiken, die variabele zou in dat geval _wel_ moeten bestaan.

edit:

Inderdaad NMe- : er moet wel een http authenticatie opgegooid worden door de server. Hetzij door een .htaccess bestand of door bijvoorbeeld een PHP file.
Als dit niet is gebeurd zal $PHP_AUTH_USER dus leeg zijn!

[ Voor 30% gewijzigd door PhoeniX- op 19-01-2005 14:14 ]


Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Nu online
-NMe- schreef op woensdag 19 januari 2005 @ 14:09:
Ik zit niet helemaal in deze materie, maar volgens mij heb je hier een .htpasswd file voor nodig. Zit die naar behoren in elkaar?
Nee, op deze manier kan het ook.

Ik zie geen fouten in bovenstaand voorbeeld, dus vreemd probleem :?.

Acties:
  • 0 Henk 'm!

  • dajappie
  • Registratie: Januari 2005
  • Laatst online: 13:10
En waar wordt de user/pass combinatie vandaan gehaald dan? Heb je ergens een bestandje staan waarmee de authenticatie gecontroleerd wordt?

Acties:
  • 0 Henk 'm!

  • Mr_Dark
  • Registratie: Januari 2003
  • Laatst online: 10-08 13:45

Mr_Dark

Gotta catch 'em all

Topicstarter
@ rickmans:

Dan krijg ik dit:
code:
1
2
3
Array ( [REDIRECT_STATUS] => 200 [HTTP_ACCEPT] => */* [HTTP_ACCEPT_LANGUAGE] => nl [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) [HTTP_HOST] => localhost [HTTP_CONNECTION] => Keep-Alive [PATH] => C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem [SystemRoot] => C:\\WINDOWS [COMSPEC] => C:\\WINDOWS\\system32\\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [WINDIR] => C:\\WINDOWS [SERVER_SIGNATURE] => 
Apache/2.0.52 (Win32) Server at localhost Port 80
[SERVER_SOFTWARE] => Apache/2.0.52 (Win32) [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => C:/Apache/htdocs [SERVER_ADMIN] => mr_dark_iw@hotmail.com [SCRIPT_FILENAME] => C:/Program Files/Apache Group/PHP/php.exe [REMOTE_PORT] => 1578 [REDIRECT_URL] => /Projecten/test.php [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /Projecten/test.php [SCRIPT_NAME] => /php/php.exe [PATH_INFO] => /Projecten/test.php [PATH_TRANSLATED] => C:\\Apache\\htdocs\\Projecten\\test.php [PHP_SELF] => /Projecten/test.php [argv] => Array ( ) [argc] => 0 )


@ dajappie

In dit voorbeeld worden de waarden die je hebt ingevult gewoon weergegeven.

-----
Het rare is dat dit voorbeeld wel gewerkt heeft :S

[ Voor 8% gewijzigd door Mr_Dark op 19-01-2005 14:32 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dennis schreef op woensdag 19 januari 2005 @ 14:18:
Nee, op deze manier kan het ook.

Ik zie geen fouten in bovenstaand voorbeeld, dus vreemd probleem :?.
Je moet toch ergens je logingegevens opgeslagen hebben staan? Apache kan toch niet raden wat je gebruikersnaam en wachtwoord moet zijn?

edit:
Nevermind, ik moet leren lezen.

[ Voor 6% gewijzigd door NMe op 19-01-2005 14:42 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Nu online
-NMe- schreef op woensdag 19 januari 2005 @ 14:39:
Je moet toch ergens je logingegevens opgeslagen hebben staan? Apache kan toch niet raden wat je gebruikersnaam en wachtwoord moet zijn?
Als jij zo'n header(basic dinges AUTH...) gebruikt in PHP dan doet hij gewoon wat je zegt. Nee, hij kijkt niet naar gebruikersnaam en wachtwoord. Als je niks inbouwt dan is het ook alleen maar voor de lol. Neemt niet weg dat als je dus geen username/password controleert hij wél die waarden moet opslaan in $_SERVER['PHP_AUTH_USER'] en de password-equivalent.

Acties:
  • 0 Henk 'm!

  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

Mr_Dark schreef op woensdag 19 januari 2005 @ 14:32:
@ rickmans:

Dan krijg ik dit:
code:
1
2
3
Array ( [REDIRECT_STATUS] => 200 [HTTP_ACCEPT] => */* [HTTP_ACCEPT_LANGUAGE] => nl [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322) [HTTP_HOST] => localhost [HTTP_CONNECTION] => Keep-Alive [PATH] => C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem [SystemRoot] => C:\\WINDOWS [COMSPEC] => C:\\WINDOWS\\system32\\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [WINDIR] => C:\\WINDOWS [SERVER_SIGNATURE] => 
Apache/2.0.52 (Win32) Server at localhost Port 80
[SERVER_SOFTWARE] => Apache/2.0.52 (Win32) [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => C:/Apache/htdocs [SERVER_ADMIN] => mr_dark_iw@hotmail.com [SCRIPT_FILENAME] => C:/Program Files/Apache Group/PHP/php.exe [REMOTE_PORT] => 1578 [REDIRECT_URL] => /Projecten/test.php [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /Projecten/test.php [SCRIPT_NAME] => /php/php.exe [PATH_INFO] => /Projecten/test.php [PATH_TRANSLATED] => C:\\Apache\\htdocs\\Projecten\\test.php [PHP_SELF] => /Projecten/test.php [argv] => Array ( ) [argc] => 0 )
Dit is waarschijnlijk een print_r van voor het invullen van de auth_user of niet? Kan je kijken of de auth user ook na voren komt in een print_r na het invullen?

Don't mind Rick


Acties:
  • 0 Henk 'm!

  • Mr_Dark
  • Registratie: Januari 2003
  • Laatst online: 10-08 13:45

Mr_Dark

Gotta catch 'em all

Topicstarter
Nee staat er niet bij..

Dit is mijn conf file van Apache.. kwee nie of jullie er wat aan hebben:
http://thedark.homeip.net/mr_dark/httpd.conf

[ Voor 96% gewijzigd door Mr_Dark op 19-01-2005 15:53 ]


Acties:
  • 0 Henk 'm!

  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

Klopt het dat je php niet als een module geinstalled hebt? (tenminste voorzover mijn zeer beperkte kennis van apache dat aan mij laat zien). Dat kan problemen opleveren zie ook: http://nl3.php.net/features.http-auth
The HTTP Authentication hooks in PHP are only available when it is running as an Apache module and is hence not available in the CGI version.

[ Voor 11% gewijzigd door rickmans op 19-01-2005 16:02 ]

Don't mind Rick


Acties:
  • 0 Henk 'm!

  • Mr_Dark
  • Registratie: Januari 2003
  • Laatst online: 10-08 13:45

Mr_Dark

Gotta catch 'em all

Topicstarter
maar als ik php als module wil laten draaien wil apache niet meer staren.
Dan krijg ik de volgende fout melding:

Cannot load c:/apache/php/sapi/php4apache2.dll into server: Kan opgegeven module niet vinden.


Het is me gelukt om php als module te laten draaien :D

php4apache2.dll kopieren naar de hoofd php map (dus waar php.exe staat) en dan deze regel gebruiken in httpd.conf:
LoadModule php4_module "c:/apache/php/php4apache2.dll"

toen deed die het ineens :P en nu doet ook de www-authenticate het!!! :D:D

* Mr_Dark = weer blij

ty voor jullie hulp

[ Voor 47% gewijzigd door Mr_Dark op 19-01-2005 16:13 ]

Pagina: 1