function _parseRequest($name, $param) { $result = array(); $paraFound = false; foreach ($param['reqTypes'] as $req_type) { switch (strtoupper($req_type)) { case 'POST': if (isset($_POST[$name])) { $paraValue = $this->removeMagicQuotes($_POST[$name]); $paraFound = true; } break; case 'GET': if (isset($_GET[$name])) { $paraValue = $this->removeMagicQuotes($_GET[$name]); $paraFound = true; } break; case 'COOKIE': if (isset($_COOKIE[$name])) { $paraValue = $this->removeMagicQuotes($_COOKIE[$name]); $paraFound = true; } break; case 'SESSION': if (isset($_SESSION[$name])) { $paraValue = $_SESSION[$name]; $paraFound = true; } break; default: } if ($paraFound) { $result['RawRequest'] = $paraValue; break; } } if ($param['mustExist'] && !$paraFound) { $result['ErrorMsg'] = new NBFrameRequestErr('Required parameter[' . $name . '] should not be empty.'); } if (!$paraFound) { if ($param['defaultValue'] !== NBFRAME_NO_DEFAULT_PARAM) { $paraValue = $param['defaultValue']; } elseif ($param['valType'] == 'string-yn') { $paraValue = 'N'; } elseif ($param['valType'] == 'check-01') { $paraValue = '0'; } elseif ($param['valType'] == 'array-int') { $paraValue = array(); } } if (isset($paraValue)) { if (!empty($param['valType'])) { switch ($param['valType']) { case 'raw': // do nothing break; case 'var': if (preg_match('/^[a-zA-Z0-9_]+$/', trim($paraValue), $matches)) { $paraValue = $matches[0]; } else { $paraValue = ''; } break; case 'file': if (preg_match('/^[a-zA-Z0-9_.\\-]+$/', trim($paraValue), $matches)) { $paraValue = $matches[0]; } else { $paraValue = ''; } break; case 'string-yn': $paraValue = $paraValue == 'Y' ? 'Y' : 'N'; break; case 'check-01': $paraValue = $paraValue == '1' ? '1' : '0'; break; case 'array-int': settype($paraValue, 'array'); array_walk($paraValue, array(&$this, '_array_int_callback')); break; case 'array-datetime': if (is_array($paraValue)) { if (isset($paraValue['date']) && isset($paraValue['hour']) && isset($paraValue['minute'])) { $tmp = explode('-', $paraValue['date']); NBFrame::setPHPServerTimeZone(); $paraValue = mktime(0, 0, 0, $tmp[1], intval($tmp[2]), intval($tmp[0])) + intval($paraValue['hour']) + intval($paraValue['minute']); $paraValue = NBFrame::convLocalToServerTime($paraValue); } else { $paraValue = 0; } } else { if ($paraValue != $param['defaultValue']) { $paraValue = 0; } } break; default: settype($paraValue, $param['valType']); } } $result['Request'] = $paraValue; } if (isset($result['RawRequest'])) { $this->mRawRequests[$name] = $result['RawRequest']; } if (isset($result['ErrorMsg'])) { $this->mErrorMsgs[] = $result['ErrorMsg']; } if (isset($result['Request'])) { $this->mRequests[$name] = $result['Request']; } return $result; }