| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
f0rce
Medlem i: 1211 dagar
Status: Offline
#723450
|
Skrivet: 2012-05-14 14:48
Ämne: Sessioner så bara vissa användare kan se särskilda saker
|
|
|
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 |
|
Timbeng
Medlem i: 1742 dagar
Status: Offline
#723452
|
Skrivet: 2012-05-14 16:16
Ämne:
|
|
|
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.
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 |
|
Caliber
Medlem i: 608 dagar
Status: Offline
#723456
|
Skrivet: 2012-05-14 18:10
Ämne:
|
|
|
Till att börja med, kolla vad $_SESSION['behorighet'] har för värde:
1: echo $_SESSION['behorighet'];
|
|
|
|
_________________ Libris24 - Begagnad kurslitteratur & studentlitteratur |
| Till toppen på sidan |
|
f0rce
Medlem i: 1211 dagar
Status: Offline
#723458
|
Skrivet: 2012-05-14 19:46
Ämne:
|
|
|
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 |
|
Wedge


Medlem i: 3924 dagar Från: Järfälla
Status: Offline
#723459
|
Skrivet: 2012-05-14 19:51
Ämne:
|
|
|
| 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 |
|
f0rce
Medlem i: 1211 dagar
Status: Offline
#723460
|
Skrivet: 2012-05-14 19:56
Ämne:
|
|
|
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 |
|
kalko
Medlem i: 400 dagar
Status: Offline
#723461
|
Skrivet: 2012-05-14 22:31
Ämne:
|
|
|
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 |
|
f0rce
Medlem i: 1211 dagar
Status: Offline
#723462
|
Skrivet: 2012-05-14 22:39
Ämne:
|
|
|
admin.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($result, 0, '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
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 |
|
Wedge


Medlem i: 3924 dagar Från: Järfälla
Status: Offline
#723463
|
Skrivet: 2012-05-14 23:08
Ämne:
|
|
|
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 |
|
f0rce
Medlem i: 1211 dagar
Status: Offline
#723464
|
Skrivet: 2012-05-14 23:17
Ämne:
|
|
|
| Wedge: oj! ännu ett slarvfel, ber om ursäkt. Ordnat! :D |
|
|
|
| Till toppen på sidan |
|
Caliber
Medlem i: 608 dagar
Status: Offline
#723473
|
Skrivet: 2012-05-15 14:21
Ämne:
|
|
|
Ändra rad 14 i admin.php till:
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:
1: $_SESSION['behorighet'] = mysql_result($result, 0, 'behorighet');
|
|
|
|
_________________ Libris24 - Begagnad kurslitteratur & studentlitteratur |
| Till toppen på sidan |
|
f0rce
Medlem i: 1211 dagar
Status: Offline
#723478
|
Skrivet: 2012-05-15 17:33
Ämne:
|
|
|
Kom på det själv efter en stunds prövande!
Tack så mycket ändå Caliber och er andra! |
|
|
|
| Till toppen på sidan |
|
|