function_domain.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: function_domain.php 24601 2011-09-27 12:26:41Z zhengqingpeng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. function domaincheck($domain, $domainroot, $domainlength, $msgtype = 1) {
  12. if(strlen($domain) < $domainlength) {
  13. showmessage('domain_length_error', '', array('length' => $domainlength), array('return' => true));
  14. }
  15. if(strlen($domain) > 30) {
  16. $msgtype ? showmessage('two_domain_length_not_more_than_30_characters', '', array(), array('return' => true)) : cpmsg('two_domain_length_not_more_than_30_characters', '', 'error');
  17. }
  18. if(!preg_match("/^[a-z0-9]*$/", $domain)) {
  19. $msgtype ? showmessage('only_two_names_from_english_composition_and_figures', '', array(), array('return' => true)) : cpmsg('only_two_names_from_english_composition_and_figures', '', 'error');
  20. }
  21. if($msgtype && isholddomain($domain)) {
  22. showmessage('domain_be_retained', '', array(), array('return' => true));
  23. }
  24. if(existdomain($domain, $domainroot)) {
  25. $msgtype ? showmessage('two_domain_have_been_occupied', '', array(), array('return' => true)) : cpmsg('two_domain_have_been_occupied', '', 'error');
  26. }
  27. return true;
  28. }
  29. function isholddomain($domain) {
  30. global $_G;
  31. $domain = strtolower($domain);
  32. $holdmainarr = empty($_G['setting']['holddomain'])?array('www'):explode('|', $_G['setting']['holddomain']);
  33. $ishold = false;
  34. foreach ($holdmainarr as $value) {
  35. if(strpos($value, '*') === false) {
  36. if(strtolower($value) == $domain) {
  37. $ishold = true;
  38. break;
  39. }
  40. } else {
  41. $value = str_replace('*', '.*?', $value);
  42. if(@preg_match("/$value/i", $domain)) {
  43. $ishold = true;
  44. break;
  45. }
  46. }
  47. }
  48. return $ishold;
  49. }
  50. function existdomain($domain, $domainroot) {
  51. global $_G;
  52. $exist = false;
  53. if(C::t('common_domain')->count_by_domain_domainroot($domain, $domainroot)) {
  54. $exist = true;
  55. }
  56. return $exist;
  57. }
  58. ?>