PHP - prihlasovani uzivatelu   otázka

Offtopic

Dobry den,

mam problemek s prihlasovanim, db sem delal pres mysql server. Kody dle editoru nejevi znamky chyby, ale porad mi vyskakuje chyba ze uzivatel neexistuje i kdyz v DB je. Nevite kde je problem ???

Kod HTML stranky:

<html>
<head>
<title>Přihlášení</title>
</head>
<body>
<form name="form1" method="post" action="overeni.php">
<b>Jmeno:</b><input type="text" name="txtjmeno" size="20"></br>
<b>Heslo:</b><input type="text" name="txtheslo" size="20"></br>
<input type="submit">
</form>
</body>
</html>

Kod PHP:

<?

setcookie('txtjmeno', , time());

setcookie('txtheslo', , time());

$spojeni = mysql_connect("127.0.0.1", "root", "vertrigo");

mysql_select_db("test");

$sql = "SELECT uziv_heslo FROM klienti WHERE uziv_jmeno='{$_request['txtjmeno']}'";

$vysledek = mysql_query($sql);

if (!$vysledek):

echo "Overeni se nezdarilo";

exit;

endif;

if (!mysql_num_rows($vysledek)):

echo "Uzivatel nenalezen";

exit;

else:

if (mysql_result($vysledek, "uziv_heslo" )!=$_request['txtheslo']):

echo "Nespravne heslo";

exit;

else:

setcookie ('txtjmeno', $REQUEST['txtjmeno'], time()+3600);

setcookie ('txtheslo', $REQUEST['txtheslo'], time()+3600);

endif;

endif;

?>

Nevi nekdo kde by mohl byt problem ???

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Napadlo vás, co se stane, když do prvního políčka uživatel napíše něco podobného?

'; DROP TABLE klienti

Zjistěte si, k čemu je funkce mysql_real_escape_string (nebo jak se jmenuje), nebo to tady ještě někdo opíše.

A mimochodem ukládat heslo do cookies je taky pěkná prasečina - typicky se to dělá tak, že místo hesla tam uložíte náhodně vygenerovaný řetězec, který si zároveň zapíšete do databáze, a kontrolujete jej.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak v tom pripade je to prasarna v knize. Pac takhle sem se to z knihy o PHP a MYSQL naucil.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro vás asi naučit se = opsat z knihy bez přemýšlení nad tím a pak to všude používat. Webové aplikace nedělám vůbec, ale takovou věc jako SQL injection znají snad i děti na základní škole.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nechte si toho, já kód chápu, ale je jasný, že si to nejprve zkusim podle knihy. Spíš mi vadí proč už i v odborných knihách jsou ptakoviny. Jinak sql injection a php injection a dalsi podobne kravovinky znam.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je docela dobře možné. Knih o PHP/MySQL je hodně a málokterá je kvalitní.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback