Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Konto Administrator
maly_pirat
post 19.07.2008, 08:48:13
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Cześć.
W jaki sposób mogę zrobić konto Administratora, i dawać innym osobom te konto?
Chodzi mi oto, że jak utworze np. admin panel w folderze /admin/ to żeby tylko administratorzy mieli prawo wejść tam.
Nie zwykli użytkownicy. Jeśli to ma w czymś pomóc używam takiego skryptu rejestracja+logowanie.
click
Go to the top of the page
+Quote Post
Cysiaczek
post 19.07.2008, 08:58:27
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Powiedz mi, czy się różni konto użytkownika od konta admina?
Jeśli masz już system logowania z obsługą kont, to wystarczy dorobić do niego dodatkowe pole określające status użytkownika (user/admin/moderator) i tylko to sprawdzać. Nie pytaj tylko jak zrobić taki system kont, bo w internecie (na tym forum też) jest tego tyle, że wykazując minimum inicjatywy, napiszesz sobie, albo wynajdziesz gotowca. smile.gif

W tym skrypcie co pokazałeś dodaj pole o którym wspomniałem i wystarczy. Sprawdzaj tylko przy logowaniu, czy oprócz tego, że dane się zgadzają, to user ma flagę admina. Jeśli ma, pokaz mu zawartość tego, co ukrywasz w katalogu /admin/.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
maly_pirat
post 20.07.2008, 09:42:31
Post #3





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 13.06.2007

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


Szukałem tutaj na forum w działach Początkujący, PHP, Gotowe rozwiązania, ale niczego się nie doszukałem.
Zostałem 'naprowadzony' przez pewnego użytkownika jak wykonać owe uprawnienie.

Mam utworzyć kolumne user_rang z domyślną wartością 0.
0 - zwykły użytkownik , 1 - Administrator

Każdy użytkownik zarejestrowany będzie miał wartość 0 (nic nie trzeba zmieniać w formularzu rejestracyjnym).
I na stronie, której użytkownik nie może wejść (panel admina, 0) nie będzie miał dostępu.
Tylko użytkownicy co mają "1"

--- Tak mi On to opisał.

Czyli całość jak ma wyglądać?

a) Zapytanie SQL:

ALTER TABLE users ADD 'user_rang' NOT NULL default '0';

Mniej więcej pewnie tak będzie to wyglądać, ale pewnie coś źle jest tam napisane.
Proszę o korektę.

cool.gif Sessia Administratora.

W pliku index.php (widoczny dla każdego) mam już rozpoczętą sesje:
Kod
session_start();
session_register("zalogowany");

Wystarczy że dodam,
session_admin("administrator");

i teraz mam jeszcze,
Kod
if($_SESSION["zalogowany"]!=1){
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
        if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
            echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
            $_SESSION["zalogowany"]=1;
            }


i teraz tutaj chciałbym aby był odnośnik do panelu Administratora, widoczny tylko dla Administratorów
Gdzieś musze tutaj zapewne wpisać kod: $_SESSION["administrator"]=1; ?

c) Tworzenie plików do sprawdzania czy to Administrator czy też Użytkownik

- Stworze plik: sprawdz2.php (bo sprawdz.php jest dla zwykłych użytkowników), i tam umieszcze kod:
  1. <?php
  2. ?>
  3.  
  4. <body>
  5. <?php
  6. if($_SESSION["administrator"]==0){echo " Sorry nie masz uprawnien admina</body></html>;"; exit();}
  7. ?>
  8. <a href="index.php">Powrót</a>


I w pliku admin/index.php umieszcze kod:
  1. <?php 
  2. require("sprawdz2.php"); 
  3. ?>


I będę miał autoryzacje?



Proszę o korektę błędów. Jestem początkującym, starałem się to jak mogłem wyobrazić tongue.gif
Aha, i uprawnienie administratora będę musiał przez phpmyadmina wykonywać? żeby np.

Użytkownik z ID: #1 miał administrator=1 ?

Odświeżam.

Utworzyłem tabele
  1. <?php
  2. CREATE TABLE `users` (
  3. `user_id` INT NOT NULL AUTO_INCREMENT ,
  4. `user_rang` INT NOT NULL DEFAULT '0',
  5. `user_login` VARCHAR( 30 ),
  6. `user_haslo` VARCHAR( 30 ),
  7. `user_gg` VARCHAR( 30 ),
  8. `user_skad` VARCHAR( 30 ),
  9. `user_klan` VARCHAR( 30 ),
  10. `user_www` VARCHAR( 30 ),
  11. PRIMARY KEY ( `user_id` )
  12. );
  13. ?>


Jak widać dodałem nowe pola.
Tam w index.php też wszystko wykonałem odnośnie dodawania pól do bazy danych.
Formularz oraz HTMLSPECIALCHARS - wszystko ok. Dodaje dane do bazy podczas rejestracji.

Teraz muszę,

Cytat
Aby rozpoznać uprawnienia przy logowaniu musisz dodać najprościej za pomocą IF instrukcję pobierającą z bazy dla danego loginu wartość z pola 'user_rang' i decydować jaką sesje ma zaresjestrować. To jest w pliku głównym serwisu, w ramach <body>, 3 instrukcja IF, w niej musisz dodać jeszcze jedną instrukcję:
  1. <?php
  2. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  3. ...
  4. }
  5. ?>


W jaki sposób mam to wykonać?
Go to the top of the page
+Quote Post
TroYan
post 20.07.2008, 11:06:57
Post #4





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 19.04.2004
Skąd: Bytom Odrz.

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


ej strasznie rozwlekłeś ten problem. ;x

jeśli masz panel admina i chcesz żeby tylko admini tam mieli dostęp to na początku przy otwieraniu skrypt powinien sprawdzać kto próbuje wejść:

  1. <?php
  2.  
  3. $ranga=$_SESSION["user_rang"]; // dla admina przyjmuje wartość 1.
  4.  
  5. if ($ranga == "1") { 
  6.  
  7. //Treść panelu admina
  8.  
  9. }
  10.  
  11. else {
  12.  
  13. echo('Brak uprawnień');
  14.  
  15. }
  16. ?>


dobrze rozumuję ? tylko pamiętaj że przy logowaniu musisz utworzyć sesje "user_rang". Skrypt logujący musi pobierać tą daną z bazy:P

Ten post edytował TroYan 20.07.2008, 11:09:27


--------------------
zmoderowano - waga i rozmiar
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: 28.05.2025 - 07:43