Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Panel admin
Lampek
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


Witam
Chce zrobić panel admin ale tak, żeby logowanie zarówno admina jak i użytkownika odbywało się z poziomu tej samej funkcji. Myślałem tak żeby przydzielić im prawa w bazie np 1=admin, 0=user. I chodzi mi teraz o to, żę tak nie bardzo wiem jak sie za to zabrać bo przydało by się żęby użytkownik miał automatycznie w bazie przydzielone 0, adminowi mogę sam nadać już uprawnienia z poziomu bazy.
Funkcja odpowiedzialna za logowanie.
  1. <?php
  2.  
  3.  
  4.  
  5. require_once('funkcje_all.php');
  6. $nazwa_uz = $_POST['nazwa_uz'];
  7. $haslo = $_POST['haslo'];
  8. ?>
  9.  
  10. <?php
  11. if ($nazwa_uz && $haslo) {
  12.  
  13. try {
  14. loguj($nazwa_uz, $haslo);
  15.  
  16. $_SESSION['prawid_uzyt'] = $nazwa_uz;
  17. }
  18. catch (Exception $e) {
  19.  
  20. tworz_naglowek_html('Problem:');
  21. menu_top();
  22. tworz_header();
  23. ?>
  24. <div id="content1">
  25. <?php
  26. tworz_menu();
  27. ?>
  28. </div>
  29. <div id="content2">
  30. <?php
  31. echo 'Zalogowanie niemozliwe.
  32. Nalezy byc zalogowanym aby ogladac te strone.';
  33. tworz_url('logowanie.php', 'Logowanie');
  34. ?>
  35. </div>
  36. <?php
  37. tworz_stopke();
  38. }
  39. }
  40.  
  41.  
  42. tworz_naglowek_html('Zalogowano');
  43. menu_top();
  44. tworz_header();
  45. ?>
  46. <div id="content1">
  47. <?php
  48. tworz_menu_zalog(); ?>
  49. </div>
  50.  
  51. <div id="content2">
  52. <?php
  53.  
  54.  
  55. sprawdz_prawid_uzyt();
  56.  
  57.  
  58. ?>
  59. </div>
  60. <?php
  61. tworz_stopke();
  62. ?>
  63.  


Ten post edytował Lampek 21.08.2011, 17:57:17
Go to the top of the page
+Quote Post
wojtek19115
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.07.2010

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


Robisz w bazie pole np: ranga, w pliku np admin.php dajesz ifa na początku sprawdzającego czy $user['ranga'] = 3 ( 1,2 zostawiamy na zaś dla moderatorów) jeżeli nie wywalasz go do index.php
Poza tym masz niezły bajzel w kodzie większy niż ja kiedy się uczyłem PHP i MySQL (IMG:style_emoticons/default/biggrin.gif)
A automatycze przydzielanie 0 w MySQl ustawiasz domyślną wartość.

Poniżej przykład z mojego 1 CMS'a
Kod
<?php
ob_start();
//**Pobieranie ustawień do BazyDanych MySQ**\\
require_once('../conf/config.php');
//**Przedłużanie lub startowanie sesji**\\
session_start();
//**pobieramy top strony**\\
require_once("./top.php");
//podłączenie dodatkowych plików
require_once('ochrona.php');

if ($uzytkownik['ranga'] == 1) echo "Witaj w panelu admina";
else header("Location: index.php");
?>

Witaj w Panelu admina

<?php
echo "<a href='$www/konto.php'>Panel Usera</a><br />";
echo " <a href='$www'>Strona główna</a>";
//**Pobieramy stopkę**\\
require_once("./dol.php");
//wyłączamy bufor
ob_end_flush();
?>


Ten post edytował wojtek19115 21.08.2011, 18:11:45
Go to the top of the page
+Quote Post
Lampek
post
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


No rozumiem o co ci chodzi, co do burdelu też sie zgadzam:P ale ja chciałem przerobić tą funkcje co zamieściłem:), a panel admina działał na zasadzie normalnego menu tylko z dodatkowymi opcjami.

Ten post edytował Lampek 21.08.2011, 19:06:46
Go to the top of the page
+Quote Post
Daiquiri
post
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




wojtek19115, proszę poprawnie stosować bbcode.

Albo czegoś nie rozumiem, albo chcesz modyfikować funkcję z pliku funkcje_all.php, a tego listingu nie mamy.
Go to the top of the page
+Quote Post
Lampek
post
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


funkcja_all.php jest zbiorem wszystkich funkcji typu funkcje_bazy.php, funkcje_uwierz.php itd chce zmodyfikować tak funkcje logowanie.php którą zamieściłem tak żeby sama rozpoznała ona czy zalogowana osoba to admin czy user. Myślałem zeby zrobić tak jak pisałem ranga 1 dla admina ranga 0 dla usera.
Go to the top of the page
+Quote Post
Daiquiri
post
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




No to w czym masz jeszcze problem? Nie mamy definicji funkcji, która jest odpowiedzialna za logowanie (a jak mniemam to ją chcesz modyfikować). Wykorzystaj jakieś pole ranga w bazie i na podstawie tego, za pomocą warunku ustalaj stosowne uprawnienia -> jeżeli szukasz najprostszego rozwiązania.

System uprawnień opisywał kiedyś również Zyxist - tutaj.
Go to the top of the page
+Quote Post
Lampek
post
Post #7





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


To jest funkcja loguj:
  1. function loguj($nazwa_uz, $haslo) {
  2.  
  3. $lacz = lacz_bd();
  4. $lacz -> query("SET NAMES 'utf8'");
  5.  
  6. $wynik = $lacz->query("select * from uzytkownik
  7. where nazwa_uz='".$nazwa_uz."'
  8. and haslo = sha1('".$haslo."')");
  9. if (!$wynik) {
  10. throw new Exception('Logowanie nie powiodło się.');
  11. }
  12.  
  13.  
  14.  
  15. if ($wynik->num_rows>0) {
  16. return true;
  17. } else {
  18. throw new Exception('Logowanie nie powiodło się.');
  19. }
  20. }
Go to the top of the page
+Quote Post
Daiquiri
post
Post #8





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Jeżeli chcesz to zrobić w wyżej opisany sposób, to dodaj w bazie pole ranga i uzupełnij je domyślnie np. 0. Wyłuskujesz stosowną daną z zapytania SELECT i na jej podstawie ustawiasz np. zmienną $_SESSION['ranga']. Jeżeli ranga w bazie = 0 to ustawiasz $_SESSION['ranga'] = 'user' w innym przypadku ='admin'.
Go to the top of the page
+Quote Post
Lampek
post
Post #9





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


No wiem o co chodzi, ale jestem naprawdę świeży w PHP i kurcze nie za bardzo wiem jak zmodyfikować ten kod :/

To co pomoże ktoś (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sada
post
Post #10





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Dodałeś już to nowe pole do bazy "range"?
Go to the top of the page
+Quote Post
Lampek
post
Post #11





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 7.01.2011

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


Tak
Go to the top of the page
+Quote Post
Daiquiri
post
Post #12





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




No to wyłuskaj stosowne dane (ranga) z $wynik i stwórz odpowiedni warunek, coś na kształt:
  1. if($ranga == '1'){
  2. $_SESSION['ranga'] = "admin";
  3. } else {
  4. $_SESSION['ranga'] = "user";
  5. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:57