ugrás a tartalomhoz

hozzáférés korzlátozás

szobek · 2013. Okt. 18. (P), 15.19
Sziasztok!

Csak egy egyszerű kérdésem lenne.
Van egy egyszerű beléptetőm egy oldalon és egy olyan kis kiegészítőt próbáltam csinálni, hogy csak a megadott oldalakra lehessen belépni.Tehát ha nem jogosult, akkor dobja a kezdőoldalra.
A kérdés az, hogy szerintetek ez működőképes lehet? És ami fontosabb! Könnyen kijátszható?

Egy kis magyarázat. Minden usernek van egy group kódja ami egy felhasználó csoport. Ezt egy táblában tárolom, és belépésnél átadom a sessionnek. Ez a rész a fejlécbe menne, ja és fontos, hogy miután korlátozott csoportnak lenne, és leginkább belső felhasználásra, így a login az index.hu oldalon van. Az engedélyezett oldalak pedig egy menu táblában vannak ahol meg vannak adva a group kódok, hogy kik férhetnek az oldalhoz. pl:
id | href | group
1 | /teszt.php | 1;3;

a csoportok kezdőlapja:

gid | nev | start
1 | Sofőr | /fuvarok.php

az userek táblája (korlátozottan):
userid | nev | .... | group
1001 | Pista | .... | 1;

	if(isset($_SESSION["group"]) && isset($_SESSION["userid"])) {
				$group = "%".$_SESSION["group"].";%";
				$now = $_SERVER["PHP_SELF"];
				$result = mysql_query("SELECT href FROM `menu` WHERE `group` LIKE '$group' && href = '$now' ");
				if(mysql_num_rows($result) < '1') {
					$grouptonav = $_SESSION["group"];
					$nav = mysql_fetch_row(mysql_query("SELECT `start` FROM `groups` WHERE `groupid` = '$grouptonav'"))
					header('location:'.$nav["0"]);
				}
	}
	else {
		session_destroy();
		header('location:index.php');
		}
		
 
1

Több értéket egy mezőben

Pepita · 2013. Okt. 19. (Szo), 07.41
nem célszerű tárolni, ha van más megoldás is (group: "1;3;").
Ehelyett csináltál egy groups táblát, kéne egy merge tábla, ami az egyes Júzerekhez adja az egyes csoportokat. Egy másik témában 1-2 napja írtam ugyanezt. A merge tábla csak id-t és gid-t tartalmaz.

Ezzel a módszerrel nem lesz jó a like, mert ugyanazt kéne kapjad eredményül "%1;2;3%"-ra, mint "%2;1;3%"-ra, mivel ugyanazok a csoportok. De a like string nem ugyanaz.