| @@ -1668,16 +1668,17 @@ | ||
| 1668 | 1668 | } else { |
| 1669 | 1669 | $wheres[] = "`" . esc_sql( $field ) . "` LIKE '%" . esc_sql( $needle ) . "%'"; |
| 1670 | 1670 | } |
| 1671 | 1671 | } else { |
| 1672 | - $needle = preg_quote( preg_quote( $needle ) ); | |
| 1672 | + // Local var: $needle must stay raw for the remaining fields of this loop | |
| 1673 | + $n = wpforo_json_regexp_needle( $needle ); | |
| 1673 | 1674 | if( in_array( $f['type'], [ 'text', 'search', 'textarea' ], true ) ) { |
| 1674 | 1675 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"[^\"]*" . esc_sql( |
| 1675 | - $needle | |
| 1676 | + $n | |
| 1676 | 1677 | ) . "[^\"]*\"'"; |
| 1677 | 1678 | } else { |
| 1678 | 1679 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"" . esc_sql( |
| 1679 | - $needle | |
| 1680 | + $n | |
| 1680 | 1681 | ) . "\"'"; |
| 1681 | 1682 | } |
| 1682 | 1683 | } |
| 1683 | 1684 | } |
| @@ -1720,31 +1721,27 @@ | ||
| 1720 | 1721 | } |
| 1721 | 1722 | } else { |
| 1722 | 1723 | if( in_array( $f['type'], [ 'text', 'search', 'textarea' ], true ) ) { |
| 1723 | 1724 | if( is_scalar( $needle ) ) { |
| 1724 | - $needle = preg_quote( preg_quote( wpforo_encode( $needle ) ) ); | |
| 1725 | 1725 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"[^\"]*" . esc_sql( |
| 1726 | - $needle | |
| 1726 | + wpforo_json_regexp_needle( wpforo_encode( $needle ) ) | |
| 1727 | 1727 | ) . "[^\"]*\"'"; |
| 1728 | 1728 | } elseif( is_array( $needle ) ) { |
| 1729 | 1729 | foreach( $needle as $n ) { |
| 1730 | - $n = preg_quote( preg_quote( wpforo_encode( $n ) ) ); | |
| 1731 | 1730 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"[^\"]*" . esc_sql( |
| 1732 | - $n | |
| 1731 | + wpforo_json_regexp_needle( wpforo_encode( $n ) ) | |
| 1733 | 1732 | ) . "[^\"]*\"'"; |
| 1734 | 1733 | } |
| 1735 | 1734 | } |
| 1736 | 1735 | } else { |
| 1737 | 1736 | if( is_scalar( $needle ) ) { |
| 1738 | - $needle = preg_quote( preg_quote( wpforo_encode( $needle ) ) ); | |
| 1739 | 1737 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"" . esc_sql( |
| 1740 | - $needle | |
| 1738 | + wpforo_json_regexp_needle( wpforo_encode( $needle ) ) | |
| 1741 | 1739 | ) . "\"'"; |
| 1742 | 1740 | } elseif( is_array( $needle ) ) { |
| 1743 | 1741 | foreach( $needle as $n ) { |
| 1744 | - $n = preg_quote( preg_quote( wpforo_encode( $n ) ) ); | |
| 1745 | 1742 | $wheres[] = "`fields` REGEXP '[{,]\"" . $field . "\":(\\\[[^\\\[]*)?\"" . esc_sql( |
| 1746 | - $n | |
| 1743 | + wpforo_json_regexp_needle( wpforo_encode( $n ) ) | |
| 1747 | 1744 | ) . "\"'"; |
| 1748 | 1745 | } |
| 1749 | 1746 | } |
| 1750 | 1747 | } |