• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd logowania (nie przekierowuje)

Object Storage Arubacloud
+1 głos
440 wizyt
pytanie zadane 15 sierpnia 2015 w PHP przez krecik1334 Maniak (58,390 p.)
<?php

	session_start();
	
	$old_sessionid = session_id();

	session_regenerate_id();

	$new_sessionid = session_id();

	if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
	{
		header('Location: index.php');
		exit();
	}
	

    require_once 'abacabadabacabaeabacabadabacaba.php';

    $inputlogin = $_POST['login'];
    $inputhaslo = $_POST['haslo'];

    if(password_verify($inputlogin, $login) && password_verify($inputhaslo, $haslo)){
          $_SESSION['zalogowany'] = true;
	  unset($_SESSION['blad']);
	  session_write_close();
          header('Location: index.php');
    }
    else{
	  $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
	  header('Location: index.php');
    }
?>

Problem z tym kodem jest taki że po sprawdzaniu hasła nie przekierowuje na index.php tylko dalej jest się w pliku zaloguj.php w ktorym jest logowanie. Co jest nie tak?

2 odpowiedzi

0 głosów
odpowiedź 15 sierpnia 2015 przez SyntaxError Pasjonat (17,170 p.)
Password_verify sprawdza hasło. Po co sprawdzać login? :D W dodatku funkcją, która służy do sprawdzania haseł.

PS. +1 za bcrypta. ;)
komentarz 15 sierpnia 2015 przez efiku Szeryf (75,160 p.)
Ciekaw jestem  jak wygląda pobieranie danych usera[ login (gdzie filtry?), hasło] z bazy.

W tym przypadku to pobierać dane usera(login,hasło) na podstawie jego loginu a później sprawdzać czy hasło się zgadza za pomoca password_verify.
komentarz 15 sierpnia 2015 przez SyntaxError Pasjonat (17,170 p.)
Dokładnie tak. A nie przekierowuje bo popatrz na ten warunek. Jednocześnie musi przejść password_verify dla loginu i hasła. Albo jednocześnie muszą obydwie nie przejść. Kiedy hasło jest poprawne to przechodzi jedno, a nie przechodzi drugie, więc ani if ani else się nie wykona. Taka jest moja teoria na ten temat. :D
komentarz 15 sierpnia 2015 przez efiku Szeryf (75,160 p.)
No musi być jakiś punkt odniesienia. Hehe oj dostałeś -1 a dobrze mówisz ;)
Ktoś musi się zapoznać z algo Bcrypt ;)
Zawsze może zrobić tak, że jak jest login i hasło hashowane to pobrać wszystkich userów i veryfikować w foreach czy styknie, prawda, że nie optymalne? :>
komentarz 15 sierpnia 2015 przez krecik1334 Maniak (58,390 p.)
Zarówno login jak i hasło leżą zahaszowane bcryptem w pliku, więc błąd nie leży tutaj. Nie mam logowania z bazy danych tylko logowanie z pliku bo jest tylko 1 user. Wersja php 5.6 nie działają mi headery na całej stronie pomocy.
komentarz 15 sierpnia 2015 przez SyntaxError Pasjonat (17,170 p.)
–1 głos
odpowiedź 15 sierpnia 2015 przez Dorion300 Szeryf (90,250 p.)
if(password_verify($inputlogin, $login) && password_verify($inputhaslo, $haslo))

A powinno być 2 razy password_verify?

Podejżewam że login nie jest hasłem.

no chyba że to przewidziałeś i funkcja celowo przyjmuje login, ale widać że kod staje się nieczytelny.

komentarz 15 sierpnia 2015 przez SyntaxError Pasjonat (17,170 p.)
Ale z tego co wiem to w bcrypcie masz ukryty jeszcze salt w haśle. Więc nawet jeśli te loginy są takie same to password _verify nie przejdzie (zwróci false), bo będzie szukał tego salta w ciągu znaków. A ten ciąg znaków to jest login, który nie ma żadnego salta.

Podobne pytania

–1 głos
4 odpowiedzi 521 wizyt
0 głosów
1 odpowiedź 133 wizyt
pytanie zadane 22 listopada 2019 w PHP przez manager96 Bywalec (2,050 p.)
0 głosów
2 odpowiedzi 298 wizyt
pytanie zadane 17 lutego 2016 w PHP przez dxq31 Początkujący (290 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...