14. februar 2008 - 18:46Der er
21 kommentarer og 1 løsning
Rangsytem php (Cms system)
Hej allesammen jeg er igang med at prøve lave et cms system men der skal være opdelt hvad folk har adgang med så jeg har lavet en mysql der ser sådan ud:
id int(255) Nej auto_increment brugernavn varchar(255) latin1_general_ci Nej adgangskode varchar(255) latin1_general_ci Nej class tinyint(3) Nej
Class skal så være det system den sortere mellem der er 5 forskellige rang og de skal bare være tal
alstå
Admin = 5 User4 = 4 O.S.V
og så når jeg har et link til noget som kun skal vises for admin skriver jeg:
<?php if (get_user_class() >=5) {?><td width="140"><a href="admin_edit_topmenu.php?id=1">Topmenu1/forside</a></td><?php } ?>
Men hvad mangler jeg
Jeg ved jeg mangler at skrive noget så den kan finde ud af hvor get_user_class for sin info fra...?
Men du beder den om at udfører funktionen get_user_class(). Og hvis ikke du definere denne funktion virker den sjovt nok ikke. Men hvorfor er det du skriver get_user_class()?
Hvis jeg nu var dig, så ville jeg gennem en session (fx $_SESSION['user_class']) når man logger ind. Denne session skal så indeholde ens rang, og så udskufte get_user_class() med $_SESSION['user_class']. Dette kan i hvertfald løse problemet.
Jeg er rimlig noob på dette område og prøver at forstå det hele købte den der Lav dit eget cms system og derefter vil jeg prøve at udvide pakken... med user class så hvis man har en vis rang kommer der flere menu punkter frem om der nogen der kan løse det for mig eller om der er nogen som kender et link til en side hvor der er en grundig forklaring..?
Nej det gjorde jeg ikke fordi jeg har studeret TB-dev source php system og der bruger de det system som jeg har prøvet at indplantere men kan ikke finde helt ud af deres koder
TB-DEv source bruges til bittorrent hosting ved det men bruger det ikke til ulovligheder det kan faktisk med få klik forvandles om til et udenmærket cms system men det er mere for at forklare hvor jeg har fået ideer fra...
Hm. Nu er jeg jo vandt til selv at bygge mine koder helt fra bunden. Men det jeg skrev før er en ganske simpel løsning. Når brugeren logger ind, formoder jeg at der er noget php funktion der henter oplysninger fra din MySQL database. Sammen med denne login kode laver du en linie hvor der fx står $_SESSION['user_class'] = $rang_varedi. Variablen $rang_vaerdi skal jo så selvfølgelig udskiftes med den variabel (el. array) der indeholder brugerens rang. Når så du vil udskrive et menu punkt hvor man fx min skal have rang 4, skal den så tjekke om $_SESSION['user_class']>=4. Hvis du vælger denne meget simple løsning skal du også huske session_start(); koden i TOPPEN af hver side. Og den skal placeres HELT i toppen. Også før <html> udskrives.
Men hvis du insistere på at bruge den metode din kode stammer fra med get_user_class(), ja, så kan jeg ikke hjælpe med de informationer du har givet. Jeg kan desværre ikke bare trylle en php kode frem uden at vide hvad den skal gøre!
id int(255) Nej auto_increment brugernavn varchar(255) latin1_general_ci Nej adgangskode varchar(255) latin1_general_ci Nej ---> class tinyint(3) Nej <---
Ja. Jeg skal beklage den lange vente tid. Men fik pludelige ualmindelig travlt med nogle ting.
Det eneste jeg egentlig har ændret er i login.php (el. lign. kan ikke lige huske navnet præcist). Og resten det må så være op til dig selv ;-)
Når du så i fremtiden vil tjekke om brugeren skal hav adgang skal du bruge følgende (som er en omskrvning af koden fra dit oprindelige spørgsmål: <?php if ($_SESSION['user_class'] >=5) {?><td width="140"><a href="admin_edit_topmenu.php?id=1">Topmenu1/forside</a></td><?php } ?>
Du skal altså bare udskifte get_user_class() med $_SESSION['user_class']. Og så burde det virke. Får du problemer skriver du bare ;-) Håber det var en hjælp...
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.