Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Strona tylko dla admina
edwarpan
post 9.05.2010, 14:54:27
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 28.04.2010

Ostrzeżenie: (0%)
-----


Witam, mam rejestrację php+mysql, wszystkie konta mają takie same uprawnienia, jak zrobić aby do kilku stron miał dostęp tylko login 'admin' ?
Go to the top of the page
+Quote Post
kto$
post 9.05.2010, 14:58:43
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 9.05.2010

Ostrzeżenie: (0%)
-----


wg mnie powinno się to zawierac w klauzuli

if(isset($_SESSION['admin']))
{
wyswietl
}

Ten post edytował kto$ 9.05.2010, 14:59:07
Go to the top of the page
+Quote Post
kapuch
post 9.05.2010, 14:59:08
Post #3





Grupa: Zarejestrowani
Postów: 389
Pomógł: 69
Dołączył: 26.04.2010
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(edwarpan @ 9.05.2010, 15:54:27 ) *
Witam, mam rejestrację php+mysql, wszystkie konta mają takie same uprawnienia, jak zrobić aby do kilku stron miał dostęp tylko login 'admin' ?

Np
  1. <?
  2. if ($_SESSION['login'] == 'admin')
  3. {
  4. strona
  5. }
  6. else
  7. {
  8. echo 'tylko dla admina';
  9. }
  10. ?>

Obejmujesz ta instrukcja cala strone, ktora chcesz tak zablokowac.

PS. Na wszelki wypadek mozna zrobic to tak:
  1. $login2=strtolower($_SESSION['login']);
  2. if ($login2 == "admin")
  3. { strona }
  4. else
  5. { zablokowane }

Zabezpieczy to przed roznica w wielkosci liter w loginie.

EDIT:
Kto$ mnie wyprzedzil smile.gif Ah ten moj refleks winksmiley.jpg

Ten post edytował kapuch 9.05.2010, 15:07:16


--------------------
Nie chce "Pomógł", aktualna ilość (69) w pełni mnie satysfakcjonuje :)
Go to the top of the page
+Quote Post
habazy
post 19.11.2020, 17:19:20
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.11.2020

Ostrzeżenie: (0%)
-----


hej, zaczynam zabawę z php i potrzebuję pomocy odnośnie tego tematu posta.
chciałbym tak jak kolega aby na stronę panel_admin.php zalogował się tylko administrator o loginie np. kolo,
niestety jak zwykły user wpisz www.....pl/panel_admin.php to też widzi zawartość tej strony.

tak mnie więcej wygląda zawartość strony panel_admin.php :
  1. <?php
  2.  
  3. if (!isset($_SESSION['zalogowany']))
  4. {
  5. header('Location: logowanie_admin.php');
  6. exit();
  7. }
  8. ?>


  1. </head>
  2.  
  3. </body>
  4. </htm>


proszę o info w które miejsce wstawić któryś z kodów poprzednich postów i jak ewentualnie miałbym je zmienić
thx
Go to the top of the page
+Quote Post
dublinka
post 19.11.2020, 17:30:42
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Ten kod oznacza mowiac kolokwialnie czy sesja NIE istnieje. Musisz gdzies ja zainicjowac gdzies podczas logowania. Tu jest jesli nie istnieje nastepuje przekierowanie na adres innego pliku. Wszystko ponizej tego warunku wyswietli sie jesli sesja bedzie istniala

Ten post edytował dublinka 19.11.2020, 17:31:24


--------------------
Go to the top of the page
+Quote Post
habazy
post 19.11.2020, 17:40:27
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.11.2020

Ostrzeżenie: (0%)
-----


