Avatar billede eizo_2 Nybegynder
17. april 2006 - 14:39 Der er 22 kommentarer og
2 løsninger

login tjek problem

jeg kan bare ikke få dette script til at tjekke om brugeren der logger ind er Admin eller Co-admin

jeg bruger denne stump kode til at tjekke om brugeren er logget ind

<?

  require("db_ind.php");
  $passquery = mysql_query("SELECT password FROM profiler WHERE username = '$username'");
  if (!mysql_num_rows($passquery))
    {     
          echo "Du er ikke logget ind";
                }
  else
    {
   
    ?>



<?

$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      if($dbpassword == $password)
    {
          $login = (true);

echo "Du er nu logget ind";

jeg har prøvet at lidt af hver for at se om den vil tjekke for rank i brugeren´s profil men uden held

dette er den sidste stump kode jeg har prøvet som heller ikke virket.

håber der er en der kan hjælpe mig


<?

$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password || $status == "Admin")
   
      {
          $login = (true);
                 
echo "du er logget ind som Admin";
Avatar billede ttopholm Nybegynder
17. april 2006 - 14:43 #1
Du skal også huske at vælge rank i din select sætning.. prøv med denne select sætning..

SELECT password, rank FROM profiler WHERE username = '$username'
Avatar billede eizo_2 Nybegynder
17. april 2006 - 14:47 #2
har jeg prøvet nu og selv om jeg bruger den så selv om brugeren ikke er adminbliver man stadigvæk logget ind som admin ???
Avatar billede michael_stim Ekspert
17. april 2006 - 14:49 #3
Du skla bytte eller (||) ud med og (&&)
Avatar billede jakobdo Ekspert
17. april 2006 - 14:53 #4
Hvor kommer $username og $password fra?
Er det sessions eller posts fra en form?
Avatar billede ellebaek Nybegynder
17. april 2006 - 14:56 #5
du skal lave en && i stedet....

<?

$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password && $status == "Admin")
 
      {
          $login = (true);
               
echo "du er logget ind som Admin";

da password ellers er true og den er god nok.
Prøv at logge ind som en admin bruger med forkert password... det vil også virke..

Brug i stedet:

<?

$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password)
 
      {
          $login = (true);
if ($status == "Admin") {
echo "du er logget ind som Admin";
}

}
Avatar billede eizo_2 Nybegynder
17. april 2006 - 14:56 #6
tak for det .. men hvad gør jeg så ved de bruger som ikke er admin men bare almindelige bruger ?

for fjerner jeg min Admin rank som får jeg bare af vide jeg ikke er logget ind selv om jeg er logget ind og kan tjekke/rette i min egen profil ?
men logger jeg ud og prøver at tjekke/rette i min profil kan jeg ikke få lov og det er også rigtig nok
Avatar billede ellebaek Nybegynder
17. april 2006 - 14:58 #7
Når du benytte || så er det enten den ene eller den anden der skal være true for at if'en bliver godkendt. I dette tilfælde var $dbpassword == $password true, og if'en er derfor ligeglad med om din status er admin.

Som jeg har lavet det oven for, så sætter den $login = (true); når passwordet er rigtigt, men skriver kun til brugeren at han er admin hvis $status == "Admin"

alternativt kan du bruge det første jeg skrev, men der vil brugeren blive afvist hvis han ikke er admin.
Avatar billede ellebaek Nybegynder
17. april 2006 - 15:00 #8
du kan benytte:
if ($status == "Admin") {
  echo "Du er logget ind som admin";
}
else {
  echo "Du er logget ind som bruger";
}

Den skal så bare i stedet for:
if ($status == "Admin") {
echo "du er logget ind som Admin";
}

Tror vidst nok jeg har forstået dig rigtigt :-)
Avatar billede eizo_2 Nybegynder
17. april 2006 - 15:07 #9
ja jeg vil helst bruge den med så man ikke bliver afvist hvis man ikke er admin .. men s jeg har fået den til at virke med at vise  ( du er Admin )
men hvis jeg nu tager min Co-Admin
$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password)
 
      {
          $login = (true);
if ($status == "Co-Admin") {

      echo "Du er Co-Admin";
}
Så virker den ikke .. den skriver ingen ting ..
Avatar billede eizo_2 Nybegynder
17. april 2006 - 15:09 #10
<?


$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password)
 
      {
          $login = (true);
if ($status == "Admin") {
         
          echo "du er Admin";
}
else
  {
  ?>


<?
$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $status = $row['rank'];
if($dbpassword == $password)
 
      {
          $login = (true);
if ($status == "Co-Admin") {

      echo "Du er Co-Admin";
}
else
  {
  ?>


<?
$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      if($dbpassword == $password)
 
      {
          $login = (true);


      echo "Du er logget ind";
}
Avatar billede jakobdo Ekspert
17. april 2006 - 15:11 #11
Har du ikke et felt i din db, som angiver om man er admin, co-admin eller almindelig bruger?
Så kunne jo jo trække det med ud af din db, og sætte hvor du nu sætter den værdi!
Avatar billede ellebaek Nybegynder
17. april 2006 - 15:11 #12
Det kan være fordi den måske er case-sensitiv...

For umiddelbart burde det virke..
Men prøv eventuelt som nedenfor...

if (lcase($status) == lcase("Admin")) {
  echo "Du er logget ind som admin";
}
elseif(lcase($status) == lcase("Co-Admin")) {
  echo "Du er Co-admin";
}
else {
  echo "Du er logget ind som bruger";
}
Avatar billede ellebaek Nybegynder
17. april 2006 - 15:12 #13
Eventuelt kunne du jo bare skrive:

echo "Du er logget ind som: $status";

Så skriver den hvad brugerens status er i stedet... Og det er jo den værdi du referere til i databasen,
Avatar billede jakobdo Ekspert
17. april 2006 - 15:12 #14
lcase()?
Du skal bruge: strtolower()
Avatar billede eizo_2 Nybegynder
17. april 2006 - 15:13 #15
i min database har jeg lavet at når en bruger bliver oprettet får han/hun Rank som Bruger
men jeg har selv sat min egen bruger til Admin og en af mine venner som Co-Admin
som værdi
Avatar billede ellebaek Nybegynder
17. april 2006 - 15:14 #16
Jakobdo ->
Hehe.... :-)

Leger vidst lidt for meget med VBScript for tiden...

if (strtolower($status) == strtolower("Admin")) {
  echo "Du er logget ind som admin";
}
elseif(strtolower($status) == strtolower("Co-Admin")) {
  echo "Du er Co-admin";
}
else {
  echo "Du er logget ind som bruger";
}

Men selvfølgelig skal det være som ovenstående
Avatar billede jakobdo Ekspert
17. april 2006 - 15:15 #17
I stedet for ren tekst, så brug status som et tal f.eks.:

0 = bruger
1 = co-admin
2 = admin
osv..
Det er lettere at styre i længden og f.eks sammenligne.
Avatar billede eizo_2 Nybegynder
17. april 2006 - 15:16 #18
jeg skal bruge rank´en  til min bruger menu så at når man er admin får man admin menu frem og når man ikke er er der kun almindelig menu der kommer frem
så den skal jo gå ind og tjekke i db om man er bruger eller admin /Co-admin og vide det indhold der skal være sat til de forskellige Ranke
Avatar billede jakobdo Ekspert
17. april 2006 - 15:21 #19
Jeg ville lave det på denne måde:

en bruger logger ind...
Tjekker om brugernavn og kodeord matcher 1 bruger i vores db, gør den det, så gemmer vi status og evt brugernavn/id i en session:

$_SESSION['brugernavn'] = $row['brugernavn'];
$_SESSION['status']    = $row['status'];

I din menu kan du så lave:

//Har vi en admin eller co-admin?
if($_SESSION['1'] || $_SESSION['2'])
{
echo "HEJ ADMIN eller CO-ADMIN";
}
else
{
echo "HEJ almindelige bruger";
}
Avatar billede ellebaek Nybegynder
17. april 2006 - 15:21 #20
<?

$row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $var = $row['rank'];
if($dbpassword == $password)

      {
          $login = (true);

if (strtolower($var) == strtolower("Admin")) {
  echo "Du er logget ind som admin";
  $status = "Admin";
}
elseif(strtolower($var) == strtolower("Co-Admin")) {
  echo "Du er Co-admin";
  $status = "Co-Admin";
}
else {
  echo "Du er logget ind som bruger";
  $status = "Bruger";
}
}

Så ville jeg nok gøre noget i stilen af ovenstående..
Men er enig med Jakob i at det er bedre at benytte et tal som identifikation af brugertype og på den måde så hive informationen ud...

Men prøv ovenstående.. det burde virke.
Avatar billede eizo_2 Nybegynder
28. april 2006 - 02:24 #21
jeg har opgivet at få det til at virke så der er point til alle mand når jeg har et svar fra jer
Avatar billede jakobdo Ekspert
28. april 2006 - 08:33 #22
Svar!
Avatar billede jakobdo Ekspert
28. april 2006 - 15:00 #23
Takker for point.
Avatar billede eizo_2 Nybegynder
28. april 2006 - 15:05 #24
no problem .. har fået lavet et nyt login sys af en kami som jeg bruger i stedet men point skal i have for hjælpen selv om jeg ikke fik det til at virke .. har opretter et nyt spm om et andet problem jeg har nu .. typisk mig at fucke det hele op
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 14:04 Pixeline cd’er til PC Af Mathilde i Windows
I dag 01:14 Windows 10 - IIS 10 Af bsn i Windows
I går 20:39 Boot fra USB Af poulmadsen i Windows
I går 11:43 Gmail-ikon på skrivebordet Win 10 Af ErikHg i Fri debat
I går 09:22 Lopslag Af Luffe i Excel