NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Marek Burda
Člen
Avatar
Marek Burda:17.9.2015 20:41

zdravím neviete prečo pri logine nedokáže spracovať where v selecte ? Po veľa testcoh sme prišli nato že chby musí byť vo where. $meno a $heslo máme identifikované... všetko sa zobratzuje správne Ďakujem za pomoc

$sql_dotaz = "SELECT * FROM tz_members WHERE meno = '".$meno."' AND heslo = '".md5($heslo)."';";
 
Odpovědět
17.9.2015 20:41
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Marek Burda
Jan Lupčík:17.9.2015 20:49

Není chyba v názvech sloupců? Hodil by se výpis chyby. :)
Btw. je velmi nebezpečné vkládat proměnné přímo do dotazu. Lepší by bylo používat PDO (třeba i wrapper ze zdejších manuálů). K bezpečnosti: http://www.itnetwork.cz/…ion-a-obrana

Nahoru Odpovědět
17.9.2015 20:49
TruckersMP vývojář
Avatar
Odpovídá na Marek Burda
Michal Štěpánek:17.9.2015 23:12

A k čemu tam jsou ty dva středníky?

...md5($heslo)."';";
Nahoru Odpovědět
17.9.2015 23:12
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
Jan Lupčík:18.9.2015 6:26

Zda to chápu správně, jeden patří k MySQL dotazu a druhý k PHP kódu. Ten pro MySQL je ale zbytečný. :?

Nahoru Odpovědět
18.9.2015 6:26
TruckersMP vývojář
Avatar
Odpovídá na Marek Burda
Michal Štěpánek:18.9.2015 9:38

Hodí to nějakou chybu, nebo se jen nevypíše nic?

Nahoru Odpovědět
18.9.2015 9:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Marek Burda
Honza Bittner:18.9.2015 10:15

Zkoušel jsi nahradit PHP za normální text, tedy to zadat napevno?

Nahoru Odpovědět
18.9.2015 10:15
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Yahkem
Tvůrce
Avatar
Yahkem:18.9.2015 10:35

Nevím, co používáš za typ databáze (předpokládám MySQL), ale zkus

WHERE meno = '".$meno."' AND heslo = '".md5($heslo)."'

nahradit za

WHERE meno LIKE '".$meno."' AND heslo LIKE '".md5($heslo)."'

Může i záležet na tom, jestli hesla v db ukládáte jako char, nebo binary - v tom případě by se mělo porovnávat heslo rovnítkem.

A BTW, není to náhodou parádní SQL injekce? :)

Editováno 18.9.2015 10:38
 
Nahoru Odpovědět
18.9.2015 10:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.