Avatar billede denner1989 Nybegynder
31. december 2006 - 16:24 Der er 2 kommentarer og
1 løsning

Login system, logind problemer, igen.

<?php
session_start();
if(isset($_POST["brugernavn"], $_POST["password"])) {

$conn = mysql_connect("$host", "$user", "$pass") or die (mysql_error());
mysql_select_db("$db", $conn) or die (mysql_error());
$dato = date("d-m-Y H:i", time());
$sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'";
mysql_query($sql,$conn) or die(mysql_error());

$dotjek = mysql_query("SELECT `brugernavn`, `password`, `level` FROM `login2` WHERE `brugernavn` ='". $_POST[brugernavn] ."'") or die (mysql_error());

if(mysql_num_rows($dotjek)!=1) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind");
exit;
}

else {
$row = mysql_fetch_array($dotjek);
$_SESSION["brugernavn"] = $row[0];
    if($row[1] != md5($_POST["password"])) {
    $_SESSION["password_fejl"] = 1;
    header("Location:logind");
    exit;
    }else{
      $_SESSION["level"] = $row[2];
      if ($row[2]=="Admin") {
        header("Location:admin.php");
        exit;
      }else{
        header("Location:login.php");
        exit;
      }
    }
}
mysql_free_result($dotjek);
}
?>

Den virker princippet fint, men problemet er hvis jeg bare skriver brugernavn så sker der ingen ting (Som der skal!!!) Men klikker man bagefter på login (i menuen) så er man logget ind som alm. bruger med det brugernavn. Hvordan undgår jeg dette?!

Så en anden ting. Hvordan sætter jeg den til at smide $sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'"; på, når brugeren ER logget ind? Jeg har prøvet at lege lidt med det, men så skriver den: "Query was empty"

Jeg havde gjort sådan:
      $_SESSION["level"] = $row[2];
      if ($row[2]=="Admin") {
        header("Location:admin.php");
$sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'";
        exit;

Men virker desværre ikke.. Håber en kan hjælpe! :)
Avatar billede schaefner Juniormester
01. januar 2007 - 03:24 #1
Utestet. Den tjekker dog ikke på brugernavn og kodeord hver for sig, men det ser jeg heller ikke den store grund til?

<?php
session_start();

if (isset($_POST['brugernavn'], $_POST['password'])) {
    $conn = mysql_connect($host, $user, $pass) or die (mysql_error());
    mysql_select_db($db, $conn) or die (mysql_error());

    // Lav en søgning på brugernavn og kodeord
    $result = mysql_query("SELECT `brugernavn`, `password`, `level` FROM `login2` WHERE `password` = '".md5($_POST['password'])."' AND `brugernavn` = '".mysql_escape_string($_POST['brugernavn'])."'") or die(mysql_error());

    // hvis vi fandt et match på kodeord og brugernavn
    if (mysql_num_rows($result) == 1) {
        $data = mysql_fetch_array($result);

        $_SESSION['brugernavn'] = $data['brugernavn'];
        $_SESSION['level']      = $data['level'];

        // Opdater login
        $dato = date("d-m-Y H:i", time());

        mysql_query("UPDATE `login2` SET `online` = '".$dato."' WHERE `brugernavn` = '".$_SESSION['brugernavn']."'") or die(mysql_error());

        // Hvis brugeren er "Admin"
        if ($_SESSION['level'] == "Admin") {
            header("Location:admin.php");
            exit;
        // Ellers sender vi ham tilbage til login??
        } else {
            header("Location: login.php");
            exit;
        }
    // Hvis brugeren ikke blev fundet
    } else {
        $_SESSION['fejl'] = "Brugernavn og kodeord er ikke korrekt";

        header("Location: login.php");
        exit;
    }
}
?>

Med venlig hilsen
Jesper Sørensen
Avatar billede denner1989 Nybegynder
01. januar 2007 - 13:24 #2
Tak du, det virker perfekt!

Læg et svar :) Godt nytår.
Avatar billede schaefner Juniormester
01. januar 2007 - 14:14 #3
I lige måde :)
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging