Autor Zpráva
3wl4k
Profil *
Skusim to trosku skratit :))
Potrebujem na svoj web banning system a mam vytvorenu tabulku bans:

CREATE TABLE `bans` (

`ban` VARCHAR(255),
`reason` TEXT,
`expires` DATETIME,
PRIMARY KEY (`ban`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE utf8_slovak_ci COMMENT='Bans';


V ktorej budu bany ulozene asi takymto sposobom
INSERT INTO `bans` ( `ban`, `reason`, `expires`)

VALUES ( '%@127.0.0.1', 'Pristup z localhostu bol zakazany.', NULL),
( 'spamer@%', 'Takych plesnivych spamerov tu nepotrebujeme', NULL)


A nasledna sa porovnavat kodom
$reason = $db->get_one( "SELECT `reason` FROM `bans` WHERE '$login@$ip' LIKE `ban`;" );

if( $reason){
die( $reason);
}

pripadne mozno LIKE pouzit REGEXP, ale do zjavnej miery pochybujem o tom, ze toto riesenie bude vykonne (nebude spomalovat aplikaciu) ale tiez ma nenapada iny sposob (okrem $bans = array( "~...~"); foreach( $bans as $ban )...)

Nejake napady?
djlj
Profil
Nápady na co? S čím máš problém?
nightfish
Profil
djlj
zřejmě si kolega myslí, že to bude pomalé (na základě čeho tak usoudil nevím) a chce "rychlejší" řešení
3wl4k
Profil *
Pytam sa ci to bude pomale a ci mate lepsie/vykonnejsie riesenie...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0