Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Tworzenie systemu podzielonego na zwykłych użykowników i administratora.
Forum PHP.pl > Forum > Przedszkole
Gabrielx
1.Jakie rozwiązanie proponujecie? Jak to należy napisać? Możecie pokazać coś z gotowców(lub jakiś artykuł)?
2. Pytanie z innej beczki. Jak napisać system w którym każda podstrona(MySQL) była generowana jako np. index.php?vsk391(należy użyć GET/POST?)?
erix
1: szukaj pod hasłem ACL. Tego jest w chorobę, wystarczy poszukać.
2: Zobacz, co ma tablica $_SERVER po wywołaniu takiego skryptu.

Niech tylko się ktoś z gotowcem wtryni... tongue.gif
Gabrielx
Cytat(erix @ 1.07.2009, 17:42:41 ) *
1: szukaj pod hasłem ACL. Tego jest w chorobę, wystarczy poszukać.
2: Zobacz, co ma tablica $_SERVER po wywołaniu takiego skryptu.

Niech tylko się ktoś z gotowcem wtryni... tongue.gif


1. A są jakieś inne sposoby? Bo korzystając z ACL chyba trzeba skorzystać z biblioteki Zend. Czy ten sposób jest najbardziej optymalny/wydajny/przyszłościowy?
2. Za bardzo nie mogę znaleźć co i jak. Czy możecie mi podsunąć sposób na wykorzystanie tablicy $_SERVER? Gdzieś czytałem że można to zrobić za pomocą tablicy $_GET. Które rozwiązanie byłoby lepsze?

Ps. Przepraszam za moje dociekliwe pytania ale ucząc się PHP chcę mieć wszystko poukładane co i jak. Mam nadzieję że mnie zrozumiecie. smile.gif
Andaramuxo
Zmienną GET możesz to zrobić poprzez funkcję switch, np. masz adres strona.pl?id=1 i dajesz w switchu, że jeżeli id jest równe 1 includujesz coś tam, jeżeli 2 to coś tam. Sam to robiłem kilka dni temu, nie wiem czy ten sposób jest dobry, ale działa. smile.gif
erix
Cytat
1. A są jakieś inne sposoby? Bo korzystając z ACL chyba trzeba skorzystać z biblioteki Zend. Czy ten sposób jest najbardziej optymalny/wydajny/przyszłościowy?

Nie tylko Zend... Implementację możesz napisać jedną funkcją, która wczyta odpowiednie dane z np. bazy i wszystko zwróci. Szukaj dalej ;]

A jeśli chodzi o przyszłość, to tak - coraz więcej aplikacji jest pisanych w oparciu o frameworki.

Cytat
2. Za bardzo nie mogę znaleźć co i jak. Czy możecie mi podsunąć sposób na wykorzystanie tablicy $_SERVER? Gdzieś czytałem że można to zrobić za pomocą tablicy $_GET. Które rozwiązanie byłoby lepsze?

To już zależy. Jeśli chcesz mieć w przyszłości kolejny parametr, to przy $_SERVER musiałbyś odpowiednio wszystko obrabiać, podczas gdy w $_GET odwołujesz się bezpośrednio po nazwie.
MateuszS
Tabela w bazie 'typ_konta' - 0 to normal user 1 to admin mozna robic nieskonczenie wiele poziomow dostepu, potem w skrypcie tylko porownujesz

  1. <?php
  2. if($wynik['typ_konta']==1)
  3. {
  4. //panel admina
  5. }
  6. if($wynik['typ_konta']==0)
  7. {
  8. //panel usera
  9. }
  10. ?>
erix
No tak, ale wówczas nie masz możliwości elastycznej regulacji uprawnień.
MateuszS
Ale mozna porobic odpowiednią tabele w ktorej by te uprawnienia byly. I ustawiac je w panelu admina.
marian2299
Prosty przykład, oczywiście sesja na początku itpe
  1. <?
  2. define('DB_HOST','mysql7.000webhost.com');
  3. define('DB_USER','a2607949_bellum'); //wpisz nazwę użytkownika bazy danych
  4. define('DB_PASS','UWAŻAJ BO DOSTANIESZ haha.gif'); //wpisz hasło dla tego użytkownika
  5. define('DB_DB','a2607949_bellum');
  6.  
  7. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  8. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  9.  
  10. mysql_select_db(DB_DB,$connect)
  11. ?>
  12. <?
  13. $zapytanie = "SELECT `admin` FROM `users`";
  14. $czytoadmin = mysql_query($zapytanie);
  15. ?>
  16. <?php if($czytoadmin == 1): ?>
  17. STREFA ADMINA
  18. <?php else:?>
  19. <p> Nie masz tu czego szukać </p>
  20. <?php endif; ?>

Dzięki Andaramuxo, za znalezienie błędu.
Andaramuxo
Cytat(marian2299 @ 3.07.2009, 01:07:24 ) *
Prosty przykład, oczywiście sesja na początku itpe
  1. <?php
  2. define('DB_HOST','mysql7.000webhost.com');
  3. define('DB_USER','a2607949_bellum'); //wpisz nazwę użytkownika bazy danych
  4. define('DB_PASS','UWAŻAJ BO DOSTANIESZ '); //wpisz hasło dla tego użytkownika
  5. define('DB_DB','a2607949_bellum');
  6.  
  7. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  8. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  9.  
  10. mysql_select_db(DB_DB,$connect)
  11. ?>
  12. $zapytanie = \"SELECT `admin` FROM `users`\";
  13. $czytoadmin = mysql_query($zapytanie);
  14. ?>
  15.  
  16. STREFA ADMINA
  17.  
  18. Nie masz tu czego szukać

W roli ścisłości, chyba
Kod
<?php if($czytoadmin == 1): ?>
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.