![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Witam mam mały problem z logowanie do PA jako admin o to czesc kodu
Kod if (isset($_POST['akcja'])==1){ if (isset($_POST['login']) and isset($_POST['haslo']) ) { $login = htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['login']))); $haslo = htmlspecialchars(strip_tags(mysql_real_escape_string(sha1($_POST['haslo'])))); if ($login!="" and $haslo!="") { $zapytanie = "SELECT login, haslo FROM admin_log WHERE login = '$login' and haslo = '$haslo' "; $temp=mysql_query($zapytanie) or die ('Nie mozna wykonanac.Przepraszamy'); $ile=mysql_num_rows($temp); $temp=mysql_fetch_array($temp); $id=$temp['login']; if ($ile!=0) { $_SESSION['login']=$login; header("Location: panel.php"); exit; } i tu sprawdzanie sesji Kod session_start(); ob_start(); require_once 'conn.php'; if(isset($_SESSION['login'])== 1){ header("Location: index.php"); }else{ Problem jest taki ze wszystko sie loguje ładnie ale jesli uzytkownik zaloguje sie na froncie jako zwykly user i przejdzie do admina to ma cały panel i nie wiem jak okreslic ze tylko dostep jesli login bedzie admin (admin trzymam w osobnej tabeli) bardzo prosze o pomoc -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 15 Dołączył: 13.09.2003 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Dodaj sobie do sesji jeszcze jedna zmienna, np. admin, zwykli uzytkownicy beda mieli ja ustawiona na false, a admini true. Pozniej w panelu sprawdz czy $_SESSION['admin'] == true
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 229 Pomógł: 34 Dołączył: 7.12.2008 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Błąd polega na tym, że nie masz żadnego rozgraniczenia na zwykłego usera i admina. W swoim skrypcie sprawdzasz tylko czy istnieje dany login i czy hasło się zgadza. Jeśli tak, to ustawiasz flagę na "zalogowany'. Później w panelu sprawdzasz tylko czy ktoś jest zalogowany i wpuszczasz go dalej. Wiec najlepiej do tabeli gdzie masz użytkowników dodaj pole 'uprawnienia' (albo cos podobnego) gdzie domyślnie jest 0 (zwykły user), a administratorom nadajesz np 1. No i przy zalogowaniu sprawdzasz poza czy jest ustawiona odpowiednia zmienna na 1 (admin) i wpuszczasz go dalej. Jeśli nie to komunikat "brak praw dostępu".
W sposób opisany wyżej możesz zrobić również prawa dla moderatora itp. Pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 68 Pomógł: 9 Dołączył: 12.04.2009 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
Jeżeli w tej osoblej tabeli masz tylko loginy adminów to zrób tak w panelu admina
-------------------- <?php
while($earth){ drop_bomb(); } ?> |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
Jeśli już to mysql_num_rows ... a najlepiej to SELECT COUNT(*) FROM , i mysql_result" title="Zobacz w manualu PHP" target="_manual Ten post edytował Spawnm 1.05.2009, 15:46:15 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 68 Pomógł: 9 Dołączył: 12.04.2009 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
To też się sprawdza
![]() Najlepiej to dodaj kolumnę level albo coś takiego i daj w niej 0 - user 1 - admin potem przy logowaniu sprawdzasz czy jest 1 czy 0 (admin czy user) i przypisujesz do $_SESSION['level'] i w panelu admina dajesz tylko
to chyba najlepsze rozwiązanie... -------------------- <?php
while($earth){ drop_bomb(); } ?> |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
lepsze dał zelu
![]() wszelkie dane w db i spr przy wejściu do panelu |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
OK postanowiłem zrobić to co zelu powiedział i fajnie sie sprawuje
![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:15 |