![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 16.04.2011 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam taki problem otóż staram się napisać skrypt logowania oparty na rangach (user, admin, mod). Rangi są zawarte w MYSQL. Wygląda to tak iż w bazie w tabeli są kolumny admin, mod (INT) jeśli wpiszesz 1 to jesteś adminem lub modem, jeśli 0 to nie. Ale problem leży w tym że nie wiem zbytnio jak napisać skrypt w logowaniu który sprawdzałby czy użytkownik jest admin, mod lub user i uruchamiał sesję wraz z odpowiednimi prawami. Proszę o wskazówki i pomoc:)
Jeśli temat umieściłem w złym miejscu najmocniej przepraszam iż jestem tu nową osobą. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
przypisz do innej sesji rangę a potem np
Tutaj skrypt rejestracji/logowania z mysql: http://www.eioba.pl/a/1u8h/rejestracja-i-logowania-phpmysql W pliku login zrób sobie zapytanie dodatkowe pobierające range i przypisz do sesji wynik.
W rejestracji:
To jest do tego skryptu który podałem ale myślę że nie sprawi Ci problemu wstawić to do swojego Ten post edytował kill15 16.04.2011, 18:23:34 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat przypisz do innej sesji rangę a potem nie bardzo... po cholere? Robisz tabela z relacja N:N z tabela uzytkownikow w ktorej robisz relacje user - ranga i pozniej pobieraz wszystkie ranki dla zalogowanego usera i sprawdzasz, czy ma wymagana range do wykonania konkretnej akcji.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
lukaskolista
z tego: Cytat uruchamiał sesję wraz z odpowiednimi prawami. zrozumiałem że chce rangę do sesji dałem odp a po co mu tak ![]() ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 16.04.2011 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi konkretnie o to że miałem gdzieś kiedyś skrypt lecz zgubiłem. I działał na zasadzie właśnie true, false na dwóch kolumnach w tabeli admin, mod. I gdy sie logowałeś, to w trakcie logowania sesja sprawdzała czy jestes admin czy mod i przekierowywała dalej wyświetlając odpowiednio PA lub PM. Nie wiem czy to zrozumiałe co napisałem ;/
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
po 1pierwsze typ dla pola rangi to tinyint bo po co zakres od ~-2,1 do 2,1 mld skoro mozna miec od -127 do 127 ?
po 2 ja to bym zrobil tak.. masz tabele users i tam trzymasz id_acc login haslo e-mail czy tam jakie chcesz dane i dodatkowo 2 tabele rangi i w niej trzymal bys id_acc ( id_acc z tabeli rangi jest rowne id_acc z tabeli users) oraz range czyli np 1 admin 2 gm 3 mod czy jakie tam chcesz. I przy logowaniu po tym jak sprawdzisz czy login i haslo jest poprawne sprawdzasz czy w tabeli rangi wystepuje id danego konta jesli tak to pobierasz wartosc czyli czy to admin ........ jesli nie ma takiego id w tabeli rangi to przekierowywujesz na podstrone dla zwyklych jesli jest to sprawdzasz jaki to typ konta i tez przekierowywujesz na strone ktora tobie pasuje. gdybyś nie wiedział użyj tej funkcji przy sprawdzaniu czy dane id wystepuje w tabeli rangi -> mysql_num_rows - funkcja Toie zwroci wartosc czy te id wystepuje w tej tabeli , jesli zwroci 0 tzn ze nie ma w niej takiego id. dodam jeszcze tyle ze chyba LEFT JOINa mozna uzyc przy sprawdzaniu czy id jest ale tu nie mam pewnosci i nie chce ci mieszac ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 16.04.2011 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Tak wygląda moja tabelka.
A tak wygląda mój plik login.php :
i nie mam pojęcia co i jak mam dopisać żeby sprawdzało i odpowiednio nakierowywało na rangi żeby potem w indexie móc dać
etc. lub coś podobnego do tego. Nie wiem czy to sensowne, ale chce to zrobić w jednej tabeli a nie bawić sie w relacje czy inne pierdółki na bazie 15 tabel. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
co do Twojego skryptu po 1 po co 2x dajesz praktycznie te samo zapytanie czyli wpierw wyciagasz login i haslo a poźniej nr ? - zrob to w 1
po2 do sesji ja bym proponowal przypisac zalogowany = 1; $_SESSION['user_id'] = $wynik_z_bazy co do rangi to daj to zapytanie nad sesjami gdzie tworzysz zmienne i zrob tak ze dajesz: SELECT `ranga` from `rangi` WHERE `id_acc` = $id_pobrane_z_zapytania nastepnie dajesz $wynik = mysql_num_rows($zapytanie); if($wynik > 0) { $ranga = mysql_fetch_assoc($zapytanie); $_SESSION['ranga'] = $ranga['ranga']; } |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
no ludzie po co wy sobie życie utrudniacie
![]() zamiast admin i mod w tabeli zrób sobie 1 kolumne nazwij ją ranga daj jej typ int albo varchar jak int to 1 - mod , 2 - admin. Gdy już user jest zalogowany to robisz zapytanie
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
no ludzie po co wy sobie życie utrudniacie ![]() może po to aby było wydajnie ![]() skoro w polu ranga będą trzymane wartości 1-5 a niech bedzie nawet 1-10 to po jakiego ...... ustawiać typ int ![]() 2) przypuśćmy masz 100 tyś uzytkownikow/kont z tego 99 tyś 990 to zwykli użytkownicy a pozostała 10 to mod,gm,admin - widzisz sens trzymania pola ranga w takiej tabeli ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 17.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
ja u siebie zrobilem osobny plik: "uprawnienia.php",
w którym to nadaje wlasnie uprawnienia, wyglada to nastepujaco:
1. wyszukuje uzytkownikow w bazie danych aby ich wyswietlic w selekcie 2. Kolejny select - juz z konkretnymi uprawnieniami 3. zmienna $uprawnienie przyjmuje wartosc wyslanemu uprawnieniu 4. I juz aktualizacja tabeli w bazie danych - gdzie uprawnienia przyjmuje wartosc wyslanemu uprawnieniu Teraz kolej na przypisanie jeszcze sesjii:
I teraz w kazdej podstronie do ktorej dostep ma miec admin dajemy
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:41 |