qualitum logo
Sessioner så bara vissa användare kan se särskilda saker

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
f0rce



Medlem i: 1211 dagar

Status: Offline



#723450
Inlägg Skrivet: 2012-05-14 14:48      Ämne: Sessioner så bara vissa användare kan se särskilda saker Citera

Tjenare!

Håller på med ett litet projekt jag och några polare tänkte starta.
Försöker nu koda ett nyhets script samt, administratörs sida.

Men det finns 2 olika behörigheter på adminsidan.

1 = Administratör
2 = Huvudadministratör

1 ska kunna lägga till och bara kunna ta bort sina nyheter medans 2 ska kunna lägga till, ta bort och redigera allt.

Hur ska jag göra detta?

Har prövat if($_SESSION['behorighet'] == 2){

echo "hej";
}

Då ska alla användare som har behörigheten 2 i databasen kunna se det jag echat ut, men så är inte fallet.

Hur ska jag göra?

tacksam för all hjälp jag kan få!

Senast ändrad av f0rce den 2012-05-14 19:57, ändrad totalt 1 gång
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Timbeng



Medlem i: 1742 dagar

Status: Offline



#723452
Inlägg Skrivet: 2012-05-14 16:16      Ämne: Citera

Hej!

Har du startat sessionen på varje sida?
session_start();

http://php.net/manual/en/function.session-start.php
http://www.w3schools.com/php/php_sessions.asp

Har du gett sessionsvariabeln $_SESSION['behorighet'] ett värde av 3 någonstans?
...troligen genom något slag av inloggningssida.

PHP:
1:
 /* Verifiering av lösenord och användare...  */
2:
 
3:
...
4:
 
5:
/* Allt stämmer Logga in honom och sätt rätt behörighet */
6:
if(my_daug==inloggad){
7:
      $_SESSION['behorighet']=3;
8:


/ Tim
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Caliber



Medlem i: 608 dagar

Status: Offline



#723456
Inlägg Skrivet: 2012-05-14 18:10      Ämne: Citera

Till att börja med, kolla vad $_SESSION['behorighet'] har för värde:

PHP:
1:
 echo $_SESSION['behorighet']; 
 

_________________
Libris24 - Begagnad kurslitteratur & studentlitteratur
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
f0rce



Medlem i: 1211 dagar

Status: Offline



#723458
Inlägg Skrivet: 2012-05-14 19:46      Ämne: Citera

Jag har ju en kolumn i databasen som heter behorighet, och där i har man antingen 1 eller 2, och då ska jag ju hämta det.

Antagligen med en sql fråga?
men hur ska jag göra för att hämta den?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3924 dagar
Från: Järfälla
Status: Offline



#723459
Inlägg Skrivet: 2012-05-14 19:51      Ämne: Citera

Databasen innehåller 1 eller 2, och du tänkte visa innehåll för de som har 3...??
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
f0rce



Medlem i: 1211 dagar

Status: Offline



#723460
Inlägg Skrivet: 2012-05-14 19:56      Ämne: Citera

Wedge;
ber om ursäkt där, mitt fel.

Skulle inte vara 3 utan självklart skulle det stå 2 där.
Ber ännu en gång om ursäkt, redigerar mitt fel omgående.


Så har ni några förslag på hur detta kan göras? =)
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
kalko



Medlem i: 400 dagar

Status: Offline



#723461
Inlägg Skrivet: 2012-05-14 22:31      Ämne: Citera

hur ser din kod ut? utan det kan vi inte hjälpa mycket.
Ta väck all "hemlig" info som t.ex login uppgifteroch visa oss resten.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
f0rce



Medlem i: 1211 dagar

Status: Offline



#723462
Inlägg Skrivet: 2012-05-14 22:39      Ämne: Citera

admin.php

PHP:
1:
<?php
2:
session_start();
3:
$mysql_server "localhost";
4:
$mysql_user "root";
5:
$mysql_pass "";
6:
$db "administrator";
7:
 
8:
$connect mysql_connect($mysql_server$mysql_user$mysql_pass);
9:
mysql_select_db($db$connect);
10:
 
11:
 
