Avatar billede tobrukDk Novice
25. december 2011 - 02:11 Der er 6 kommentarer og
1 løsning

problemer med et log in system

Hej

Jeg har brugt den her;

http://www.udvikleren.dk/artikler/340/fra-begynder-til-login/side1/

Det er sådan at når f.eks admin logger ind så bliver den smidt hen på admin system mens de andre bruger bliver smidt hen på en anden siden


if($userArray['id'] == 1) // eller $userArray['brugernavn'] == 'hansen'
{
  header("Location: admin/index.php");
}
else
{
  header("Location: index.php");
}


skriver jeg den så kan alle bare komme hen på admin siden. og det synes virker 100% forkert på en måde så vil jeg høre jer omkring hvordan jeg gøre det?

jeg har skrevet lavet lidt om på koden men det er meget lidt



<?php
  session_start();

  include 'database/db_connect.php';

  $bruger = $_POST["brugernavn"];
  $pass = $_POST["password"];
  $error = "";

  $userQuery = mysql_query("SELECT id,brugernavn,password FROM brugere WHERE brugernavn='$bruger'");

  if(mysql_num_rows($userQuery) != 1)
  {
      $error .= "Brugeren eksisterer ikke.<br>";
  }
  else
  {
      $userArray = mysql_fetch_array($userQuery);

      if($userArray["password"] != MD5($pass))
      {
          $error .= "Password og brugernavn passer ikke sammen.<br>";
      }
  }
    if($error != "")
  {
      echo $error . "<a href=\"java script:history.back(-1);\">Tilbage</a>";
  }
    else
  {
      $_SESSION["logged_in"] = 1;
      $_SESSION["user_id"] = $userArray["id"];
      header("Location: admin/index.php");
  }

  ?>


håber du / i kan hjælp mig!.. :D
Avatar billede tobrukDk Novice
25. december 2011 - 02:25 #1
eller kan jeg valg at lave en form for rank ind i mysql datbasen og så lave en varialbe eller hvordan man lige staver til det.
25. december 2011 - 08:21 #2
Det må vel dreje sig om at kombinere denne kode:

else
{
    $_SESSION["logged_in"] = 1;
    $_SESSION["user_id"] = $userArray["id"];
    header("Location: admin/index.php");
}

med denne kode:

if($userArray['id'] == 1) // eller $userArray['brugernavn'] == 'hansen'
{
  header("Location: admin/index.php");
}
else
{
  header("Location: index.php");
}

således:

else
{
    $_SESSION["logged_in"] = 1;
    $_SESSION["user_id"] = $userArray["id"];

    if($userArray['id'] == 1) header("Location: admin/index.php");
    else header("Location: index.php");

}
Avatar billede tobrukDk Novice
25. december 2011 - 12:43 #3
kan du klare hvad du har gøre og hvordan det virker? eller hvad man siger?
25. december 2011 - 13:17 #4
Det ser ud til, at du har en formular du ikke viser hvor folk udfylder brugernavn og adgangskode og klikker på en knap for at logge ind.  Efter klik på den knap kaldes, formentligt, koden i din anden blå boks.  Den kode går først ind i databasen og undersøger, om brugernavn og adgangskode er korrekt.  Hvis ikke, så kommer der fejlmeldinger.  Hvis brugernavn og adgangskode er korrekt, så sender du brugeren til admin-index.php med koden header("Location: admin/index.php");

Men det var ikke det du ville, kun hvis brugeren havde id == 1.  Ellers skal brugeren sendes til index.php.  Deror ændrede jeg de sidste linier i koden, således at 'if' id == 1 kommer de til admin/index.php, 'else' kommer de til index.php.
Avatar billede tobrukDk Novice
25. december 2011 - 14:35 #5
Takker for svar Christian_Belgien og takker for hjælpen!.

Christian_Belgien vil du også have noget for det?
25. december 2011 - 15:07 #6
Jeg vil gerne, i overensstemmelse med de normale regler på Eksperten, have at du accepterer mit svar, indlæg #2.  Tak.
Avatar billede tobrukDk Novice
25. december 2011 - 16:57 #7
Sorry men havde ikke troede det var dig som har skrevet det indlæg. :) jeg troede det var en helt anden en :O haha


Håber du fik en god jul og takker for hjælpen mange gerne :)



<?php
session_start();

include 'database/db_connect.php';

$bruger = $_POST["brugernavn"];
$pass = $_POST["password"];
$error = "";

$userQuery = mysql_query("SELECT id,brugernavn,password FROM brugere WHERE brugernavn='$bruger'");

if(mysql_num_rows($userQuery) != 1)
{
    $error .= "Brugeren eksisterer ikke.<br>";
}
else
{
    $userArray = mysql_fetch_array($userQuery);

    if($userArray["password"] != MD5($pass))
    {
        $error .= "Password og brugernavn passer ikke sammen.<br>";
    }
}
  if($error != "")
      {
      header("Location: fejl.php");
    }
  else
    {
    $_SESSION["logged_in"] = 1;
    $_SESSION["user_id"] = $userArray["id"];

    if($userArray['id'] == 1) header("Location: admin/index.php");
    else header("Location: index.php");

    }
?>
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