Advertisement
Guest User

Untitled

a guest
Dec 25th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 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:index.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 BINARY 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);
  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: index.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. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement