Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Konto Administrator
Forum PHP.pl > Forum > Przedszkole
maly_pirat
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
Cysiaczek
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.
maly_pirat
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ć?
TroYan
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
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.