vůbec nevim kde jsem udělal chybu =(((
normálně nick, kerej je zakázanej, tak na něj lze psát, a nic se nestane. na normální nick lze taky psát.
stránka:
http://tarantino.wz.cz/index.php?page=g_book
jak je to v databázi:
http://tarantino.wz.cz/db.jpg
kód vám možná řekne víc:
/*------- ------------- neexistuje ta přezdívka už? ----------- --------*/
unset($jed);
$dotaz = mysql_query("SELECT prezdivka FROM sprava");
while($vypis = mysql_fetch_array($dotaz)) {
$velkyjmeno = strToUpper($_POST['jmeno']);
$vypis[prezdivka] == strToUpper($vypis[prezdivka]);
if ($velkyjmeno == $vypis[prezdivka]){
$passwd = mysql_result(mysql_query("SELECT heslo FROM sprava WHERE prezdivka = '". $_POST['jmeno'] ."' LIMIT 1"), 0, 0);
if(md5($_POST['heslo']) != $passwd) {
echo("
<script type=\"text/javascript\">
alert('špatně zadané heslo');
</script>
");
$jed = 0;
} else {//běží když je heslo v pořádku
$jed = 1;
}
} else {//else běží, když se přezdívka NEshoduje s žádným hledaným jménem
if(!isset($jed)){
$jed = 1;
}
}
}//konec cyklu hledající zakázaná jména
unset($dotaz);
unset($vypis);
/*------- --------- nastavení proměnných, úprava textu ---------- --------*/
if ($jed == 1) {
.
.
.
odeslání a tak
}
.
.
.
tak už mi to někdo (+-) poradil... teď to funguje, je to řešený jinak. pro zájemce:
$dotaz1 = mysql_query("SELECT * FROM sprava WHERE prezdivka LIKE '". $_POST['jmeno'] ."'");
$dotaz2 = mysql_query("SELECT * FROM sprava WHERE prezdivka LIKE '". $_POST['jmeno'] ."' AND heslo LIKE '". md5($_POST['heslo']) ."'");
if(mysql_num_rows($dotaz1) == 0){
$jed = 1;
} else {
if(mysql_num_rows($dotaz2)) {
$jed = 1;
} else {
$jed = 0;
}
}
Jejda .. ;) hezkej fígl .. ale nechápu použití LIKE ? (pokud se dotyční jmenuje "Tonda" tak budu přece hledat "Tonda" a ne "Toník") .. jsem lama .. já se to doučim :D ..
LIKE jsem nikdy předtím neslyšel ale je to prakticky místo "=" a liší se to od "=" tím, že to nehledí na velká, malá písmena.
Jasně .. vím co je to LIKE a k čemu se používá .. jen mi to přijde trochu .. k ničemu .. pokud se někdo jmenuje "Roman" tak proč bude psát "roman" ? chápeš :) ? to je jedno .. hlavně že ti to funguje ..
a u LIKE se muzou pouzit zastupne znaky, resp. %
2 donny:
nechápu. cojsou zástupné znaky? jako něco na způsob regulárního výrazu?
Marcus: ne, spis neco na zpusob "*" a "?" ve Windows u nazvu souboru (resp. (.*) a (.) u regexp).
http://dev.mysql.com/doc/refman/4.1/en/string-comparison-functions.html
---
With LIKE you can use the following two wildcard characters in the pattern:
% Matches any number of characters, even zero characters
_ Matches exactly one character
mysql> SELECT 'David!' LIKE 'David_';
-> 1
mysql> SELECT 'David!' LIKE '%D%v%';
-> 1
To test for literal instances of a wildcard character, precede it by the escape character. If you do not specify the ESCAPE character, ‘\’ is assumed.
áha, myslim, že chápu.
nechápu tam jenom "even zero characters" -> to je včetně nulovejch znaků, nebo krom? nebo co?
tady LIKE nemusi vubec byt. Staci si v dotazu prevest jmeno na male a bude to mnohem rychlejsi
24k: jj, to bylo jen takove odboceni.
Marcus: i s nima.
2 24k: musi, pač kdo řiká, že jsou v databázi malejma písmenama?
btw. kdybyste mi chtěli ještě helfnout tak pls. tady:
http://forum.builder.cz/read.php?20,1544606