Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Hash sha512 nevěděl by někdo?

V tom kodu mám jenom tohle... nedaří se mi přihlásit v databázi má heslo varchar 2000
3. 9. 2018 16:22:11
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363866
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 16:27:16
hm, to vypadá dobře.
Dokážeš sem dát nějaké debug hlášky? Zajímalo by mě:
1. co obsahuje $result ve funkci login()
2. jakou mají hodnotu proměnné $email, $password (u hesla stačí, když řekneš, že obsahuje správné heslo)
3. zkus odstranit celý řádek s if (is_null(@$result->user_id)) ve funkci login(), podle ostatního kódu tam být nemusí a neselže to ani když email neexistuje
3. 9. 2018 16:27:16
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363865
V $result je dotaz do databáze....je tam vyber všechno a porovnej emaily....
hodnotu proměnné by to mělo mít admin@ulovzakaznika.cz a heslo noveheslo..uložené šifrou do databáze...
Jak ti mám nechat vypsat to co to udělá po tom..co to odešlu ?
3. 9. 2018 16:34:07
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363864
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 16:36:27
použij var_dump() a odstraň z kódu redirect nebo to zapiš do databáze. Vidím co to má obsahovat, zajímají mě hodnoty, dal jsem ti sem samostatný kód, který sám o sobě funguje, v tvém kódu nevidím na první pohled chybu, tak mě zajímá, jestli se to z db načte v pořádku a jestli to tam je správně uložené. Toť vše.
3. 9. 2018 16:36:27
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363863
Dal jsem to vypsat nad class user v user.php...A ukazuje mi to toto:
3. 9. 2018 16:42:28
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363862
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 16:44:33
očividně jsi to tam dal špatně :). Je tam potřeba zavolat celé tělo funkce a ne jen výpis result, který se inicializuje až v samotné funkci.
3. 9. 2018 16:44:33
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363861
A jak to tam mám dát teď to zase hledá email, že neni nadefinován.... jak zavolat ve var dump dvě funkce ? Tu na ten password a tu a login?
3. 9. 2018 16:53:00
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363860
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 16:53:41
tak to dej do té funkce login a nevytahuj to ven :).
3. 9. 2018 16:53:41
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363859
Takhle? to je asi blbost..píše to undefined constant a varchar 5
echo var_dump(login);
3. 9. 2018 16:57:12
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363858
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 16:59:41
tohle se složitě dělá, když neumíš dobře programovat :)
takhle nějak
public static function login($email, $password) {
$result = Db::queryOne('SELECT `user_id`, `email`, `password` FROM `users` WHERE `email` = ?', array($email));
var_dump($result);
var_dump($result->password);
var_dump($password); //nech jen pokud není tajné, ale testovací
var_dump(password_verify($password, $result->password));
exit(); //ať se nesnaží nic jiného vypisovat, přesměrovávat a nechá tam debug výstupy
return password_verify($password, $result->password);
}
3. 9. 2018 16:59:41
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363857
3. 9. 2018 17:02:37
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363856
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 17:07:57
už to vidím:
1. v db máš uložen starý formát hashe, pokud použiješ password_hash musíš hesla přeuložit. Jedná se o nový nebo existující projekt?
2. jako parametr funkce login() dáváš do proměnné password nový hash, má tam být původní heslo, který uživatel zadal z formuláře a nikoliv nějaká předzpracovaná věc
Zároveň k tvému úvodnímu příspěvku, důvod proč jsi tohle začal řešit je nejspíš to, že ti nešlo se přihlašovat. Na výpisu lze vidět, že v db máš hash hesla s mezerou na konci, poté při pornávání (viz tvůj úvodní příspěvek) to nesouhlasí a proto ti nefungovalo přihlášení. Pokud bys to v db opravil, nejspíš ti tvůj původní kód bude fungovat.
3. 9. 2018 17:07:57
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363855
Nechal jsem v databázi jen jeden účet s jedním heslem..vygenerovaným přes password hash...
Je to starý projekt..mám jen zpřístupnit administraci.... potřebuji dát ten vygenerovaný hash do databáze a mělo by to chodit, ale nechodí.... vrátil jsem tvůj původní kod.
3. 9. 2018 17:15:27
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363854
TomasX
verified
rating uzivatele
(4 hodnocení)
3. 9. 2018 17:19:17
to už vypadá lépe. Teď ještě vyřešit bod (2), do funkce login jako argument dáváš email a password, email má správnou hodnotu a načte se z db, ale jako password tam předáváš hash, mělo by tam být heslo, které jde z formuláře. V kódu třídy User, kterou jsi sem dával žádné volání tenhle funkce není, musí to tedy být ještě někde jinde, nejspíš se heslo z formuláře nejprve prožene funkci encrypt_password a poté se pošle do loginu, hledej, kde jinde se tahle funkce používá a najdeš místo, které upravit, aby login dostal heslo a ne hash.
3. 9. 2018 17:19:17
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363853
Ten web je docela malej..je tam jenom controller , model a view ve složce app......
Co tohle ?
3. 9. 2018 17:30:01
https://webtrh.cz/diskuse/hash-sha512-nevedel-by-nekdo/strana/2/#reply1363852
Pro odpověď se přihlašte.
Přihlásit