---
title: "Separera admin från användare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/155787-separera-admin-från-användare/page2"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Tulork"
published: "2007-01-09T17:08:13.000Z"
updated: "2007-01-10T10:28:55.000Z"
replies: 29
views: 917
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/155787-separera-admin-från-användare"
---

# Separera admin från användare

_Sida 2 av 2._

## #21 — Tulork, 2007-01-09T20:59Z

hehe, såg en rolig sak nu..(har inte ändrat nått till det du skrev sist) jag loggade in som admin...kom till konto.php, försökte skriva admin.php i adressfältet, kom till index.php..

\*edit

fick inte utskriften utav det att funka..antagligen tom..

Permalänk: https://www.webforum.nu/p/1919420

## #22 — Tulork, 2007-01-09T21:04Z

men..skapar det inte problem att bara admin har ett värde i fältet userlevel..? eller..nä, det snurrar i mitt huvud nu, suttit hela dagen idag och glott på kod...vill bara få rätt på detta så jag kan gå o lägga mig

Permalänk: https://www.webforum.nu/p/1919421

## #23 — Pedda, 2007-01-09T21:05Z

Tom borde den ju inte vara. Borde ju innehålla antingen user eller admin.

/red
Ett litet förtydligande.
Även när du loggar in som vanlig användare så ska den ju inte vara tom eftersom userlevel har ett defaultvärde.

Permalänk: https://www.webforum.nu/p/1919422

## #24 — Tulork, 2007-01-09T21:10Z

iofs...har testat lite nu, jag skriver i konto.php 

echo "$\_SESSION\['sess_userlevel'\]"; //funkar inte
echo ("$\_SESSION\['sess_userlevel'\]"); // funkar inte

Permalänk: https://www.webforum.nu/p/1919426

## #25 — Pedda, 2007-01-09T21:24Z

Hm, då verkar den inte få något värde

Är nog bättre att använda mysql_fetch_assoc istället för mysql_result när du sätter sessionerna.

```php
$row = mysql_fetch_assoc($result);
   
$_SESSION['sess_id'] = $row['id'];
$_SESSION['sess_user'] = $_POST['user'];
$_SESSION['sess_userlevel'] = $row['userlevel'];
```

/red
Såg nu att jag hade skrivit
$\_SESSION\['sess_userlevel'\] = mysql_result($result, 1, 'userlevel');
när det skulle ha varit 
$\_SESSION\['sess_userlevel'\] = mysql_result($result, 0, 'userlevel');

Kanske hjälper om du bara ändrar det!

Permalänk: https://www.webforum.nu/p/1919432

## #26 — Tulork, 2007-01-09T22:50Z

får inte rätt på det.. nu gör vi så här, jag postar allting

**admin.php**

```php
<?php
session_start(); // Alltid överst på sidan

// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {
  header("Location: index.php");
  // eller
  // echo "Du har inte behörighet till den här sidan";
  exit;
}

// tog bort logout eftersom du har den i index.php

?>

<html>
<head>
<!--
.style4{
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
}
.style6{
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px; font-weight:bold;
}
-->
</style>
</head>

<body>
<span class="style6">Administrations funktioner</span><br>

<span class="style4"><a href="welcome.php">Lägg till en användare</a><br>
<a href="remove.php">Ta bort en användare</a><br>
<a href="konto.php">Konto</a>
</span><br><br>
</body>
</html>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
```

**konto.php**

```php
<?php
ob_start();
session_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh
$query = "SELECT * FROM $mem_table WHERE userlevel = ".$_SESSION['sess_id']."";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<p>Den inloggade är<p>";
//echo "$_SESSION['sess_userlevel'];";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

ob_end_flush();
?>
<?php
echo "<br><a href=\"index.php?logout=\">Logga ut</a>\n<br><br>";
?>
<a href="admin.php">Tillbaka </a><br><br>
```

**remove.php**

