Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 25. 1. 2011, 21:03:40
Dobrý den, potřeboval by jsem poradit jak s tímto kódem naložit - kód umí ověřit zda je uživatel registrovaný, když ne vypíše uživatel nenalezen.
Nicméně nedaří se mi přijít na to jak ověřit když je uživatel nalezen zda bylo zadáno správné heslo - kde mám chybku v kódu? Děkuji Vám // kontrola údajů if ($submit) { $connect = mysql_connect ("$localhost","$user","$pass") or die("Nepodařilo se připojit k databázi"); mysql_select_db ("sroty_net_"); //select database //zkouka existence jmena $zkouskajmena = mysql_query("SELECT uzivatelskejmeno FROM klienti WHERE uzivatelskejmeno='$name'"); $count = mysql_num_rows($zkouskajmena); // zkouska existence hesla u daného jména $zkouskahesla= mysql_query("SELECT heslo FROM klienti WHERE uzivatelskejmeno='$name'"); $count1 = mysql_num_rows($zkouskahesla); if ($count==0) { $obsazeno ="Uživatelské jméno nenalezeno"; } if (($count!=0)&&($count1!=0)) { $uzivatelnalezen ="Zadali jste špatné heslo"; } } |
||
Alphard Profil |
#2 · Zasláno: 25. 1. 2011, 21:16:12
Ten druhý dotaz nepotřebujete. V prvním si vytáhněte i heslo a pak stačí porovnat
$hesloDb == sha1($_POST['heslo']) , pokud teda používáte zrovna sha1().
Ochranu proti sql injection určitě máte v předchozí části kódu :-) |
||
xmark Profil |
#3 · Zasláno: 25. 1. 2011, 21:17:46
Zkontroloval bych řádky 13 a 17. Opravil do očí bijící chyby a pak ty dva dotazy spojil do jednoho do podoby:
SELECT neco FROM tabulka WHERE neco = '$name' AND necojineho = '$heslo' |
||
Pavel Vodnář Profil * |
#4 · Zasláno: 25. 1. 2011, 21:47:26
Děkuji Vám už to běží jak má
|
||
Časová prodleva: 4 dny
|
|||
Dědeček Profil * |
#5 · Zasláno: 29. 1. 2011, 19:07:03
Proč nepoužít jednoduše
if(mysql_result(mysql_query("select count(*) from **** where **** = '****' and ****= '*****'"), 0, 0)) |
||
pcmanik Profil |
#6 · Zasláno: 29. 1. 2011, 22:02:34
Dědeček:
Preco by mal pouzit mysql_result? Ta funkcia je pomala, oplati sa viac mysql_fetch_array. A aj tak ta podmienka bude vzdy vyhodnotena kladne, ak bude count 1, 0 ale kludne aj 1000 takze je to hlupost... |
||
Časová prodleva: 13 let
|
0