Tak, sorki tutaj mam skrypt logowania, jak mógłbym to zainicjować ?
  1. <?php
  2.  
  3. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
  4. {
  5. header('Location: panel_administratora.php');
  6. exit();
  7. }
  8.  
  9. require_once "connect.php";
  10.  
  11. $polaczenie = @new mysqli($host, $usery, $password, $nazwa);
  12.  
  13. if ($polaczenie->connect_errno!=0)
  14. {
  15. echo "Error: ".$polaczenie->connect_errno;
  16. }
  17. else
  18. {
  19. $login = $_POST['login'];
  20. $haslo = $_POST['haslo'];
  21.  
  22. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  23.  
  24. if ($rezultat = @$polaczenie->query(
  25. sprintf("SELECT * FROM admin WHERE login='%s'",
  26. mysqli_real_escape_string($polaczenie,$login))))
  27. {
  28. $ilu_userow = $rezultat->num_rows;
  29. if($ilu_userow>0)
  30. {
  31. $wiersz = $rezultat->fetch_assoc();
  32.  
  33. if (password_verify($haslo, $wiersz['pass']))
  34. {
  35. $_SESSION['zalogowany'] = true;
  36. $_SESSION['id'] = $wiersz['id'];
  37. $_SESSION['login'] = $wiersz['login'];
  38. $_SESSION['email'] = $wiersz['email'];
  39.  
  40. unset($_SESSION['blad']);
  41. $rezultat->free_result();
  42. header('Location: panel_admininistratora.php');
  43. }
  44. else
  45. {
  46. $_SESSION['blad'] = 'Nieprawidłowe dane';
  47. header('Location: log_admin.php');
  48. }
  49.  
  50. } else {
  51.  
  52. $_SESSION['blad'] = 'Nieprawidłowe dane';
  53. header('Location: log_admin.php');
  54.  
  55. }
  56.  
  57. }
  58.  
  59. $polaczenie->close();
  60. }
  61.  
  62. ?>


Ten post edytował habazy 19.11.2020, 17:41:02
Go to the top of the page
+Quote Post
viking
post 19.11.2020, 17:50:00
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


https://prophp.pl/advice/show/24/jak_zrobic...istratora%29%3F


--------------------
Go to the top of the page
+Quote Post
dublinka
post 19.11.2020, 18:36:56
Post #8





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

Ostrzeżenie: (0%)
-----


No to wszystko masz. Gdzie lezy problem. Napisalem Ci ze wszystko za tym warunkiem bedzie dla tych ktorzy zaloguja sie bo w tym pliku ustawiasz wlasnie te sesje 'zalogowany'.


--------------------
Go to the top of the page
+Quote Post
habazy
post 19.11.2020, 18:38:36
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.11.2020

Ostrzeżenie: (0%)
-----


thx viking,
ale mimo to, chciałbym zostać przy moim kodzie, żeby nie dublować roboty.
dałoby się te powyższe rozwiązania wcisnąć w mój kod?
Go to the top of the page
+Quote Post
viking
post 19.11.2020, 19:32:24
Post #10





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A dlaczego jak są nieustawione zmienne login i haslo przekierowujesz do panelu?


--------------------
Go to the top of the page
+Quote Post
habazy
post 19.11.2020, 19:49:01
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.11.2020

Ostrzeżenie: (0%)
-----


viking,
admin rejestruje się z innego formularza a user z innego, dlatego admina kieruję do panel_administratra.php a w skrypcie drugim usera do panel_user.php.
Go to the top of the page
+Quote Post
gino
post 19.11.2020, 22:55:41
Post #12





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


nie mnoży się bytów ponad potrzebę. Czy admin loguje się inaczej niż zwykły user? Też wpisuje hasło i nazwę użytkownika. Po co dwa formularze? A czy admin nie może mieć dostępu do strony gdzie przekierowujesz user-a? To Ty musisz rozeznać w kodzie, który jest który. Dlatego stosuje się odpowiednie wagi dla admina i userów ( pole w bazie danych) i jak sobie po zalogowaniu doczytasz status danego użytkownika, będziesz wiedział kto to jest. A dostęp do danej strony czy widoku realizuje się na wiele sposobów, zależnie od konstrukcji strony i czy dostęp przypisujesz w locie, czy zaczytasz z bazy to już Twoja decyzja. @viking podał Ci kod abyś zobaczył jak się to realizuje.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 02:06