Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include("../config.php");
- session_start();
- //Varijabla error za spremanje greske pilikom logina
- $error = "";
- //Ako je logovan tj. ako sesija jos uvijek postoji preusmjeri na panel
- if (isset($_SESSION['login_user'])) {
- header("location:index.php");
- }
- if ($_SERVER["REQUEST_METHOD"] == "POST") {
- //Spremi unesene podatke iz polja
- $entered_username = mysqli_real_escape_string($db, $_POST['username']);
- $entered_password = mysqli_real_escape_string($db, $_POST['password']);
- //Provjeri bazu
- if (!$db) {
- printf("Konekcija s bazom ti je na postelji na UKCu odjel: %s\n", mysqli_connect_error());
- exit();
- } else {
- //Prepared statement da povuce podatke iz baze za uneseni username
- $stmt = $db->prepare("SELECT * FROM users WHERE BINARY username = ?");
- $stmt->bind_param('s', $entered_username);
- $stmt->execute();
- //Spremi podatke
- $stmt->bind_result($user_id, $username, $password, $firstname, $lastname, $role);
- $stmt->store_result();
- }
- //Provjeri da li postoji korisnik tj. samo jedan red kao rezultat
- if ($stmt->num_rows == 1) {
- //Fetchuj podatke
- if ($stmt->fetch()) {
- //Provjeri da li se uneseni pw poklapa sa Hashom iz baze tj. provjeri da li je pw tacan
- if (password_verify($entered_password, $password)) {
- //Provjera da li treba Rehash (ukoliko postoji noviji hash algoritam)
- if (password_needs_rehash($password, PASSWORD_DEFAULT)) {
- //Ako postoji noviji Hash po php password default algoritmu update-uj ga u bazi
- $newHash = password_hash($entered_password, PASSWORD_DEFAULT);
- $stmt_reahash = $db->prepare("INSERT INTO users (password) VALUES (?) WHERE username = ?");
- $stmt_reahash->bind_param('ss', $newHash, $entered_username);
- $stmt_reahash->execute();
- $stmt_reahash->close();
- }
- //Nakon provjere ili eventualnog update-a stvori sesiju i preusmjeri korisnika na panel
- $_SESSION['login_user'] = $entered_username;
- header("location: index.php");
- } else {
- $error = "Netačan password";
- }
- }
- } else {
- $error = "Korisnik ne postoji";
- }
- $stmt->close();
- $db->close();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement