Avatar billede cmau Nybegynder
13. december 2005 - 19:11 Der er 9 kommentarer og
1 løsning

Få dette sat rigtigt sammen

Hejsa

Jeg har lavet et admin login system, som jeg er ved at prøve at lave lidt mere sikkert. Det er sådan nu at alle kan prøve at skrive brugernavn og kode, men jeg vil gerne have at den først tjekker om ens ip passer sammen med en af admin brugernes ip (Som står i databasen). hvis den er, så skal den kode jeg har skrevet i bunden bare vises, men hvis ikke skal den skrive at man ikke har adgang, med mindre man har koden til admin-login siden, altså hvis man har den kode kan man skrive den også derefter skal man logge ind med sit brugernavn og kode.

Håber i har forstået mig, da jeg ikke selv lige kan krængle den i hoved, ´med hvordan det skal opsættes.

if(!empty($_SESSION['adminid'])) {
    echo "velkommen til amdin";
} else {

        echo '<p>Der er påkrævet login på denne side. Det er kun administratorer der har adgang. Hvis du er administrator, så skriv dit brugernavn og kode for at logge in.</p>';
        echo '<form method="POST" action="'.$style['site']['uri'].'" enctype="multipart/form-data">';
        if(!empty($_POST['username']) AND !empty($_POST['password'])) {
            $password = md5($_POST['password']);
            $result = mysql_query("SELECT * FROM mp_admins WHERE username = '$_POST[username]' AND password = '$password'") or die(mysql_error());

            if(mysql_num_rows($result) == '0') {
                echo '<p align="center"><span style="background:red;">Du har angivet forkert brugernavn eller kode!</span></p>';
            } else {
                $row = mysql_fetch_assoc($result);
                $_SESSION['adminid'] = $row['id'];
                $_SESSION['status'] = $row['status'];
                $_SESSION['username'] = $row['username'];
                header('Location: '.$style['site']['url'].'php/admin/');
            }
        }
       
        echo '<table class="content_small"><tr>';
        echo '<tr><td class="menutopic">&nbsp;Brugernavn:</td><td class="rightColumn"><input type="text" name="username" value="">&nbsp;</td></tr>';
        echo '<tr class="even"><td class="menutopic">&nbsp;Kode:</td><td class="rightColumn"><input type="password" name="password" value="">&nbsp;</td></tr>';
        echo '<tr><td class="menutopic">&nbsp;Login:</td><td class="rightColumn"><input type="submit" name="submit" value="Login">&nbsp;</td></tr>';
        echo '</table></form>';
}
Avatar billede jaw Nybegynder
13. december 2005 - 19:14 #1
Du er klar over, at mange - deriblandt de fleste TDC-brugere - har dynamisk ip, der altså opdaterer sig hver 3. dag?
Avatar billede jaw Nybegynder
13. december 2005 - 19:16 #2
Men ellers så tror jeg måske der kan være en løsning her:

$q = mysql_query("SELECT COUNT(*) FROM mp_admins WHERE ip = '".$_SERVER['REMOTE_ADDR']."'") or die(mysql_error());
if(!empty($_SESSION['adminid']) && mysql_result($q, 0) > 0) {
    echo "velkommen til amdin";
} else {

        echo '<p>Der er påkrævet login på denne side, samt du skal have den rigtige ip-adresse. Det er kun administratorer der har adgang. Hvis du er administrator, så skriv dit brugernavn og kode for at logge in.</p>';
        echo '<form method="POST" action="'.$style['site']['uri'].'" enctype="multipart/form-data">';
        if(!empty($_POST['username']) AND !empty($_POST['password'])) {
            $password = md5($_POST['password']);
            $result = mysql_query("SELECT * FROM mp_admins WHERE username = '$_POST[username]' AND password = '$password'") or die(mysql_error());

            if(mysql_num_rows($result) == '0') {
                echo '<p align="center"><span style="background:red;">Du har angivet forkert brugernavn eller kode!</span></p>';
            } else {
                $row = mysql_fetch_assoc($result);
                $_SESSION['adminid'] = $row['id'];
                $_SESSION['status'] = $row['status'];
                $_SESSION['username'] = $row['username'];
                header('Location: '.$style['site']['url'].'php/admin/');
            }
        }
       
        echo '<table class="content_small"><tr>';
        echo '<tr><td class="menutopic">&nbsp;Brugernavn:</td><td class="rightColumn"><input type="text" name="username" value="">&nbsp;</td></tr>';
        echo '<tr class="even"><td class="menutopic">&nbsp;Kode:</td><td class="rightColumn"><input type="password" name="password" value="">&nbsp;</td></tr>';
        echo '<tr><td class="menutopic">&nbsp;Login:</td><td class="rightColumn"><input type="submit" name="submit" value="Login">&nbsp;</td></tr>';
        echo '</table></form>';
}
Avatar billede cmau Nybegynder
13. december 2005 - 19:26 #3
Det er præcist derfor jeg laver det med koden inden, når man så har skrevet den, så opdatere den ipen i databasen.

Men kan ikke lige se hvad du har ændret?
Avatar billede jaw Nybegynder
13. december 2005 - 19:28 #4
Nåå, så forstod jeg det omvendt. Men hvis den alligevel opdaterer ip'en til brugeren der logger ind, og bagefter tjekker på den, så vil den jo altid være rigtig?
Avatar billede cmau Nybegynder
13. december 2005 - 19:32 #5
Hmm.. Det er sådan at hvis min ip passer med en i databasen, så skal jeg bare skrive brugernavn og kode.

Hvis min ip så ikke passer med en i databasen, så skal jeg først skrive en "kom til admin login siden"-kode, hvis den er rigtig, så vil jeg opdatere den nye ip i databasen, så det er fra den nye ip den tjekker næste gang. Derefter skal man skrive brugernavn og kode, for at komme helt ind.
Avatar billede jaw Nybegynder
13. december 2005 - 19:35 #6
Aha, men det kan jeg ikke se giver nogen som helst bedre sikkerhed, end bare brugernavn og adgangskode, da det egentlig alligevel kun er de 2 der giver dig adgangen?!
Avatar billede cmau Nybegynder
13. december 2005 - 19:40 #7
Først skal man jo igennem ip og kode check før man kommer til brugernavn og kdoe
Avatar billede cmau Nybegynder
14. december 2005 - 16:45 #8
?
Avatar billede cmau Nybegynder
17. december 2005 - 10:47 #9
Er der ingen der kan komme med en ide til opstillingen af dette?
Avatar billede cmau Nybegynder
24. december 2005 - 16:54 #10
¨Så må jeg vel droppe det.
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