Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] 2 warunki admin
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam otóż chciałem sobie rozbudować panel admina i pobawić się w filtry oraz w edytowanie uprawnień i stworzyłem dodatkowy typ konta AdminG którego nie będzie można edytować . I mam problem z logowaniem do admina tzn. mam kod

  1. $zapytanieA = $polaczenie->query("SELECT typ FROM uzytkownicy WHERE login = '". $_SESSION['login']."';");
  2.  
  3. while($dbA = $zapytanieA -> fetch_assoc() ) {
  4.  
  5. $login = $_SESSION['login'];
  6. $typ=$dbA['typ'];
  7. $admin="admin";
  8. $adminG="adminG";
  9.  
  10. if ($typ == $admin) // Sprawdzanie czy uzytkownik to admin
  11. {
  12. include("_start_admin.php");
  13. }
  14. elseif ($typ == $adminG) // Sprawdzanie czy uzytkownik to admin glowny
  15. {
  16. include("_start_admin.php");
  17. }
  18. else
  19. {
  20. header('Location: brakdostepu.php');
  21. }
  22. }

I po dodaniu drugiego warunka ( kombinowałem na wszystkie sposoby ) to jedna z wersji gdy loguje się adminG przenosi do brakdostepu.php dlaczego ? a gdy normalny admin od razu wczytuje start . Na dodatek gdy jest zalogowany adminG i klikniemy w powrót to ma uprawnienia czyli warunek się spełnia . Nie wiem co jest nie tak ze robi mi te przekierowywanie do brakdostepu gdy adminG
nospor
naprawde za kazdym razem mamy ci pisac bys robil VAR_DUMP?questionmark.gifquestionmark.gif

$typ=$dbA['typ'];
var_dump($typ);
exit;

I nagle wszystko jasne
Pyton_000
Nie wiem co za kod masz ale to co masz można np. tak:

  1. $zapytanieA = $polaczenie->query("SELECT typ FROM uzytkownicy WHERE login = '".$_SESSION['login']."' AND `typ` IN('admin', 'adminG') LIMIT 1;");
  2. $dbA = $zapytanieA->fetch_assoc();
  3.  
  4. if(empty($dbA)) {
  5. header('Location: brakdostepu.php');
  6. }
  7. include("_start_admin.php");
nospor
@Pyton zapomniales o exit. Po grzyba ma mu sie zawsze start ladowac?
mrk9109
pyton

dalej to samo przy logowaniu adminG zwraca brakuprawnien i po klinieciu powrot mozna przegladac :<

nospor
poraz kolejny ci mowie: zrob ten VAR_DUMP. Napisalem ci nawet gdzie. Pewnie w bazie masz cos innego niz ci sie wydaje
mrk9109
tak to wyglada cale

http://wklej.org/id/3378816/

edit:

juz robie i zaraz wkleje

komunikat:

string(5) "admin"
nospor
No i juz wiesz czemu ci nie dziala.... jakim cudem
admin==adminG
questionmark.gif

Pyton_000
Tylko że ten kod powinien przepuścić to bo zakłada że login musi mieć 1 z 2 uprawnień...
nospor
ale on pewnie podal to dla usera admin a nie dla usera adminG... ze powinien przepuscic to wiem ale on to zle odpala co ty juz powinienes tez wiedziec wink.gif
mrk9109
nie rozumie źle kombinuje ? $typ pobierany z bazy np: admin musi być = admin jeżeli typ pobrany to adminG musi byc rowny = adminG ? . Nie rozumie tego co napisales probowalem takie rozwiazania ale tez lipa tzn uprawnienia działają ale gdy loduje się adminG i tak go przekierowuje 1 do brakdostepu pliku .

  1. switch($typ){
  2.  
  3. case 'admin':
  4. include("_start_admin.php");
  5. break;
  6. case 'adminG':
  7. include("_start_admin.php");
  8. break;
  9. default:
  10. header('Location: brakdostepu.php');
  11. }


