Есть функция textFilter В ней get_magic_quotes_gpc но она устарела, и на сколько я знаю уже удалена, в php 7.3 За что она вообще отвечает? и как обойтись без нее в данном коде? или на что её можно заменить? PHP: function textFilter($source, $substr_num = false, $strip_tags = false) { global $db; if (function_exists("get_magic_quotes_gpc") AND get_magic_quotes_gpc()) $source = stripslashes($source); $find = array('/data:/i', '/about:/i', '/vbscript:/i', '/onclick/i', '/onload/i', '/onunload/i', '/onabort/i', '/onerror/i', '/onblur/i', '/onchange/i', '/onfocus/i', '/onreset/i', '/onsubmit/i', '/ondblclick/i', '/onkeydown/i', '/onkeypress/i', '/onkeyup/i', '/onmousedown/i', '/onmouseup/i', '/onmouseover/i', '/onmouseout/i', '/onselect/i', '/javascript/i'); $replace = array("data:", "about:", "vbscript<b></b>:", "onclick", "onload", "onunload", "onabort", "onerror", "onblur", "onchange", "onfocus", "onreset", "onsubmit", "ondblclick", "onkeydown", "onkeypress", "onkeyup", "onmousedown", "onmouseup", "onmouseover", "onmouseout", "onselect", "javascript"); $source = preg_replace("#<iframe#i", "<iframe", $source); $source = preg_replace("#<script#i", "<script", $source); if (!$substr_num) $substr_num = 25000; $source = $db->safesql(myBr(htmlspecialchars(substr(trim($source), 0, $substr_num)))); $source = str_ireplace("{", "{", $source); $source = str_ireplace("`", "`", $source); $source = str_ireplace("{theme}", "{theme}", $source); $source = preg_replace($find, $replace, $source); if ($strip_tags) $source = strip_tags($source); return $source; }
Она удалена, потому что удалены сами магические кавычки. Уже давно php не проставляет автоматом слешей перед кавычками/апострафами. Код - какая-то непонятная тонна бреда, с неуклюжей попыткой защититься непонять от чего, но, по ходу от XSS. Вся эта тонна бреда для этого не нужна, для этого нужно при выводе данных пропускать их через htmlspecialchars, и всё.