Advertisement
Guest User

Untitled

a guest
Apr 21st, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. <div id="logowanie">
  2. <?php
  3. session_start();
  4.  
  5. require 'header.php'; // Dołącz początkowy kod HTML
  6. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  7. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  8.  
  9.  
  10.  
  11. // zmienne odebrane z formularza
  12. if(isset($_POST['send'])){
  13. $login = $_POST['login'];
  14. $pass = $_POST['pass'];
  15. }
  16.  
  17. if ((isset($_POST['send'])) && ($_POST['send'] == 1)) {
  18. // Sprawdź, czy wszystkie pola zostały uzupełnione
  19. if (!$login or empty($login)) {
  20. die ('<p class="error">Wypełnij pole z loginem!</p>');
  21. }
  22.  
  23. if (!$pass or empty($pass)) {
  24. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  25. }
  26.  
  27. $pass = user::passSalter($pass); // Posól i zahashuj hasło
  28.  
  29. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  30. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM uzytkownicy WHERE login = '$login' AND haslo = '$pass'"));
  31.  
  32. if ($userExists[0] == 0) {
  33. // Użytkownik nie istnieje w bazie
  34. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  35. }
  36.  
  37. else {
  38. // Użytkownik istnieje
  39. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  40.  
  41. // Przypisz pobrane dane do sesji
  42. $_SESSION['login'] = $login;
  43. $_SESSION['pass'] = $pass;
  44.  
  45. echo '<p class="success">Zostałeś zalogowany.</p>';
  46. ?>
  47. <form action="index.php"> <input type="submit" value="Strona główna" /> </form>
  48. <?php
  49.  
  50. }
  51. }
  52.  
  53. else {
  54. /**
  55. * FORMULARZ LOGOWANIA
  56. */
  57. ?>
  58.  
  59. <form method="post" action="">
  60. <label for="llogin">Login:</label>
  61. <input type="text" name="login" maxlength="32" id="login" />
  62.  
  63. <label for="ppass">Hasło:</label>
  64. <input type="password" name="pass" maxlength="32" id="pass" /><br />
  65. <br>
  66.  
  67. <input type="hidden" name="send" value="1" />
  68. <input type="submit" value="Zaloguj" />
  69. </form>
  70. <form action="index.php"> <input type="submit" value="Strona główna" /> </form>
  71.  
  72. <?php
  73. }
  74.  
  75. require 'footer.php'; // Dołącz końcowy kod HTML
  76. ?>
  77. </div>
  78.  
  79. /////////////////////////////
  80.  
  81.  
  82. user.class.php
  83.  
  84.  
  85.  
  86. <?php
  87.  
  88. class user {
  89.  
  90. public static $user = array();
  91. //public static $nazwa = array();
  92.  
  93. /**
  94. * Zwraca tablicę ze wszystkimi danymi o użytkowniku.
  95. * Indeksy tablicy odpowiadają nazwom pól w bazie danych (login, pass etc...)
  96. * @param string $login
  97. * @param string $pass
  98. * @return array
  99. */
  100. public function getData ($login, $pass) {
  101. if ($login == '') $login = $_SESSION['login'];
  102. if ($pass == '') $pass = $_SESSION['pass'];
  103.  
  104. self::$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$pass' LIMIT 1;"));
  105. return self::$user;
  106. }
  107.  
  108. public function getPermissions ($nr) {
  109. $upraw = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE uprawnienia= '$nr' LIMIT 1;"));
  110. return $upraw;
  111. }
  112.  
  113. /**
  114. * Zwraca tablicę ze wszystkimi danymi o użytkowniku, tak jak powyższa metoda klasy,
  115. * ale rozpoznaje użytkownika nie po podaniu loginu i hasła tylko po podaniu ID.
  116. * Używana np. do wyświetlania strony profilu.
  117. * @param int $id
  118. * @return array
  119. */
  120. public function getDataById ($id) {
  121. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE id='$id' LIMIT 1;"));
  122. return $user;
  123. }
  124. /**
  125. * Jeśli użytkownik jest zalogowany - zwraca true, w przeciwnym wypadku - false
  126. * @return bool
  127. */
  128. public function isLogged () {
  129. if (empty($_SESSION['login']) || empty($_SESSION['pass'])) {
  130. return false;
  131. }
  132. else {
  133. return true;
  134. }
  135. }
  136.  
  137. /**
  138. * "Soli" hasło przed jego zahashowaniem funkcją md5()
  139. * @param string $pass
  140. * @return string
  141. */
  142. public function passSalter ($pass) {
  143. $pass = '$@@#$#@$'.$pass.'q2#$3$%##@';
  144. return md5($pass);
  145. }
  146.  
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement