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

question-closed PHP password verify nie działa

Object Storage Arubacloud
0 głosów
203 wizyt
pytanie zadane 20 maja 2022 w PHP przez AnimaVillis Stary wyjadacz (11,350 p.)
zamknięte 20 maja 2022 przez AnimaVillis

Cześć!

Tym razem przychodzę z logowaniem, otóż mam password_verify i dodanie do bazy, ale weryfikacja nie działa niestety. Co robię nie tak?

Dodanie do bazy:

$this->db->query("insert into uzytkownicy set email = '" . $this->db->escape($dane['email']) . "',haslo = '" . $this->db->escape(password_hash($dane['haslo'], PASSWORD_DEFAULT)) . "',imie = '" . $this->db->escape($dane['imie']) . "',telefon = '" . $this->db->escape($dane['telefon']) . "',link_aktywacyjny = '" . $dane['link_aktywacyjny'] . "',ostatnieip='" . $_SESSION['ip'] . "'");

Funkcja logowania:

function logowanie($email, $haslo, $zapamietaj)
{
    global $jezyk, $db;

    $query = new stdClass;
    $query->email = $email;
    $query->haslo = $haslo;
    $query->zapamietaj = $zapamietaj;
    //$query->sql = $db->query("select * from uzytkownicy where email='" . $query->email . "';");
    $query->sql = $db->query("SELECT * FROM uzytkownicy WHERE email='" . $query->email . "';");
    if ($db->countAffected() == 1) {
        $query->user = $query->sql->row;
        if (password_verify($query->haslo, $query->user['haslo'])) {
            if ($query->user['aktywny'] == "0") {
                die('widget.blad("' . $jezyk['bladlogowania'] . '","' . $jezyk['kontonieaktywne'] . '",function(){uruchomiony=false;})');
                $sesja = ustawsesje($query->user, $query->zapamietaj);
                if($sesja == true) {
                    die('widget.info("Jest sesja!", "Ustawiono sesję!");');
                }
            }  
        } else {
            die('widget.info("Błąd weryfikacji hasła!", "Błąd weryfikacji hasła! Twoje hasło to '. $query->haslo .' hasło w bazie '. $query->user['haslo'] .'");');
        }
    } else {
        die('widget.info("Błąd zapytania!", "Błąd zapytania!");');
    }
        //bladzip("logowanie");
        //logi("Błąd logowania: " . $query->email, "logowanie");
        die('$(".box").shake();');
}

JS

<script class="modalne">

$("#logowanie_ok").on("click",function(){
	if(uruchomiony==true)
		return;
	uruchomiony=true;
	portal.walidacja(".form_logowanie",function(){
	$.ajax({
			type: 'POST',
			url: "/php/ajax.php",
			asynch: true,
			dataType: 'script',
			data: {
				akcja:"logowanie",
				email:$("#logowanie_email").val(),
				haslo:$("#logowanie_haslo").val(),
				zapamietaj: $("#logowanie_zapamietaj").is(":checked")
			},
			success: function(data) {
				eval(data);
			},
			error: function(e) {
				widget.blad("<?php echo $jezyk['blad'];?>","<?php echo $jezyk['bladkomunikacji'];?>",function(){uruchomiony=false;});
			}
		});

	});
});


$("#logowanie_anuluj").on("click",function(){
	$("#logowanie-modal").closeModal();
});

</script>

Błąd, który otrzymuję to

die('widget.info("Błąd weryfikacji hasła!", "Błąd weryfikacji hasła! Twoje hasło to '. $query->haslo .' hasło w bazie '. $query->user['haslo'] .'");');

 

komentarz zamknięcia: Napisałem funkcję od nowa według siebie.
komentarz 20 maja 2022 przez adrian17 Ekspert (344,860 p.)
Czym jest $db->escape? Skąd pochodzi ta funkcja, z jakiejś biblioteki czy sam napisałeś? Jeśli tak się składa że modyfikuje wyjście password_hash to to jest przyczyna.

(Ogólnie, czemu ręcznie sklejasz i escape'ujesz stringi do SQLa zamiast przekazywać parametry do zapytania?)

(i... czemu takie dziwne $query zamiast zwykłych zmiennych)
komentarz 20 maja 2022 przez AnimaVillis Stary wyjadacz (11,350 p.)
Nie pytaj czemu tak dziwnie bo nie wiem co myślał autor tego. Skąd ona pochodzi i co robi też nie mam pojęcia, dlatego też pytam.
komentarz 20 maja 2022 przez AnimaVillis Stary wyjadacz (11,350 p.)

@adrian17, nawet po sztywnym wrzuceniu md5 do bazy już nie z rejestracji wychodzi, że błąd weryfikacji.

Podobne pytania

+1 głos
1 odpowiedź 145 wizyt
pytanie zadane 9 marca 2021 w PHP przez niezalogowany
0 głosów
1 odpowiedź 241 wizyt
pytanie zadane 31 grudnia 2015 w PHP przez Bartosz Maciejewicz Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 236 wizyt
pytanie zadane 30 lipca 2020 w PHP przez darekx10 Nowicjusz (120 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 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!

...