![]() |
![]() |
--poczatkujacy-- |
![]()
Post
#1
|
Goście ![]() |
Mam zrobić prosty moduł dostępu skryptów, niestety mam parę problemów ale może najpierw kod :
users.php <=tutaj przechowuje login i hasła uzytkownikow. CODE <?php $uzytkownicy = array(1 => array('login' => 'admin', 'haslo' => 'admin'), array('login' => 'janek', 'haslo' => 'janek'), array('login' => 'magda', 'haslo' => 'magda') ); function czyIstnieje($login, $haslo) { global $uzytkownicy; foreach($uzytkownicy as $id => $dane) { if($dane['login'] == $login && $dane['haslo'] == $haslo) { // O, jest ktos taki - zwroc jego ID return $id; } } // Jeżeli doszedłeś a tutaj, to takiego użytkownika nie ma return false; } session_start(); if(!isset($_SESSION['uzytkownik'])) { $_SESSION['uzytkownik'] = 0; } if($_SESSION['uzytkownik'] > 0) { // Ktos jest zalogowany echo 'Witaj, '.$uzytkownicy[$_SESSION['uzytkownik']]['login'].' na naszej stronie!'; } else { // Niezalogowany if($_SERVER['REQUEST_METHOD'] == 'POST') { if(($id = czyIstnieje($_POST['login'], $_POST['haslo'])) !== false) { $_SESSION['uzytkownik'] = $id; echo 'Dziekujemy, zostales zalogowany! <a href="index.php">Dalej</a>'; } else { echo 'Podales nieprawidlowe dane, zegnaj! <a href="index.php">Dalej</a>'; } } else { } } ?> perms.php <=prawa grup do skryptow CODE <?php global $PERM; $PERM['skrypt1.php'] = 'admin'; $PERM['skrypt2.php'] = 'user'; $PERM['skrypt3.php'] = 'user'; ?> grupy : CODE <?php $grupy = array(1 => array('login' => 'admin', 'grupa' => 'admin'), array('login' => 'janek', 'grupa' => 'user'), array('login' => 'magda', 'grupa' => 'user') ); ?> plik auth.php ktory ma byc dołączany na początku skryptu. W tym pliku sprawdzane jest czy uzytkownik ma dostep do pliku. CODE <? session_start(); include 'users.php'; include 'groups.php'; include 'perms.php'; $file = basename($_SERVER[PHP_SELF]); global $grupy; global $GrupaT; foreach($grupy as $grupa => $da) { if( $uzytkownicy[$_SESSION['uzytkownik']]['login'] == $da['login'] ) { $GrupaT = $da['grupa']; return $GrupaT; } } function spr($grupa, $plik) { if($PERM[$plik]==$grupa) { return; } else{ echo"Nie masz dostepu do tego pliku"; } } spr($GrupaT,$file); ?> Na razie nie jest to kompletna autoryzacja, ale i ona nie działa. Dostep do skryptu skrypt1.php powinien miec dostep tylko admin wiec sprawdzam czy przypisana grupa do pliku skrypt1.php zgadza sie z grupą do jakiej nalezy admin jesli tak to return i funkcja się przerywa i admin widzi skrypt jesli zalogowany jest ktos inny kto chcial otworzyc skrypt1.php powinien wyswietlic sie komunikat "Nie masz dostepu do tego pliku". Niestety obojetnie na ktore z 3 kont sie zaloguje i otworze skrypt1.php to skrypt i tak sie wykonuje. Jakis podpowiedzi, rady ? ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:10 |