```php
<?php
ob_start();
session_start(); // Alltid överst på sidan

// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>

<?php

include "conn.php";

if ($_POST['JA'] == "Ja" && strlen($_POST['delete']) && $_POST['delete'] != "6")
{
  mysql_query("DELETE FROM $mem_table WHERE id = '" . $_POST['delete'] . "'");
  header("Location: remove.php");
  exit;
}

// Performing SQL query
$query = 'SELECT * FROM members';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<link rel=StyleSheet href=\"setts\style.css\" TYPE=\"text/css\">";
echo "<table>\n";
echo "<p class=\"text\">ID User Pass Name<p>";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

if (isset ($_POST ['submit'])){
  $delete = $_POST['delete'];
  if ($delete=="6"){
    echo "<p class=\"text2\">Du kan inte ta bort Admin kontot!<p>";
  }

//--------------------------------------------------------------

  else {
        echo "<body class=\"text\">
	<p>Är du säker på att du vill ta bort Användaren med id:$delete?<p>	
	<form method=\"post\" action=\"?\">
        <input type=\"submit\" name=\"JA\" value=\"Ja\">
        <input type=\"submit\" name=\"NEJ\" value=\"Nej\">
                 <input type=\"hidden\" name=\"delete\" value=\"$delete\">
        </form>
	</body>";

  }
}
ob_end_flush();
?>

<br><form method="post" action="?">
<label for="delete"> Vilket id vill du ta bort</label>
<input type="text" name="delete" />
<input type="submit" name="submit" value="Ta bort!"/>
</form><br>
<a href="admin.php">Tillbaka</a><br><br>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>
```

**Welcome.php**

```php
<?php
session_start(); // Alltid överst på sidan
ob_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<?php
include "conn.php"; // Databasanslutningen

if (isset($_POST['submit'])){

  $_POST = db_escape($_POST);

  // Tag bort eventuella blanksteg i början eller slutet
  foreach($_POST as $key => $val){
    $_POST[$key] = trim($val);
  }

  //Kolla efter tomma fält
  if (empty($_POST['user']) || empty($_POST['passwd']) ||
      empty($_POST['name'])) {
    $reg_error[] = 0;
  }
//|| empty($_POST['email'])
  
  // Kolla om användarnamnet är upptaget
  $sql = "SELECT COUNT(*) FROM $mem_table WHERE user='{$_POST['user']}'";
  $result = mysql_query($sql);
  if (mysql_result($result, 0) > 0) {
    $reg_error[] = 1;
  }
  
  // Kolla om e-post kan tänkas vara ok
 // if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,6}$/', $_POST['email'])) {
 //   $reg_error[] = 2;    
 // }

  //Kolla så att lösenorden är längre än 5 tecken
  if (strlen($_POST['passwd'])<5){
    $reg_error[] = 2;
  }
  // Kolla så att lösenorden stämmer överrens
  if ($_POST['passwd'] != $_POST['passwd2']) {
    $reg_error[] = 3;
  }
  
  // Inga fel? Spara
  if (!isset($reg_error)) {
	
    $sql = "INSERT INTO $mem_table(user, pass, name)
            VALUES('{$_POST['user']}', '{$_POST['passwd']}', '{$_POST['name']}')";
    		mysql_query($sql);
		
		// Detta gör så att man loggar in på den man registrerar
   		  // $_SESSION['sess_id'] = mysql_insert_id();
 		  // $_SESSION['sess_user'] = $_POST['user'];
		
		  //echo "$godkant";
   	  	  header("refresh: 5;url=welcome.php");
   	 	   echo "Användaren: {$_POST['user']}, har nu lagts till!, Du kommer att skickas tillbaka inom 5 sekunder.";
		  exit;    
	//die("test");	
		
  }
ob_end_flush();
}
 else {

  // Sätt variabler för tomt formulär
  for ($i=0; $i<4; $i++) {
    $back[$i] = "";
  }

}
//Meddelanden----------
$error_list[0] = "Alla fält är inte infyllda";
$error_list[1] = "Användarnamnet är upptaget";
$error_list[2] = "Lösenordet måste vara längre än 5 tecken";
$error_list[3] = "Lösenorden stämmer inte överrens";
//$godkant = "Godkännt!";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
<title>Registrera dig</title>
</head>
<body>
<h3>Registrera dig</h3>
<?php
if (isset($reg_error)){

  echo "Något blev fel:<br>\n";
  echo "<ul>\n";
  for ($i=0; $i<sizeof($reg_error); $i++) {
    echo "<li>{$error_list[$reg_error[$i]]}</li>\n";
  }
  echo "</ul>\n";
  
  $back[0] = stripslashes($_POST['user']);
  $back[2] = stripslashes($_POST['name']);
 // $back[3] = stripslashes($_POST['email']);

}
?>
<form action="welcome.php" method="post">
<table cellspacing="3">

<tr>
<td>Användarnamn:</td>
<td><input type="text" name="user" value="<?=$back[0] ?>"></td>
</tr>

<tr>
<td>Lösenord:</td>
<td><input type="password" name="passwd" value=""></td>
</tr>

<tr>
<td>Repetera lösenord:</td>
<td><input type="password" name="passwd2" value=""></td>
</tr>

<tr>
<td>Kundens namn</td>
<td><input type="text" name="name" value="<?=$back[2] ?>"></td>
</tr>

<tr>
<td colspan="2" align="center">
  <input type="submit" name="submit" value="Lägg Till Användare">
</td>

</table>
</form>
<a href="admin.php">Tillbaka </a><br><br>
</body>
</html>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>
```

