[PHP]Authentication probleem

Pagina: 1
Acties:

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
Als ik probeer een user te authenticaten, lijkt het net alsof de $PHP_AUTH_USER en $PHP_AUTH_PW niet worden doorgegeven. Misschien dat dit aan de regel: header("Status: 401 Unauthorized"); ligt. Deze heb ik moeten gebruiken omdat de normale header output niet werkt.

Ik heb dit stukje code:
PHP:
1
<?require "inc.library.php";if (!isset($PHP_AUTH_USER)) {        // Als er nog geen user is ingelogd, inlogscherm        header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");           header("Status: 401 Unauthorized");         exit;    } else if (isset($PHP_AUTH_USER)) {        // Als de user is ingelogd, vergelijken met gegevens in db        // connect to MySQL        _connect;        $sql = "SELECT * FROM cb_user WHERE username='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'";        $result = mysql_query($sql);        $num = mysql_numrows($result);        if ($num != "0") {            echo "<P>You're authorized!</p>";                exit;        } else {                header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");               header("Status: 401 Unauthorized");             echo 'Authorization Required.';            exit;        }    } ?>

  • Karlok[JY-616]
  • Registratie: Februari 2002
  • Laatst online: 26-02 21:53
Probeer je sql query te "echo-en" en kijken wat er staat.

Vleuten 4x430wp Oost Schuin dak 25°, 5x430wp Zuid plat dak 13°


Verwijderd

je draait PHP toch niet als CGI binary he? Dan werkt HTTP authentication namelijk niet

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Pak anders gewoon PEAR::Auth_HTTP. Zie ook PEAR::Auth

Er is zelf ook een mooie manual van: PEAR::Manual:Authentication

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
ik wil dat PEAR liever toch niet gebruiken, want het zou op deze manier ook moeten gaan. En php heb ik als een gewone Apache module geïnstaleerd, dus daar ligt het ook niet aan. Maar het probleem ligt niet bij de database, want zelfs als ik dit doe werkt het niet:
PHP:
1
<?if (!isset($PHP_AUTH_USER)) {        // Als er nog geen user is ingelogd, inlogscherm        header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");           header("Status: 401 Unauthorized");         exit;    } else if (isset($PHP_AUTH_USER)) {        // Proberen om intelogen zonder db        if ($PHP_AUTH_USER == "test" &amp;&amp; $PHP_AUTH_PW == "test")            {            echo "<P>You're authorized!</p>";                exit;        } else {                header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");               header("Status: 401 Unauthorized");             echo 'Authorization Required.';            exit;        }    } ?>

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 03-09 01:07
vaag... als ik je laatste stukje code run krijg ik dat mooie login-boxje :)
Als ik dan inlog met 'test', 'test' dan krijg ik een wit scherm maar de login-box blijft. na 3x inloggen krijg ik dan nog steeds een "401" :?

Lijkt er idd op dat je $PHP_AUTH_USER en $PHP_AUTH_PW gewoon niet krijgt doorgestuurd. Klopt de manier van opvragen hiervan wel?

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
controleer eens of je mod_auth *die heb je toch nodig om die variabelen te bereiken* wel hebt draaien want dat is de enige reden die ik zo snel kan bedenken.

Probeer eens:
PHP:
1
<?print_r($_ENV)?>

Want ik geloof dat die variabele daar in zal moeten zitten.

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
nee, mod_audth staat er niet bij. maar dit wel:

[GATEWAY_INTERFACE] => CGI/1.1

betekent dit dat mijn server toch php onder cgi draait? |:(

Verwijderd

Op donderdag 04 juli 2002 14:05 schreef Nightelf het volgende:
nee, mod_audth staat er niet bij. maar dit wel:

[GATEWAY_INTERFACE] => CGI/1.1

betekent dit dat mijn server toch php onder cgi draait? |:(
nee

edit:

wrom maak je niet gewoon een mooi formpje met log-in troep, das veel mooier dan zo'n popup box. en daarbij kan je het jezelf zo gemakkelijk maken als je zelf wilt(of moeilijk natuurlijk :)).

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
ja, maar dit is zoiezo meer werk (wat nog niet zoŽn probleem is). Maar ik ben bang dat dit minder veilig is, dan een http sessie, dit blijft toch het veiligst (correct me if wrong..)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 03-09 01:07
Op donderdag 04 juli 2002 13:56 schreef M4rt1nvW het volgende:
controleer eens of je mod_auth *die heb je toch nodig om die variabelen te bereiken* wel hebt draaien want dat is de enige reden die ik zo snel kan bedenken.

Probeer eens:
PHP:
1
<?print_r($_ENV)?>

Want ik geloof dat die variabele daar in zal moeten zitten.
Bij mij geeft ie zo iig niets. Als ie dat wel moet doen zou dit idd je probleem kunnen zijn (met jou stuk inlog code)

Kan dit ook niet liggen aan je install van PHP ofzo :? ik heb het net ff op een FreeBSD server getest waar ie goed werkt dus..

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
Oeps, nog ff gechecked hij moet bij de server variabele staan dus:
PHP:
1
<?print_r($_SERVER);?>

En tenslotte bestaan die variabele alleen als je ingelogd dmv een soortgelijk script of door een htaccess bestand, dus ik heb net iets te snel geschreeuwd maar het lijkt er wel op dat deze varaiabele bij de topicstarter nooit verschijnen.

maar in je phpinfo moet je het kunnen vinden:
PHP:
1
<?info();?>

gewoon ff Ctrl-F en dan zoeken naar auth dan weet je het zeker.
onder het kopje apache
dan achter het tekstje Loaded Modules:
zie je iess in deze geest:
code:
1
2
3
4
5
6
 mod_auth, auth_ldap, mod_php4, mod_setenvif, mod_so,
 mod_unique_id, mod_headers, mod_access, mod_rewrite, 
 mod_alias, mod_userdir, mod_speling, mod_actions, mod_imap,
 mod_asis, mod_cgi, mod_dir, mod_autoindex, mod_include,
 mod_status, mod_negotiation, mod_mime, mod_mime_magic,
 mod_log_config, mod_env, http_core

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
nee, het mod_auth komt hier niet in voor. Maar wat betekend dit dan? dat mijn manier om die header("Status: 401 Unauthorized"); aanteroepen niet klopt. Of dat er iets anders fout is?

hoow.. te snel, ik kijk ff

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
het betekent dat de module waarmee je gebruik kan maken van http-authentication niet geinstalleerd is dus je zou wel gebruik kunnen maken van .htaccess maar niet van http-authentication zoals je het nu toe wil passen.

  • Stimp
  • Registratie: Februari 2002
  • Laatst online: 23-02-2022
okee, dit is dan idd het probleem, ik ga vragen of mijn host dit kan instaleren. Bedankt voor de hulp!

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
:) geen dank :)

en natuurlijk succes
Pagina: 1