Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Logowanie oparte na PDO, Logowanie oparte na PDO
Szagii
post 25.11.2016, 13:26:34
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.11.2016

Ostrzeżenie: (0%)
-----


Witam,
Postanowiłem ogarnąć PDO, napisałem system logowania, ale mam pewien problem.
header('Location: adres') mnie nie przekierowuje, a zostaje w pliku.
Przeglądałem już kilka tematów na forum i nic mi nie pomogło, domyślałam się że w ostatnim if'ie jest coś nie tak, ale nie mam pojęcia co.
Jakaś podpowiedź?

Z góry dzięki biggrin.gif

CODE
<?php

session_start();

require_once "db.php";

if(isset($_POST['login'])){

$login = $_POST['login'];
$pass = md5($_POST['pass']);

$stmt = $dbh->prepare('SELECT * FROM users WHERE login=:login AND pass=:pass');
$stmt->bindValue(':login', $login, PDO::PARAM_STR);
$stmt->bindValue(':pass', $pass, PDO::PARAM_STR);

$stmt -> execute();

$result = $stmt->fetch();

if($result == 1){
$_SESSION['user'] = $login;
header('Location: panel.php');
}



}
?>


Ten post edytował Szagii 25.11.2016, 13:27:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
viking
post 25.11.2016, 13:29:41
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


var_dump($result) nad ifem. Zamiast md5 http://php.net/manual/en/function.password-hash.php / verify


--------------------
Go to the top of the page
+Quote Post
Szagii
post 25.11.2016, 14:01:17
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.11.2016

Ostrzeżenie: (0%)
-----


Cytat(viking @ 25.11.2016, 13:29:41 ) *
var_dump($result) nad ifem. Zamiast md5 http://php.net/manual/en/function.password-hash.php / verify


Poprawione, teraz wyskakuje bool(false)

CODE
<?php

session_start();

require_once "db.php";

if(isset($_POST['login'])){

$login = $_POST['login'];
$pass = password_hash(($_POST['pass']), PASSWORD_DEFAULT);

$stmt = $dbh->prepare('SELECT * FROM users WHERE login=:login AND pass=:pass');
$stmt->bindValue(':login', $login, PDO::PARAM_STR);
$stmt->bindValue(':pass', $pass, PDO::PARAM_STR);

$stmt -> execute();

$result = $stmt->fetch();

var_dump($result);

if($result == 1){
$_SESSION['user'] = $login;
header('Location: panel.php');
}

}
?>


Ten post edytował Szagii 25.11.2016, 14:03:12
Go to the top of the page
+Quote Post
viking
post 25.11.2016, 14:06:50
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Poprawione i co zwrócił var_dump dla md5. No na pewno nie 1. Dla password_hash najpierw masz zapisać w ten sposób hasło do bazy, przy logowaniu password_verify pobranego hasha z bazy i hasła z formularza.


--------------------
Go to the top of the page
+Quote Post
Szagii
post 25.11.2016, 14:40:18
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 25.11.2016

Ostrzeżenie: (0%)
-----


Cytat(viking @ 25.11.2016, 14:06:50 ) *
Poprawione i co zwrócił var_dump dla md5. No na pewno nie 1. Dla password_hash najpierw masz zapisać w ten sposób hasło do bazy, przy logowaniu password_verify pobranego hasha z bazy i hasła z formularza.



Działa, dzięki wielkie biggrin.gif
Temat do zamknięcia.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:23