Avatar billede kattendk Nybegynder
23. juni 2006 - 02:44 Der er 5 kommentarer

Brugerlogin med SESSION.

<?php include("denner.php"); ?>
<?php
session_start();

$conn = mysql_connect("$host", "$user", "$pass") or die (mysql_error());
mysql_select_db("$db", $conn) or die (mysql_error());

if(isset($_POST["brugernavn"], $_POST["password"])) {

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

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST["brugernavn"]) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind.php");
exit;
}

$_SESSION["brugernavn"] = $_POST["brugernavn"];

    if($brugertjek->password != md5($_POST["password"])) {
    $_SESSION["password_fejl"] = 1;
    header("Location:logind.php");
    exit;
    }else{
    $_SESSION["admin"] = $brugertjek->admin;
    header("Location:login.php");
    exit;
    }

mysql_free_result($dotjek);
}
?>
<?php
$conn = mysql_connect("$host","$user","$pass");
mysql_select_db("$db",$conn);
$dato = date("d-m-Y H:i", time());
$sql = ("UPDATE login2 SET online='$dato' WHERE `brugernavn` ='". $_SESSION[brugernavn] ."'");

mysql_query($sql,$conn) or die(mysql_error());

mysql_close($conn) or die(mysql_error());

?>



------------------------------

Jeg ønsker 2 ting i dette script.

[NUMMER 1]
Jeg har en tabel i login2 som hedder level og der står: Admin (hvis man er admin på siden) og Besøgende (Hvis man bare har en alm. bruger.)

Så er det, jeg gerne vil have at den skal sende admins vidre til admin.php og besøgende til login.php

[NUMMER 2.]
Min anden ting er at $sql = ("UPDATE login2 SET online='$dato' WHERE `brugernavn` ='". $_SESSION[brugernavn] ."'"); ikke virker, datoen bliver ikke updateret i min mysql. Så vil jeg bare lige høre hvad der kan være galt.
Avatar billede henninghabor Nybegynder
23. juni 2006 - 04:50 #1
2. Nu ku' jeg forestille mig, at online er et dato felt, så hvorfor ikke bruge mysql's egen now()?

Eks.: $sql = ("UPDATE login2 SET online=now() WHERE `brugernavn` ='". $_SESSION[brugernavn] ."'");

Hvis dette ikke virker, bør du tjekke om $_SESSION[brugernavn] har noget indhold.

Eks.: echo $_SESSION[brugernavn];
Avatar billede henninghabor Nybegynder
23. juni 2006 - 04:54 #2
1. Den nemme måde at sende brugeren til hans respektive område er:

if($brugertjek->level == "Admin")
{
  header("location: admin.php");
}
else
{
  header("location: login.php");
}
Avatar billede kattendk Nybegynder
23. juni 2006 - 13:00 #3
Jeg fik update til at virke, jeg kom i tanke om det var $_POST jeg skulle bruge.

--

<?php
session_start();

$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());

if(isset($_POST["brugernavn"], $_POST["password"])) {

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

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST["brugernavn"]) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind.php");
exit;
}

$_SESSION["brugernavn"] = $_POST["brugernavn"];
if($brugertjek->level == "Admin")
{
  header("location: admin.php");
}
else
{
  header("location: login.php");
}

mysql_free_result($dotjek);
}
?>

---
Den logger slet ikke ind nu..
Avatar billede henninghabor Nybegynder
23. juni 2006 - 13:29 #4
Min fejl: $brugertjek->level == "Admin" skal ændres til $brugertjek->admin == "Admin"
Avatar billede kattendk Nybegynder
23. juni 2006 - 13:56 #5
Den logger slet ikke ind, mystisk :|
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