<?php /******************************************************************************** ********/ /******************************************************************************** ********/ /* Skrypt logowania v1.1 *****************************************************************/ /* Autor: Paweł Kozubowski, Www: www.kozubowski.com, Gg: 3892931, Skype: kozvb552 ********/ /* E-mail: pawel@kozubowski.com **********************************************************/ /******************************************************************************** ********/ /* INSTRUKCJA UŻYTKOWANIA: */ /* Formularz logowania musi mieć dwa pola: pole INPUT z nazwą użytkownika musi mieć */ /* nazwę "username" (name="username"), */ /* oraz pole INPUT z hasłem musi mieć nazwę "password" (name="password"). */ /* Formularz logowania kierujesz na plik "login_script.php" (action="login_script.php"). */ /* W pliku "login_script.php" (ten plik) edytujesz wedle swoich potrzeb: */ /* Nazwę pliku na który użytkownik zostanie przekierowany po zalogowaniu się, */ /* oraz nazwy i hasła użytkowników. Co dokładnie zmienić jest opisane poniżej. */ /* Do każdego z plików które chcesz chronić hasłem na samej górze wpisujesz: */ /* <?php require("login_script.php"); ?> */ /* Każdy plik chroniony musi mieć rozszerzenie ".php". */ /* To wszystko, skrypt powinien być już poprawnie zainstalowany! :) */ /* W razie jakichkolwiek pytań skontaktuj się bezpośrednio ze mną. */ /* INFORMACJE DODATKOWE: */ /* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout" */ /* (czyli "login_script.php?logout") */ /* - Plik z tym skryptem ma nazwę "login_script.php" i jeśli zmieniasz jego nazwę zmień */ /* również wartość odpowiednio opisanej zmiennej poniżej, inaczej skrypt nie będzie */ /* działał prawidłowo */ /* - Jeśli używasz dwóch wersji (kopii) tego skryptu na jednej stronie (domenie) */ /* zmień wartość odpowiednio opisanej zmiennej poniżej, inaczej może wystąpić konflikt */ /* pomiędzy tymi dwoma wersjami skryptu */ /******************************************************************************** ********/ /* Skrypt na licencji GPL (General Public License) ***************************************/ /* Nie usuwaj tej informacji *************************************************************/ /* Jeśli wykonujesz w nim jakiekolwiek zmiany, poinformuj mnie o tym *********************/ /******************************************************************************** ********/ /******************************************************************************** ********/ $redirect = /* Podaj plik na jaki użytkownik ma zostać przekierowany po wpisaniu prawidłowych danych logowania */ "secured.php" ; /* Lista użytkowników i ich haseł */ /* Wpisuj w postaci: "UŻYTKOWNIK"=>"HASŁO", "UŻYTKOWNIK_2"=>"HASŁO_2", "UŻYTKOWNIK_3"=>"HASŁO_3" <- UWAGA: Ostatni wpis bez przecinka na końcu! */ "ucza"=>"vobis", "nowel"=>"nowel195", "demo3"=>"demo3pass" ); /* Zmień tą wartość tylko jeśli jest to druga kopia tego skryptu logowania w drugim pliku i służy ona do logowania w inne miejsce niż poprzedni */ $script_session = "login_script_session"; /* Nazwa TEGO pliku, wraz z rozszerzeniem ".php", zmień tylko jeśli byłeś zmuszony zmienić nazwę tego pliku */ $script_filename = "login_script.php"; /********************************************************************/ /**** ZMIAN PONIŻEJ TEJ LINI DOKONUJ TYLKO JEŚLI WIESZ CO ROBISZ ****/ /********************************************************************/ /* Funkcje */ function go($url) {/*b01*/ exit; }/*b01*/ function safe($variable) {/*b05*/ return $variable; }/*b05*/ $footer = "<br /><br /><hr>Logowanie v1.1, Paweł Kozubowski / <a href=\"http://www.kozubowski.com\" title=\"Kozubowski.com - Creative Designs & Ideas - More than Webcoding & Webdesign\">Kozubowski.com</a><br />"; /* Wylogowanie użytkownika jeśli w adresie widnieje ?logout */ /* Sprawdzenie konfiguracji */ if(preg_match("/^http:///i",$redirect)){print("<h1>BَD SKRYPTU</h1>Nie podawaj \"http://\" w adresie chronionego pliku".$footer);} /* Czynności do wykonania gdy user wszedł tutaj z formularza logowania */ {/*b02*/ /* Zabezpiecznenie wartości POST przed atakiem XSS */ $_POST['username'] = safe($_POST['username']); $_POST['password'] = safe($_POST['password']); /* Sprawdzenie poprawności przesłanych danych logowania */ if($_POST['username']=='' || $_POST['password']==''){print("<h1>Podaj nazwę użytkownika oraz hasło </h1> <a href='login.php'>Sproboj jeszcze raz</a>".$footer);exit;} if(!(array_key_exists($_POST['username'],$users))){print("<h1>Podana nazwa użytkownika nie istnieje</h1>".$footer);exit;} if($users[$_POST['username']]!=$_POST['password']){print("<h1>Nieprawidłowe hasło</h1>".$footer);exit;} /* Utworzenie sesji zawierającej poprawne dane logowania */ $_SESSION[$script_session] = $_POST['username']."|".$_POST['password']; /* Przekierowanie do chronionego pliku */ go($redirect); exit; }/*b02*/ /* Czynności do wykonania gdy user require'ował ten plik w innym lub wbił adres tego pliku a adresie url przeglądarki */ else {/*b03*/ /* Jeśli user wbił adres tego pliku w przeglądarce, najpierw przekierowujemy go do pliku chronionego */ {/*b06*/ go($redirect); exit; }/*b06*/ /* Sprawdzenie istnienia sesji */ /* Sprawdzenie poprawności danych zawartych w sesji */ /* oraz zabezpieczenie danych sesji przed atakiem XSS */ $session_data[0] = safe($session_data[0]); $session_data[1] = safe($session_data[1]); if($session_data[0]=='' || $session_data[1]==''){print("<h1>DOSTĘP ZABRONIONY</h1>Nieprawidłowe dane w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;} if(!(array_key_exists($session_data[0],$users))){print("<h1>DOSTĘP ZABRONIONY</h1>Nieistniejąca nazwa użytkownika w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;} if($users[$_POST['username']]!=$_POST['password']){print("<h1>DOSTĘP ZABRONIONY</h1>Nieprawidłowe hasło w sesji, wróć do formularza logowania i zaloguj się ponownie".$footer);exit;} }/*b03*/ ?>
w tym skrypcie zawarte jest tez opcja wylogowania w dokumentacji pisze /* - Aby wylogować użytkownika, skieruj go na adres tego pliku z dopiskiem "?logout" */
/* (czyli "login_script.php?logout") */
/* - Plik z tym skryptem ma nazwę "login_script.php" i je¶li zmieniasz jego nazwę zmień *
a wiec ja pisze linka na wylogowanie w postaci <a href='login_script.php?logout'>Wyloguj </a>
lecz kiedy go naciskam przechodze na pusta strone a powinno pisac zostales wylogowany oczywiscie nie niszczy sesii