Autor Zpráva
jamal.r
Profil *
Mám v databázi seznam hesel a stránku s textovým polem a tlačítkem,potřebuju porovnat obsah textového pole a databáze jestli se v ní už to heslo nevyskytuje
Joker
Profil
třeba:
SELECT id FROM tabulka WHERE heslo='$heslo'
resp.: SELECT COUNT(id) FROM tabulka WHERE heslo='$heslo'

nebo:
SELECT id FROM tabulka WHERE heslo LIKE '$heslo'
resp.: SELECT COUNT(id) FROM tabulka WHERE heslo LIKE '$heslo'

Jinak ale lepší než ukládat přímo heslo do tabulky by bylo ukládat do tabulky jenom hash.
pmasarik
Profil
Ak ide o PHP a MySQL tak takto...

// ak mas heslo uložene ako MD5 tak nezabudni aj porovnavať s MD5
if (!mysql_result(mysql_query("SELECT COUNT(*) FROM tabulka WHERE heslo='".$_POST['heslo']."'"), 0)) {
// ak nie je este v DB ideme dalej
} else {
// taketo heslo už v DB je
}
jamal.r
Profil *
Díky to vím jak udělat akorát nevím jak porovnat textové pole s databází
pmasarik
Profil

WHERE heslo='".$_POST['heslo']."' // a čo je myslíš toto? veď tu porovnávaš obsah textového pola z DB


heslo je stlpec z DB ktorý obsahuje všetky heslá a $_POST['heslo'] obsahuje odoslané heslo z inputu ktorý má name="heslo"
Kde vidíš ešte problém?
Joker
Profil
WHERE heslo='".$_POST['heslo']."'

Ale takhle bych to zrovna nedělal, proto ve svých příkladech výše mám $heslo, protože předpokládám, že tu POST proměnnou napřed nějak zpracuje.
"Hacker" by s heslem: ' OR 1=1 -- anebo: ' AND 1=0 -- mohl nadělat docela paseku
jamal.r
Profil *
2pmasarik: jj díky moc přehlédnul jsem se
pmasarik
Profil
RE: Joker -- Riešilo sa tu ako to porovnať, nie ako to ošetriť :-)
jamal.r
Profil *
Ještě bych potřeboval vědět když se heslo nebude vyskytovat v db,jak zablokovat přechodu na další stránku.V Javascriptu jsem to dělal přes funkci která mi vracel bud true nebo false a podle toho to bud preslo na dalsi stranku nebo ne.
pmasarik
Profil
Prečítaj si moj prvý príspevok poriadne...

Je tam podmienka IF ktorá ak je splnená tak si tam daj čokoľvek čo sa má urobiť ak také heslo už existuje a do ELSE si daj to čo sa má urobiť ak také heslo neexistuje. Všimni si aj výkričník pri !mysql_result aby si nebol zmetený :)
jamal.r
Profil *
jo díky za pěkné vysvětlení :),to chápu,akorát bych potřeboval tu podmínku .V Javascriptu mi to vracelo true,false(např.return false;) jsem to psal do <form onsubmit="Kontorla()"> ale v php nevím čo s tym.
pmasarik
Profil

function zistit_heslo ($heslo) {
if (!mysql_result(mysql_query("SELECT COUNT(*) FROM tabulka WHERE heslo='".$heslo."'"), 0)) {
return false;
} else {
return true;
}
}


Ja by som to síce takto nerobil, ale požadoval si aby ti to vrátilo true alebo false a táto funkcia ti to urobí...
Neviem prečo nedáš priamo do podmienok to čo sa má urobiť??? Prečo chceš TRUE a FALSE?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0