Avatar billede haolan Nybegynder
08. oktober 2005 - 21:06 Der er 6 kommentarer og
1 løsning

loginsystem virker ikke korrekt

Dette er min php der tjekker om en bruger skriver rigtigt brugernavn og adgangskode:

<?php
session_start();

include("../php/config.php");

$admin = $_POST['admin'];
$password = $_POST['password'];

if(empty($admin) || empty($password)) {
header("location: login.php");
exit;
}

else {
$result = mysql_query("SELECT * FROM adminusers WHERE admin = '".$_POST['admin']."'") or die(mysql_error());

if(mysql_num_rows($result) == '1') {
$r = mysql_fetch_array($result);

if($r['password'] == md5($_POST['password'])) {
$_SESSION['admin'] == $_POST['admin'];
header("location: index.php");
    } else {
    echo("Forkert password indtastet! <a href='login.php'>Gå tilbage til login</a>");
    exit;
    }
}
else {
    echo "Forkert brugernavn indtastet! <a href='login.php'>Gå tilbage til login</a>";

}
}

?>


Dette er så min session jeg bruger i starten af hver beskyttede dokument

<?
include("../php/config.php");

session_start();
if(!empty($_SESSION['admin'])) {
$result = mysql_query("SELECT * FROM adminusers WHERE admin = '".$_SESSION['admin']."'") or die(mysql_error());

$r = mysql_fetch_assoc($result);
$accept = "Hej" .$r['admin']. "<br>Du er nu logget ind! Vælg venligst administration i menuen til venstre!";
$show_menu = include("../includes/admin.inc");
} else {
$disagree = "Du er ikke logget ind. <a href='login.php'>Gå til login</a>";
}

?>

Hver gang jeg logger på skriver den at jeg ikke er logget ind, selvom min tjek fil allerede har godkendt mit login..

Hvad er der mon galt her?
Avatar billede jakobdo Ekspert
08. oktober 2005 - 22:17 #1
Jeg har rettet din kode en smule!

Se fuld løsning her:

<?php
session_start();

include("../php/config.php");

$admin    = mysql_escape_string($_POST['admin']);
$password = mysql_escape_string($_POST['password']);

if(!isset($admin) || !isset($password))
{
    header("location: login.php");
    exit;
}
else
{
    $result = mysql_query("SELECT password FROM adminusers WHERE admin = '".$admin."' LIMIT 1") or die(mysql_error());

    if(mysql_num_rows($result) == 1)
    {
        $r = mysql_fetch_array($result);

        if($r['password'] == md5($password))
        {
            $_SESSION['admin'] == $admin;
            header("location: index.php");
    }
    else
    {
        echo("Forkert brugernavn/kodeord indtastet! <a href='login.php'>Gå tilbage til login</a>");
        exit;
    }
    }
    else
    {
        echo "Forkert brugernavn/kodeord indtastet! <a href='login.php'>Gå tilbage til login</a>";
    }
}

?>

Dette er så min session jeg bruger i starten af hver beskyttede dokument

<?
include("../php/config.php");

session_start();
if(isset($_SESSION['admin']))
{
    echo = "Hej" . $_SESSION['admin'] . "<br>Du er nu logget ind! Vælg venligst administration i menuen til venstre!";
    $show_menu = include("../includes/admin.inc");
}
else
{
    echo = "Du er ikke logget ind. <a href='login.php'>Gå til login</a>";
}

?>


Jeg har f.eks. rettet så du ikke fortæller brugeren at brugernavn eller kodeord er forkert!

Hvis nu en fil hacke dit system, så kan han starte med at finde et brugernavn, og derefter kodeord!
Hvis ikke du fortæller om det ene eller andet er forkert, bliver det svære.
Avatar billede haolan Nybegynder
08. oktober 2005 - 22:27 #2
Det er fint nok du har rettet den lidt til.. men den virker stadig ikke.. når jeg logger ind får jeg stadig samme meddelse:

Du er ikke logget ind
Avatar billede jakobdo Ekspert
08. oktober 2005 - 22:32 #3
Ret lige: $_SESSION['admin'] == $admin;
til: $_SESSION['admin'] = $admin;
Avatar billede haolan Nybegynder
08. oktober 2005 - 22:41 #4
Nice så virker det.. læg svar for points :) ved du hvordan man laver en logoutknap til også?
Avatar billede jakobdo Ekspert
08. oktober 2005 - 22:43 #5
Kig på denne side: http://dk2.php.net/session_destroy
Og et svar!
Avatar billede jakobdo Ekspert
08. oktober 2005 - 23:05 #6
Takker for point!
Avatar billede haolan Nybegynder
08. oktober 2005 - 23:08 #7
velbekomme..
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