• 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

VPS Starter Arubacloud
0 głosów
200 wizyt
pytanie zadane 20 maja 2022 w PHP przez AnimaVillis Stary wyjadacz (11,190 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,100 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,190 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,190 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ź 142 wizyt
pytanie zadane 9 marca 2021 w PHP przez niezalogowany
0 głosów
1 odpowiedź 239 wizyt
pytanie zadane 31 grudnia 2015 w PHP przez Bartosz Maciejewicz Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 231 wizyt
pytanie zadane 30 lipca 2020 w PHP przez darekx10 Nowicjusz (120 p.)

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...