PluginProbe
wpForo Forum / 3.2.1
wpForo Forum v3.2.1
3.2.1 3.2.0 3.1.7 3.1.6 3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.9 3.0.8 3.0.7 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.10 All 141 releases
← All changes | classes/Members.php +8 -11 3.1.6 → 3.2.1 View file →
@@ -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 }