Advertisement
Guest User

Untitled

a guest
Nov 27th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. <?php
  2. include("config.php");
  3. session_start();
  4.  
  5. //Varijabla error za spremanje greske pilikom logina
  6. $error = "";
  7.  
  8. //Ako je logovan tj. ako sesija jos uvijek postoji preusmjeri na panel
  9. if (isset($_SESSION['login_user'])) {
  10. header("location:admin.php");
  11. }
  12.  
  13. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  14. //Spremi unesene podatke iz polja
  15. $entered_username = mysqli_real_escape_string($db, $_POST['username']);
  16. $entered_password = mysqli_real_escape_string($db, $_POST['password']);
  17.  
  18. //Provjeri bazu
  19. if (!$db) {
  20. printf("Konekcija s bazom ti je na postelji na UKCu odjel: %s\n", mysqli_connect_error());
  21. exit();
  22. } else {
  23. //Prepared statement da povuce podatke iz baze za uneseni username
  24. $stmt = $db->prepare("SELECT * FROM users WHERE username = ?");
  25. $stmt->bind_param('s', $entered_username);
  26. $stmt->execute();
  27. //Spremi podatke
  28. $stmt->bind_result($user_id, $username, $password, $firstname, $lastname, $role, $imagelink);
  29. $stmt->store_result();
  30. }
  31.  
  32. //Provjeri da li postoji korisnik tj. samo jedan red kao rezultat
  33. if ($stmt->num_rows == 1) {
  34. //Fetchuj podatke
  35. if ($stmt->fetch()) {
  36. //Provjeri da li se uneseni pw poklapa sa Hashom iz baze tj. provjeri da li je pw tacan
  37. if (password_verify($entered_password, $password)) {
  38. //Provjera da li treba Rehash (ukoliko postoji noviji hash algoritam)
  39. if (password_needs_rehash($password, PASSWORD_DEFAULT)) {
  40. //Ako postoji noviji Hash po php password default algoritmu update-uj ga u bazi
  41. $newHash = password_hash($entered_password, PASSWORD_DEFAULT);
  42. $stmt_reahash = $db->prepare("INSERT INTO users (password) VALUES ('?') WHERE username = '?'");
  43. $stmt_reahash->bind_param('ss', $newHash, $entered_username);
  44. $stmt_reahash->execute();
  45. $stmt_reahash->close();
  46. }
  47. //Nakon provjere ili eventualnog update-a stvori sesiju i preusmjeri korisnika na panel
  48. $_SESSION['login_user'] = $entered_username;
  49. header("location: admin.php");
  50. } else {
  51. $error = "Netačan password";
  52. }
  53. }
  54. } else {
  55. $error = "Korisnik ne postoji";
  56. }
  57. $stmt->close();
  58. $db->close();
  59. }
  60.  
  61. ?>
  62. <html lang="en">
  63. <head>
  64. <meta charset="utf-8">
  65. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  66. <meta name="description" content="OPIS">
  67. <meta name="author" content="Venan Osmic">
  68.  
  69. <title>Store Management System - Login</title>
  70.  
  71. <!-- Bootstrap core CSS -->
  72. <link href="dist/css/bootstrap.min.css" rel="stylesheet">
  73.  
  74. <!-- Custom Styles -->
  75. <link href="dist/css/custom.css" rel="stylesheet">
  76. <!-- Custom JS -->
  77. <script src="dist/js/customJS.js"></script>
  78. </head>
  79.  
  80. <body>
  81.  
  82. <div class="login-page">
  83. <div class="form">
  84. <form class="login-form" action = "" method = "post">
  85. <p style="font-weight: bold; color:red;"> <?php
  86. echo $error;
  87. ?> </p>
  88. <input type="text" placeholder="username" name="username"/>
  89. <input type="password" placeholder="password" name="password"/>
  90. <button type="submit"> Login </button>
  91. </form>
  92. </div>
  93. </div>
  94.  
  95.  
  96. <!-- Bootstrap core JavaScript
  97. ================================================== -->
  98. <!-- Placed at the end of the document so the pages load faster -->
  99. <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
  100. <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
  101. <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
  102. <script src="dist/js/bootstrap.min.js"></script>
  103. <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
  104. <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
  105. </body>
  106. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement