PageRenderTime 53ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/ php-ppcms/includes/classes/core.validate.class.php

http://php-ppcms.googlecode.com/
PHP | 360 lines | 272 code | 72 blank | 16 comment | 85 complexity | 30bd406e3f08df62bcb1df19ba18358f MD5 | raw file
Possible License(s): LGPL-2.1, GPL-2.0
  1. <?php
  2. /***************************************************************
  3. * Copyright notice
  4. * (c) 2009, jianyuzhu@gmail.com
  5. * All rights reserved
  6. * This script is part of the PPEMI project.
  7. ***************************************************************/
  8. class CoreValidate {
  9. //data
  10. var $_result_data = array();
  11. //flag
  12. var $_result_valid = true;
  13. //constructor
  14. function CoreValidate() {
  15. }
  16. //methods
  17. function _add($key, $value) {
  18. $this->_result_data[$key] = $value;
  19. }
  20. function _append($key, $value) {
  21. if( isset($this->_result_data[$key]) ) {
  22. $this->_result_data[$key][] = $value;
  23. } else {
  24. $this->_result_data[$key] = $value;
  25. }
  26. }
  27. function _get($key = '') {
  28. if( $key == '' ) {
  29. return $this->_result_data;
  30. } elseif( isset($this->_result_data[$key]) ) {
  31. return $this->_result_data[$key];
  32. }
  33. }
  34. function _remove($key) {
  35. if( isset($this->_result_data[$key]) ) {
  36. unset($this->_result_data[$key]);
  37. }
  38. }
  39. function _clean() {
  40. $this->_result_data = array();
  41. }
  42. function _reset() {
  43. $this->_result_data = array();
  44. }
  45. //
  46. function _valid() {
  47. if( sizeof($this->_result_data) > 0 || $this->_result_valid == false ) {
  48. return false;
  49. } else {
  50. return true;
  51. }
  52. }
  53. function _outputJs() {
  54. $output_str = '';
  55. if( sizeof($this->_result_data) > 0 ) {
  56. $output_str .= '';
  57. for($i=0, $n=sizeof($this->_result_data); $i<$n; $i++) {
  58. $output_str .= $this->_result_data[$i] . "\n";
  59. }
  60. }
  61. return $output_str;
  62. }
  63. function _output() {
  64. $output_str = '';
  65. if( sizeof($this->_result_data) > 0 ) {
  66. $output_str .= '';
  67. foreach($this->_result_data as $k => $v) {
  68. $output_str .= $v . "\n";
  69. }
  70. }
  71. return $output_str;
  72. }
  73. function _result($title = '', $msg = '', $show = true) {
  74. if( $title == '' ) {
  75. $title = ':error';
  76. }
  77. if( substr($title, 0, 1) == ':' ) {
  78. $title = _lang(':error' . $title, 'error');;
  79. }
  80. if( $msg == '' ) {
  81. $msg = $this->_output();
  82. } elseif( substr($msg, 0, 1) == ':' ) {
  83. global $LANGUAGE;
  84. $msg = substr($msg, 1);
  85. $msg = isset($LANGUAGE['error'][$msg]) ? $LANGUAGE['error'][$msg] : $msg;
  86. }
  87. return array('title' => $title, 'message' => $msg, 'show' => $show);
  88. }
  89. function _valid_result() {
  90. return $this->_result_data;
  91. }
  92. //
  93. function _not_null($value) {
  94. return util_not_null($value);
  95. }
  96. function _is_null($value) {
  97. if( is_array($value) ) {
  98. if( sizeof($value) > 0 ) {
  99. return false;
  100. } else {
  101. return true;
  102. }
  103. } else {
  104. if( (is_string($value) || is_int($value) || is_numeric($value)) && ($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0) ) {
  105. return false;
  106. } else {
  107. return true;
  108. }
  109. }
  110. }
  111. function _is_num($value) {
  112. if( is_numeric($value) ) {
  113. return true;
  114. }
  115. return false;
  116. }
  117. function _num($value) {
  118. }
  119. function _lt($value, $dest) {
  120. }
  121. function _le($value, $dest) {
  122. }
  123. function _eq($value, $dest) {
  124. }
  125. function _gt($value, $dest) {
  126. }
  127. function _ge($value, $dest) {
  128. }
  129. function _str_null($string) {
  130. if( is_array($string) ) {
  131. if( sizeof($string) > 0 ) {
  132. return false;
  133. } else {
  134. return true;
  135. }
  136. } else {
  137. if( (is_string($string) || is_int($string) || is_numeric($string)) && ($string != '') && ($string != 'NULL') && (strlen(trim($string)) > 0) ) {
  138. return false;
  139. } else {
  140. return true;
  141. }
  142. }
  143. }
  144. function _str_lt($string, $count = 5) {
  145. if( strlen($string) < $count ) {
  146. return true;
  147. }
  148. return false;
  149. }
  150. function _str_le($string, $count = 5) {
  151. if( strlen($string) < $count ) {
  152. return true;
  153. }
  154. return false;
  155. }
  156. function _str_eq($string, $count = 5) {
  157. if( strlen($string) == $count ) {
  158. return true;
  159. }
  160. return false;
  161. }
  162. function _str_gt($string, $count = 5) {
  163. if( strlen($string) > $count ) {
  164. return true;
  165. }
  166. return false;
  167. }
  168. function _str_ge($string, $count = 5) {
  169. if( strlen($string) > $count ) {
  170. return true;
  171. }
  172. return false;
  173. }
  174. function _num_lt($num, $value = 5) {
  175. if( strlen($num) < $value ) {
  176. return true;
  177. }
  178. return false;
  179. }
  180. function _num_le($num, $value = 5) {
  181. if( strlen($num) < $value ) {
  182. return true;
  183. }
  184. return false;
  185. }
  186. function _num_eq($num, $value = 5) {
  187. if( strlen($num) == $value ) {
  188. return true;
  189. }
  190. return false;
  191. }
  192. function _num_gt($num, $value = 5) {
  193. if( strlen($num) > $value ) {
  194. return true;
  195. }
  196. return false;
  197. }
  198. function _num_ge($num, $value = 5) {
  199. if( strlen($num) > $value ) {
  200. return true;
  201. }
  202. return false;
  203. }
  204. function _num_btw($num, $start, $end) {
  205. if( $num > $start && $num < $end ) {
  206. return true;
  207. }
  208. return false;
  209. }
  210. function _num_btw_ee($num, $start, $end) {
  211. if( $num >= $start && $num <= $end ) {
  212. return true;
  213. }
  214. return false;
  215. }
  216. function _num_btw_xe($num, $start, $end) {
  217. if( $num > $start && $num <= $end ) {
  218. return true;
  219. }
  220. return false;
  221. }
  222. function _num_btw_ex($num, $start, $end) {
  223. if( $num >= $start && $num < $end ) {
  224. return true;
  225. }
  226. return false;
  227. }
  228. function _valid_email($email) {
  229. return util_validate_email($email);
  230. }
  231. //
  232. function _valid_type($value, $pattern) {
  233. $patterns = array(
  234. 'require'=> '/.+/',
  235. 'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
  236. 'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/',
  237. 'currency' => '/^\d+(\.\d+)?$/',
  238. 'zip' => '/^[1-9]\d{5}$/',
  239. 'number' => '/\d+$/',
  240. 'integer' => '/^[-\+]?\d+$/',
  241. 'float' => '/^[-\+]?\d+(\.\d+)?$/',
  242. 'double' => '/^[-\+]?\d+(\.\d+)?$/',
  243. 'english' => '/^[A-Za-z]+$/',
  244. );
  245. if( isset($patterns[$pattern]) ) {
  246. $pattern = $patterns[$pattern];
  247. }
  248. if( preg_match($pattern, $value) === 1 ) {
  249. return true;
  250. }
  251. return false;
  252. }
  253. //
  254. function check($data_array, $fields) {
  255. return true;
  256. }
  257. function checkNull($data_array, $fields) {
  258. if( !is_array($data_array) ) {
  259. return true;
  260. }
  261. foreach($data_array as $k => $v) {
  262. if( substr($k, 0, strlen('field_')) == 'field_' ) {
  263. $kb = substr($k, strlen('field_'));
  264. }
  265. if( (in_array($k, $fields) || in_array($kb, $fields)) && $this->_str_eq($data_array[$k], 0) == true ) {
  266. $this->_result_valid = false;
  267. }
  268. }
  269. }
  270. function checkEmail($email) {
  271. if( $this->_valid_email($email) == false ) {
  272. $this->_result_valid = false;
  273. }
  274. }
  275. function checkColor($rgb) {
  276. $rgb = strtolower($rgb);
  277. if( strlen($rgb) == 8 && substr($rgb, 0, 2) == '0x' ) {
  278. $rgb = substr($rgb, 2);
  279. }
  280. if( strlen($rgb) == 6 && preg_match("[0-9a-f]", $rgb) ) {
  281. //$this->_result_valid = true;
  282. } else {
  283. $this->_result_valid = false;
  284. }
  285. }
  286. }
  287. //
  288. ?>