Avatar billede sorenolesen Nybegynder
03. april 2002 - 08:19 Der er 6 kommentarer

Adgangs kontrol

JEg har prøvet at lave denne classe. er der nolge der har nogle kommetarer eller noget ? - der er til tider problemmer med at få adgangsboksen frem på eksterne maskiner.. der gives 60 point da det jo tager lidt tid at kigge igennem..

classen kaldes således :

$login = new Access;
$login->check_login();

Kildekoden :
<?php
class access {
    var $user_id;
    var $SESSION;
   
    function check_login () {
        if ($SESSION[access] == false) {
            /*Logger brugeren ind*/
            if ($this->login() == True) {
                $SESSION[access] = True;
            }
        }
    } // end : check_login()
    function login(){
        GLOBAL $sql,$PHP_AUTH_USER, $PHP_AUTH_PW;
        /*Hvis man har indtastet brugernavn og adgangskode*/
        if(isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)) {
            $md5_pass = md5($PHP_AUTH_PW); // Krypterer koden, så vi kan teste om den er ens med den i databasen
            $sql->Queryitem("SELECT * FROM users WHERE password = '$md5_pass' AND username = '$PHP_AUTH_USER'");
            if ($sql->data) {
                if ($md5_pass == $sql->data[password] && $PHP_AUTH_USER == $sql->data[username]) {
                    $this->user_id = $sql->data[id];
                    $this->SESSION[access] = True;
                    return True;
                } else {
                    /*Brugernavn eller adgangskode er forkert*/
                    sleep("2"); // Forsinker resultatet 2 sec, for at modvirke bruceforce angreb
                    print errormsg("Du har indtastet forkert brugernavn eller adgangskode<br>Du skal åbne en ny browser for at prøve igen..");
                    exit;
                }
            } elseif (!$sql->data) {
                /*Brugernavn eller adgangskode er forkert*/
                sleep("2"); // Forsinker resultatet 2 sec, for at modvirke bruceforce angreb
                print errormsg("Du har indtastet forkert brugernavn eller adgangskode<br>Du skal åbne en ny browser for at prøve igen..");
                exit;
            }
        } else {
            /*Brugeren skal indtaste brugernavn og adgangskode*/
            header( "WWW-Authenticate: Basic realm=\"Authentication\""); // realm, er den tekst som kommer til at stå i boksen
            header( "HTTP/1.0 401 Unauthorized");
            print errormsg("Adgang nægtet !"); // Hvis der trykkes "Cancel"
            exit;
        }
    } // end : login()
} // end access()
?>
Avatar billede angelod Novice
03. april 2002 - 08:22 #1
Prøv at ændre
  header( "WWW-Authenticate: Basic realm="Authentication"");
til
  header( "WWW-Authenticate: Basic realm=\"Authentication\"");

Ved ikke om det er nok, men jeg tror det. :)
Avatar billede sorenolesen Nybegynder
03. april 2002 - 08:25 #2
Sådan ser den ud, det er eksperten.dk der har fjernet det..
Har I ellers nogle kommetarer til noget der mangler, eller noget der er gjordt forkert ?
Avatar billede angelod Novice
03. april 2002 - 08:27 #3
Hmm.. Hva sker der ellers når du prøver? Skriver den bare '401 Unauthorized', eller noget lignende?
Avatar billede sorenolesen Nybegynder
03. april 2002 - 09:08 #4
På min egen maskine (localhost) virker det som det skal, men fra eksterne maskiner virker det ikke og kommer med 404
Avatar billede angelod Novice
03. april 2002 - 09:52 #5
Underligt.. Undrer mig over hvordan der overhovedet kan komme en 404 når filen er der.
Avatar billede sorenolesen Nybegynder
03. april 2002 - 11:06 #6
Ja ?
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