Започнете с малко отстъпление.
И все пак правилно да кажа, както и способността да се направят някои форуми (особено UNIX-ovyh) директно крещи - RTFM! Който не разбира ochem въпрос - RTFM означава "чете шибаните записите!". Това е всичко, аз съм всъщност тук на това, което: изучаване и нещо се опитва да напише върху рамката, Yii, проблемът стана на входа филтриране от различните "злонамерени" характер (ала на XSS атака да) и първото нещо, което идва на ум - е да се напише филтър (който аз все още го), но creocoder. Офлайн Yii. sprpavedlivo напълно забелязах, че не защо изобретяваме колелото, всичко вече е готово, просто трябва да RTFM! Беше около CHtmlPurifier клас, който е обвивка за библиотеката на HTML Purifier. и изпълнява всички функции, които са необходими за мен (въпреки, че не съм го poprobyval в действие, може и със сигурност нищо). Но след като започнах да пиша филтъра - Реших да продължава да завърша това нещо и просто да напишете статия за филтрите в Yii.
Филтри - фрагменти от код, които могат да бъдат изпълнени преди и \ или след завеждането на контролера. Филтър, ако е необходимо, може да попречи на изпълнението на заявеното действие.
Филтрите могат да бъдат и двата метода на текущата контролер и отделни класове - това позволява тяхната повторна употреба. Ако филтърът се прилага като метод на класа, тя трябва да се предхожда с «филтър».
Филтър изпълнена като отделен клас трябва да бъде клас наследник CFilter.
За активиране на филтъра, е необходимо да се замени метода на контролер на филтрите, които трябва да се върнат набор от филтри към контролера (или неговите индивидуални игри действие).
В този пример, "accessControl '- филтър контролер изпълнява като метод и" application.filters.XssFilter' - филтър изпълнен като отделен клас, която се съхранява в директорията / защитени / филтрите /. "Чисто" - задайте филтър имота.
Това е кратка информация за филтри в Yii, повече подробности можете да прочетете тук.
Сега веднага да пристъпи към изпълнение на филтъра. данни почистване функция, която върши цялата работа - Извадих рамка Kohana. Ами това е достатъчно думи, дайте кода филтър себе си - тя е много проста, така че мисля, че не трябва да е проблем.
Тествах доста този филтър - на пръв поглед - тя работи!
Искам да добавя своите коментари с прилагането на филтри в Yii ...
Смятам, че е полезно да има метод, който се нарича преди извършване префилтър и постфилтър, като първоначален () - който инициализира на филтъра, така че трябва да бъде на разположение параметри peredavemye във филтъра от контролера (поради тази причина не е възможно да се използва __construct). Разбира се, че може да удължи CFilter за тези цели, но "роден" в състояние да направи това ще бъде най-добрият вариант.
Надяваме се, описан материалът ще бъде от полза!
Ние ще решите проблема си!
Свързани статии