Filtrasiya etməkdə kömək

Salamlar. Mən mysql bazaya göndərilən mətni filtrasiyadan keçirmək üçün aşağıdakı funksiyanı qurmuşam. Sizcə hansısa bir əlavəni etməliyəm ya yaxşıdi? birdə ki nl2br() funksiyasini mətni bazaya göndərməmişdən ya bazadan çixaranda tətbiq etsəm daha yaxşı olar? [code] public static function filtr($emin) { $emin = htmlentities($emin, ENT_QUOTES, 'UTF-8'); $emin = trim(nl2br($emin)); $emin = str_replace('$', '$', $emin); $emin = str_replace('%', '%', $emin); $emin = str_replace('`', '`', $emin); $emin = str_replace('\\', '\', $emin); $emin = mysql_real_escape_string($emin); return $emin; } [/code]

Verilmiş cavablar və yazılan şərhlər (10 cavab var)

Samxal Meherremov (2012-03-13 00:15:05)
Bu yoxlamanı sil funksiyadan $emin = htmlentities($emin, ENT_QUOTES, 'UTF-8'); Bunu oxuyanda tətbiq edərsən. işarələr də ona görə çıxır.

Emin Rəhmanov (2012-03-12 23:46:00)
Moder ve ya ozum elave etsemde " isaresi \" bele dusur axi.

Ruslan (2012-03-12 23:35:50)
heee emindeyisen imis ))) .. deyisenin emin olmagi da maraqlidi )) neyse eger xeberi ozun ve ya moderatorlar elave edecekse mysql real escape string bes eder Elvin dediyi kimi ..

Samxal Meherremov (2012-03-12 23:26:57)
Bir balaca məsləhət: O qədər str_replace işlətməyə ehtiyac yoxdur. Belə et : $axtar = array('|', '"', '\'', '$', '\\', '^', '%', '`', "", "\x00", "\x1A"); $deyis = array('|', '"', ''', '$', '\', '^', '%', '`', '', '', ''); $emin = str_replace($axtar, $deyis, $emin);

Emin Rəhmanov (2012-03-12 23:16:14)
Ruslan, diqqetle baxsan funksiyanin adinin Emin yox filtr oldugunu gorersen. funksiyanin istifade meqsedi ise yazdigim xeber scriptinde xeberin metnini basligini ve diger mysql ile elaqeli sorgulari filtrden kecirtmek

Emin Rəhmanov (2012-03-12 23:07:20)
Men bu filtrasiya ile butun bazaya geden melumatlari kecirmey ucun isteyirem. birde ki tekce mysql_real_escape_string qoyanda her hansi bir metnde " isaresi varsa o bele \" gorunur. arxasinda slash. ama men isteyirem ki nece yazilibsa elede gorunsun

Ruslan (2012-03-12 23:06:59)
biraz mivzudan uzaq sual verecem mene cox maraqli grldi. niue funksiyanin adi emin di ?:)) birde bele qarma qariwiq filtrasyadan rus chatlarinda ruslar istifade edir guya sql injeksiyanin qabagini almaq uchun.. siz Elvinin sualina cvb vermediz.. meqsed nedir bu filtrda ? chatda yazilanlarin bazaya elavesidi ? p.s. herflere gore uzurlu heaab edin telden yaziram

Elvin Hacı (2012-03-12 23:02:07)
Təhlükəsizlik üçün edirsinizsə gərək yoxdur bu qədər işləmlərə. mysql_real_escape_string inyeksiyaya qarşı kifayət edir. Mətn html sahədə çıxacaqsa htmlentities də bəs edir. mysqlrealescapestring olandan sonra backslash forwardslash-ın, dırnaq işarələrinin qorxusu yoxdur. nl2br bazada olmasa da olar, yaddaşa da bir az qənaət etmiş olarsınız.

Emin Rəhmanov (2012-03-12 21:17:35)
He qardasim, tehlukesizlik ucun filtrasiya etmek isteyirem.

Elvin Hacı (2012-03-12 21:12:50)
Salam. İlk öncə istərdim məqsəd barədə məlumat verəsiniz. Siz niyə mətnin başına bu qədər oyun açırsınız? :) Əgər sırf təhlükəsizlik üçündürsə, artıqdır burdakıların çoxu. Cavabı verin, davamını ona uyğun yazaram.

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

bir elektron poçta gələn məktubu, bir neçə elektron poçta yönləndirmək