Changeset 2610

Show
Ignore:
Timestamp:
12/06/07 13:17:32 (6 years ago)
Author:
tasuku
Message:

r338@dhcp158 (orig r81): tasuku | 2007-11-13 11:39:06 +0900
redirect toka email check toka


Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/php/mumu/trunk/mumu.php

    r2609 r2610  
    105105 
    106106class MuUtil { 
     107  public static function redirect($rel_path) { 
     108    $host = $_SERVER['HTTP_HOST']; 
     109    $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); 
     110    header("Location: http://$host%uri/$rel_path"); 
     111  } 
     112  public static function check_email($email, $dns = false, $strict = false/* , $quote = false */) { 
     113    // TODO: quoted localpart 
     114    if (($at = strrpos($email, '@')) === false) { 
     115      return false; 
     116    } 
     117    $local = substr($email, 0, $at); 
     118    $domain = substr($email, $at + 1); 
     119    $locallen = strlen($local); 
     120    if ($locallen < 1 || $locallen > 64 || 
     121        strlen($domain) < 1 || strlen($domain) > 255 || 
     122        !preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain) || 
     123        preg_match('/\\.\\./', $domain) || 
     124        !preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', 
     125                    $local) || 
     126        // strict check(dot) 
     127        $strict &&  
     128        ($local[0] == '.' || $local[$locallen - 1] == '.' || 
     129         preg_match('/\\.\\./', $local)) || 
     130        // DNS resolve 
     131        $dns && 
     132        !(checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) 
     133       ) { 
     134      return false; 
     135    } 
     136    return true; 
     137  } 
     138} 
     139 
     140class MuInternal { 
    107141  public static function getpath($basepath, $path) { 
    108142    $basepath = realpath($basepath); 
     
    287321    $this->path = $path; 
    288322    if ($parent_path && $path) { 
    289       if (($epath = MuUtil::getpath($path, $parent_path)) === false 
     323      if (($epath = MuInternal::getpath($path, $parent_path)) === false 
    290324          || ($this->parent_tfile = MuParser::parse_from_file($epath)) === false) { 
    291325        throw new MuParserException('invalid filename specified on extends'); 
     
    377411  private $tplfile; 
    378412  function __construct($include_path, $path) { 
    379     if (($epath = MuUtil::getpath($path, $include_path)) === false 
     413    if (($epath = MuInternal::getpath($path, $include_path)) === false 
    380414        || ($this->tplfile = MuParser::parse_from_file($epath)) === false) { 
    381415      throw new MuParserException('include filename is invalid'); 
     
    14071441          } 
    14081442          if (filemtime($template_path) <= $sfmtime) { 
    1409             $mf = MuUtil::unserialize_from_file($sfpath); 
     1443            $mf = MuInternal::unserialize_from_file($sfpath); 
    14101444            if (!$mf->check_cache_mtime($sfmtime)) { 
    14111445              unset($mf); 
     
    14331467      // ��ꤷ�����������¸ 
    14341468      if (isset($sfpath)) { 
    1435         MuUtil::serialize_to_file($mf, $sfpath); 
     1469        MuInternal::serialize_to_file($mf, $sfpath); 
    14361470      } 
    14371471    }