12:
if(isset($_POST['submit'])){
13:
 
14:
   $query "SELECT id FROM users WHERE username='{$_POST['username']}' AND password='{$_POST['password']}'";
15:
   $result mysql_query($query);
16:
   
17:
   
18:
   if(mysql_num_rows($result) == 0){
19:
   header("Location: admin.php?badlogin=");
20:
   exit;
21:
   }
22:
   
23:
   $_SESSION['sess_id'] = mysql_Result($result0'id');
24:
   $_SESSION['sess_user'] = $_POST['username'];
25:
 
26:
   header("Location: welcome.php");
27:
   exit;
28:
}
29:
 
30:
if(isset($_GET['logout'])){
31:
   session_unset();
32:
   session_destroy();
33:
   header("Location: admin.php");
34:
   exit;
35:
 
36:
 
37:
   }
38:
 
39:
 
40:
?>
41:
 
42:
 
43:
 
44:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
45:
<html>
46:
<head>
47:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
48:
<title>Index</title>
49:
</head>
50:
<body>
51:
<?php
52:
 
53:
if (!isset($_SESSION['sess_user'])){
54:
 
55:
   echo "<h3>Logga in</h3>\n";
56:
   
57:
   if (isset($_GET['badlogin'])){
58:
      echo "Fel användarnamn eller lösenord!<br>\n";
59:
      echo "Försök igen!\n";
60:
      
61:
      
62:
   }
63:
 
64:
?>
65:
<form action="admin.php" method="post">
66:
Användarnamn:<br>
67:
<input type="text" name="username"><br>
68:
Lösenord:<br>
69:
<input type="password" name="password"><br>
70:
<input type="submit" name="submit" value="Logga in">
71:
</form>
72:
<?php
73:
 
74:
} else {
75:
   echo "Du är redan inloggad, var god att fortsätt till <a href=\"welcome.php\">Startsidan</a>\n eller logga ut nedanför<br>";
76:
   echo "<a href=\"admin.php?logout=\">Logga ut</a>\n";
77:
}
78:
?>
79:
 
80:
</body>
81:
</html>
82:
 


welcome.php
PHP:
1:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
2:
<?php
3:
session_start();
4:
if(!isset($_SESSION['sess_user'])){
5:
   
6:
   header("Location: admin.php");
7:
   exit;
8:
}
9:
?>
10:
 
11:
 
12:
 
13:
 
14:
 
15:
<html>
16:
<head>
17:
<title>Index</title>
18:
</head>
19:
<body>
20:
<h1>Välkommen! <?php echo $_SESSION['sess_user']; ?></h1>
21:
 
22:
<a href="admin.php?logout=">Logga ut</a>
23:
</body>
24:
</html>




Har tagit bort det jag prövat, då det inte fungerat. Googlat massvis men lyckas verkligen inte.

Så en liten hint på vägen skulle vara fint!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3924 dagar
Från: Järfälla
Status: Offline



#723463
Inlägg Skrivet: 2012-05-14 23:08      Ämne: Citera

Varför ligger meta-taggen på rad 1 i welcome.php?
Den hör hemma i head-taggen. Och där den ligger nu bidrar den även till att omöjliggöra sessionsstarten, eftersom inget alls får skickas till webbläsaren innan session_start.
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
f0rce



Medlem i: 1211 dagar

Status: Offline



#723464
Inlägg Skrivet: 2012-05-14 23:17      Ämne: Citera

Wedge: oj! ännu ett slarvfel, ber om ursäkt. Ordnat! :D
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Caliber



Medlem i: 608 dagar

Status: Offline



#723473
Inlägget är accepterad som det rätta svaret Skrivet: 2012-05-15 14:21      Ämne: Citera

Ändra rad 14 i admin.php till:

PHP:
1:
 $query "SELECT id, behorighet FROM users WHERE username='{$_POST['username']}' AND password='{$_POST['password']}'"


Detta förutsätter att du har ett fält i databasen som heter just "behorighet".

Vid lyckad inloggning tilldelar du sedan det värdet till sessionsvariabeln:

PHP:
1:
 $_SESSION['behorighet'] = mysql_result($result0'behorighet'); 
 

_________________
Libris24 - Begagnad kurslitteratur & studentlitteratur
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
f0rce



Medlem i: 1211 dagar

Status: Offline



#723478
Inlägg Skrivet: 2012-05-15 17:33      Ämne: Citera

Kom på det själv efter en stunds prövande!

Tack så mycket ändå Caliber och er andra!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo