国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6KB

  1. <?php
  2. if (!defined('DEDEINC')) exit('dedebiz');
  3. /**
  4. * 过滤核心处理文件
  5. *
  6. * @version $Id: filter.inc.php 1 15:59 2010年7月5日Z tianya $
  7. * @package DedeBIZ.Libraries
  8. * @copyright Copyright (c) 2022, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license
  10. * @link https://www.dedebiz.com
  11. */
  12. /**
  13. * 过滤不相关内容
  14. *
  15. * @access public
  16. * @param string $fk 过滤键
  17. * @param string $svar 过滤值
  18. * @return string
  19. */
  20. $magic_quotes_gpc = ini_get('magic_quotes_gpc');
  21. function _FilterAll($fk, &$svar)
  22. {
  23. global $cfg_notallowstr, $cfg_replacestr, $magic_quotes_gpc;
  24. if (is_array($svar)) {
  25. foreach ($svar as $_k => $_v) {
  26. $svar[$_k] = _FilterAll($fk, $_v);
  27. }
  28. } else {
  29. if ($cfg_notallowstr != '' && preg_match("#".$cfg_notallowstr."#i", $svar)) {
  30. ShowMsg(" $fk has not allow words!", '-1');
  31. exit();
  32. }
  33. if ($cfg_replacestr != '') {
  34. $svar = preg_replace('/'.$cfg_replacestr.'/i', "***", $svar);
  35. }
  36. }
  37. if (!$magic_quotes_gpc) {
  38. //var_dump($svar);
  39. if (is_array($svar)) {
  40. foreach ($svar as $key => $value) {
  41. $svar[$key] = addslashes($svar[$key]);
  42. }
  43. } else {
  44. $svar = addslashes($svar);
  45. }
  46. }
  47. return $svar;
  48. }
  49. /* 对_GET,_POST,_COOKIE进行过滤 */
  50. foreach (array('_GET', '_POST', '_COOKIE') as $_request) {
  51. foreach ($$_request as $_k => $_v) {
  52. ${$_k} = _FilterAll($_k, $_v);
  53. }
  54. }