**index.php**

```php
<?php
session_start(); // Alltid överst på sidan
ob_start();
include "conn.php"; // Databasanslutningen

// Inloggning
if (isset($_POST['submit'])){

  $_POST = db_escape($_POST);
   $sql = "SELECT id, userlevel FROM members
         WHERE user='{$_POST['user']}'
         AND pass='{$_POST['passwd']}'";
  $result = mysql_query($sql);
  $row = mysql_fetch_assoc($result);

  
  // Hittades inte användarnamn och lösenord
  // skicka till formulär med felmeddelande
  if (mysql_num_rows($result) == 0){
    header("Location: index.php?badlogin=");
    exit;
  }
// Sätt sessionen med unikt index
  $_SESSION['sess_id'] = $row['id'];
  $_SESSION['sess_user'] = $_POST['user'];
  $_SESSION['sess_userlevel'] = $row['userlevel'];

  if($_SESSION['sess_userlevel'] == "admin") {
   header("Location: admin.php");

    exit;
  }
  else
  {
    header("Location: konto.php");
    exit;
  }
}

// Utloggning
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}ob_end_flush();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
<title>Index</title>
</head>
<body>
<?php

// Om inte inloggad visa formulär, annars logga ut-länk
if (!isset($_SESSION['sess_user'])){

  echo "<h3>Logga in</h3>\n";
  
  // Visa felmeddelande vid felaktig inloggning
  if (isset($_GET['badlogin'])){
    echo "Fel användarnamn eller lösenord!<br>\n";
    echo "Försök igen!\n";
  }
  
?>
<form action="index.php" method="post">
Användarnamn:<br>
<input type="text" name="user"><br>
Lösenord:<br>
<input type="password" name="passwd"><br>
<input type="submit" name="submit" value="Logga in">
</form>

<?php

} else {

  echo "<a href=\"index.php?logout=\">Logga ut</a>\n";

}
?>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1919451

## #27 — Tulork, 2007-01-09T22:51Z

databasen ser ut så här 
Mysql databasen ser ut så här

```
+-----+-----------------+----------+---------+-----------+
| id  | user            | pass     | name    | userlevel |
+-----+-----------------+----------+---------+-----------+
| 121 | admin           | dgt54r   | admin   | 15         |
| 123 | google          | google   | google  | user      |
| 124 | hej                | aaaaaa  | ada       | user      |
+-----+-----------------+----------+---------+-----------+
```

kika lite på det jag skickat om du e sugen, du har redan hjälp mig så mkt :)

kommer inte få ro i natt om det inte funkar..., antagligen får det bli mer i morgon.. 

när denna bite väl fungerar så ska jag ge mig på kryptering utav lösenorden.. yay   :x

Permalänk: https://www.webforum.nu/p/1919452

## #28 — Pedda, 2007-01-09T22:53Z

Varför har admins userlevel ett värde på 15? 
I koden kollar vi ju om den har värdet admin.

red
Kan tyvärr inte provköra din koder då jag inte har php installerat på den här datorn.

Permalänk: https://www.webforum.nu/p/1919453

## #29 — Tulork, 2007-01-09T22:55Z

ja du...trötthet :D

\*EDIT

ändrade admin till 15..blev nu skickad till index.php ;)

Permalänk: https://www.webforum.nu/p/1919455

## #30 — Tulork, 2007-01-10T10:28Z

Tack för all hjälp igår! vi har fått det att funka nu. Ska ge mig på kryptering nu.

Permalänk: https://www.webforum.nu/p/1919525

---

Tråden på webben: https://www.webforum.nu/amne/php/155787-separera-admin-från-användare/page2  
Föregående sida: https://www.webforum.nu/amne/php/155787-separera-admin-från-användare.md