właśnie mam unsera który jest adminG i mam który jest admin ustawiony typ konta i porównuje logowanie na 2 innych kontach i też skoro sprawdza że jest adminG to po klinięciu powrót z brakdostępu ma panel administracyjny dla tego jestem z tego GŁUUPI
nospor
poprostu pokaz mi wynik VAR_DUMP gdy logujesz sie na usera adminG. Czego nie rozumiesz??
mrk9109
string(6) "adminG" jak kliknę powrót i jestem już w panelu nic więcej
  1. $zapytanieA = $polaczenie->query("SELECT typ FROM uzytkownicy WHERE login = '". $_SESSION['login']."';");
  2.  
  3. while($dbA = $zapytanieA -> fetch_assoc() ) {
  4.  
  5. $login = $_SESSION['login'];
  6. $typ=$dbA['typ'];
  7. var_dump($typ);
  8. exit;
  9.  
  10. if ($typ == 'admin') // Sprawdzanie czy uzytkownik to admin
  11. {
  12. include("_start_admin.php");
  13. }
  14. elseif ($typ == 'adminG') // Sprawdzanie czy uzytkownik to admin glowny
  15. {
  16. include("_start_admin.php");
  17. }
  18. else
  19. {
  20. header('Location: brakdostepu.php');
  21. }
  22. }
nospor
Niemozliwe. Pewnie cos tam ci sie login krzaczy po drodze lub masz jakies response. Kod co pokazales powinien dzialac. Jak nie dziala to masz cos w miedzyczasie - nie raz tak bylo na forum i nie, nie mowie tylko o tobie
mrk9109
http://wklej.org/id/3378845/
a to start co wczytuje
http://wklej.org/id/3378846/

to jak odszukać co to psuję ? :< dziwne bardzo że uprawnienia nadaje ... dlaczego on mi robi te przekierowywania
viking
if (in_array($typ, ['admin', 'adminG'])){...}

$pa = $_GET['pa'] ?? null;
nospor
Dobra, inaczej... zamien swoj kod na taki

  1. $zapytanieA = $polaczenie->query("SELECT typ FROM uzytkownicy WHERE login = '". $_SESSION['login']."';");
  2.  
  3. while($dbA = $zapytanieA -> fetch_assoc() ) {
  4.  
  5. $login = $_SESSION['login'];
  6. $typ=$dbA['typ'];
  7.  
  8. if ($typ == 'admin') // Sprawdzanie czy uzytkownik to admin
  9. {
  10. include("_start_admin.php");
  11. }
  12. elseif ($typ == 'adminG') // Sprawdzanie czy uzytkownik to admin glowny
  13. {
  14. include("_start_admin.php");
  15. }
  16. else
  17. {
  18. echo 'Brak dostepu dla ' . $_SESSION['login'] . ' z typem ' . $typ;exit;
  19. header('Location: brakdostepu.php');
  20. }
  21. }
mrk9109
Cytat(viking @ 5.03.2018, 14:02:30 ) *
if (in_array($typ, ['admin', 'adminG'])){...}

$pa = $_GET['pa'] questionmark.gif null;


użyłem tego dalej coś psuje i szukam wszędzie nie wiem co jest grane tzn twój kod dla adminG daje uprawnienia ale przekierowuje do brakdostepu
nospor
poniewaz $typ nie zawiera adminG... ile razy mozna to pisac...
Popraw kod na ten co podalem to wkoncu sie dowiemy co tam naprawde jest gdy przekierowuje
mrk9109
nospor

zmieniłem dalej ten sam efekt uprawnienia są przekierowywanie te same i komunikat się nie wyświetla
nospor
Jakbys zmienil to bys nie mial przekierowania bo dalem EXIT na koncu.... wiec cos krecisz

Chyba ze jakims cudem naprawde zmieniles na to co ci podalem i jesli tak to wniosek jest taki ze przekierowanie masz w zupelnie innym miejscu
mrk9109
znalazłem przyczyną miałeś racje z tym innym plikiem .... i znalazłem to fartem ... poplątane było w index co wczytuje logowanie dopiero potem admin.php

Dziękuje za uwagę i przepraszam za kłopot

i teraz dopiero działa ten kod co wyżej pisaliśmy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.