Avatar billede thedeathart Nybegynder
30. maj 2004 - 21:26 Der er 9 kommentarer og
1 løsning

PHP_AUTH_USER til flere brugere

HEy..

Kan man bruge PHP_AUTH_USER til at lave et loginsystem med flere brugere ?
Avatar billede swaxi Nybegynder
30. maj 2004 - 23:42 #1
jep
Avatar billede thedeathart Nybegynder
30. maj 2004 - 23:45 #2
fint nok.. næste spørgsmål: hvordan ?
Avatar billede swaxi Nybegynder
31. maj 2004 - 23:43 #3
hvis du allerede har leget med, at lave et loginsystem før, er det ret ligetil :
<?php
  function validate_user($username, $password)
  {
    return ($username == 'admin' && $password == 'secret');
  }
  function authenticate_user()
  {
    $is_logged_in = false;
    if (isset($_SERVER['PHP_AUTH_USER'])) {
      $is_logged_in = validate_user($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
    }
    if (!$is_logged_in) {
      header('WWW-Authenticate: Basic realm="My Realm"');
      header('HTTP/1.0 401 Unauthorized');
      exit;
    }
  }
?>
Avatar billede thedeathart Nybegynder
01. juni 2004 - 00:20 #4
hmm... nej, jeg er lidt grøn på det område endnu..
det jeg gerne vil at at jeg har dette her login script:

<?php
extract($_GET);
extract($_SERVER);
extract($_POST);
extract($_COOKIE);

$admin = admin;
$pass = admin;

if (($_SERVER[ 'PHP_AUTH_USER' ] != "$admin") || ($_SERVER[ 'PHP_AUTH_PW' ] != "$pass"))
{
header('WWW-Authenticate: basic realm="Admin');
header('HTTP/1.0 401 Unauthorized');
echo "<br><b><center>INGEN ADGANG !";
exit;
}

?>

hvor man simpelt hen angiver i koden, hvad bruger navnet og passwordet er.
men det virker kun på én bruger. det jeg så gerne vil at at kunne angive flere brugernavne.
Avatar billede swaxi Nybegynder
01. juni 2004 - 16:43 #5
det script du har er essentielt set det samme som det jeg postede. dit er bare fyldt med en fejl. hvis du bruger mit script, kan du udvide funktionen validate_user. eks :

  function validate_user($username, $password)
  {
    if ($username == 'admin' && $password == 'secret')
        return true;
    if ($username == 'bill' && $password == gates')
        return true;
    // etc.
    return false;
  }

du kunne også bruge en database til at indeholde alle brugere/passwords, men ud fra min fornemmelse af dit niveau, rent programmerings/php -mæssigt, er det nok lidt for advanceret. har du overvejet at bruge htaccess til, at kontrollere brugeradgang med ?
Avatar billede thedeathart Nybegynder
02. juni 2004 - 00:09 #6
hmm... ja, det se meget godt ud, men det virker vist ikke lige, da den ikke kommer og spørger efter brugernavn/password..

Jeg har prøvet med htaccess , men jeg kan ikke få det til at fungere ordenligt på min test-server..
Avatar billede swaxi Nybegynder
02. juni 2004 - 01:21 #7
ja ok ... du skal lige tilføje denne linie sidst i scriptet :
authenticate_user();
Avatar billede sukos Juniormester
02. juni 2004 - 01:51 #8
Det er vel en apache server?
Ellers er der slet ikke noget som virker, så vidt jeg ved, med $_SERVER["PHP_AUTH_USER"]
Avatar billede sukos Juniormester
02. juni 2004 - 02:03 #9
æhh, for at du kan bruge .htaccess som login i apache, skal du huske at tillade brugen af det i din httpd.conf, for det dir du vil bruge det i.
Avatar billede thedeathart Nybegynder
03. juni 2004 - 01:03 #10
mange tank swaxi, det virker fint nu..

til sukos: jo det er apache, checker lige om det er tilladt i httpd.conf, og tak for forslaget..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester