예제 #1
0
파일: MyPDO.php 프로젝트: deale/dt
 public function exec($query, $input_param = false)
 {
     $this->lastError = null;
     try {
         if (is_array($input_param)) {
             $res = $this->prepare($query);
             $res->execute($input_param);
             return $res;
         }
         return parent::exec($query);
     } catch (\PDOException $e) {
         echo '<pre>';
         print_r($e);
         echo '</pre>';
         exit('Stoped: <b>' . mf_get_spath() . '</b>');
         $this->lastError = $e->getMessage();
         $debug = debug_backtrace();
         Exc::log('SQL_ERROR', "SQL ошибка:{$e->getMessage()} в запросе: {$query}", $debug[1]['line'], $debug[1]['file'], true);
         if ($this->inTransaction()) {
             throw new \PDOException($e->getMessage());
         } else {
             return false;
         }
     }
 }
예제 #2
0
파일: Kit.php 프로젝트: deale/dt
 protected function createComponent($name)
 {
     echo '<pre>';
     print_r($name);
     echo '</pre>';
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
 }
예제 #3
0
파일: RenderTagInput.php 프로젝트: deale/dt
 protected function prepareField()
 {
     $type = $this->getField()->getAttrName('type');
     switch ($type) {
         case 'radio':
             exit('Stoped: <b>' . mf_get_spath() . '</b>');
             //      $return = '';
             //      $values = $property['values'];
             //      unset( $property['tag'], $property['values'], $property['marker'] );
             //
             //      foreach( $values as $key => $row )
             //      {
             //        if ( $key == ($row-1) )
             //          $key = $row;
             //
             //        if ( is_int( $key ) )
             //          $key = $row;
             //
             //        $return .= '<input type="radio" name="' . $property['name'].'" ';
             //        $return .= 'value="' . htmlspecialchars( $row ) . '" ';
             //
             //        foreach( $property as $name => $value )
             //        {
             //          if ( $name == 'value' )
             //            $return .= ( $property['value'] == $row ) ? 'checked="checked"' : '' ;
             //          else if ( in_array( $name, ['value', 'class'] ) )
             //            $return .= ( $property[$name] ) ? $name . '="' .$property[$name] . '" ' : '' ;
             //        }
             //
             //        foreach( (array)$property as $name => $value )
             //        {
             //          echo '<pre>';
             //          print_r( $property );
             //          echo '</pre>';
             //          exit( 'Stoped: <b>' . mf_get_spath() . '</b>' );
             //        }
             //
             //        $return .= "/>".self::t( $key, true )."\r\n";
             //      }
             break;
         case 'checkbox':
             break;
         case 'password':
         case 'file':
             $this->unsetAttr('value');
             break;
         case 'text':
             $this->unsetAttrs(['tag', 'marker']);
             break;
         case 'submit':
             $this->setAttr('value', \Components\Translate\Translate::t($this->getField()->getMarker()));
             break;
         case 'hidden':
             break;
         default:
             throw new \Exceptions\DevelException('_RENDER_INPUT_TAG_TYPE_NF__' . $this->getField()->getValidateName());
     }
     return true;
 }
예제 #4
0
파일: DB.php 프로젝트: deale/dt
 public static function prepare($query, $input_param = array())
 {
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
     if (empty($query)) {
         throw \Core\Exception\DevelException('_DATABASE_SQL_QUERY_EMPTY');
     }
     $obj = self::init();
     return $obj->prepare($query, $input_param);
 }
예제 #5
0
파일: Group.php 프로젝트: deale/dt
 public function __set($field, $value)
 {
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
     if (!$this->fieldExists($field)) {
         throw new Exception\DevelException('FIELD_DATA_NOT_EXISTS__' . $field);
     }
     $method = "set" . ucfirst($field);
     if (method_exists($this, $method)) {
         $this->{$method}($value);
     } else {
         $this->_flist[$field] = $value;
     }
     return $this;
 }
예제 #6
0
파일: ModelAbstract.php 프로젝트: deale/dt
 public function buildRel()
 {
     if (!$this->_initRelation) {
         return false;
     }
     $sql_part = '';
     foreach ($this->_initRelation as $name => $rel) {
         $model = $this->prepareRelation($name);
         $fname = $model->getField($model->getPrimary())->getName();
         if ($rel[0] == ModelAbstract::BELONGS_TO) {
             $this_row = $this->getField($rel[2])->getName();
             $sql_part .= "INNER JOIN `" . DB_PREFIX . "{$model->getTable()}` AS `{$name}`\n          ON `{$name}`.`{$fname}` = `{$this->_alias}`.`{$this_row}` ";
         } else {
             if ($rel[0] == ModelAbstract::HAS_MANY) {
             } else {
                 exit('Stoped: <b>' . mf_get_spath() . '</b>');
             }
         }
     }
     //$this -> _initRelation = [];
     return $sql_part;
 }
예제 #7
0
 public function logError()
 {
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
 }
예제 #8
0
파일: Builder.php 프로젝트: deale/dt
 public function getValue($field)
 {
     if (isset($this->_fields[$field])) {
         return $this->_fields[$field]->getValue();
     } else {
         exit($field . 'Stoped: <b>' . mf_get_spath(1) . '</b>');
     }
 }
예제 #9
0
 public static function log($code_type, $desc, $line = 0, $file = '', $mail = FALSE)
 {
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
     /**
      * Метод записи кодов(ошибок)
      *
      * Записывает ошибку в лог файл и по необходимости делает оповещение по ICQ.
      * Часть кода и идеи взяты со скриптов catalogue (автор UnKind) и goodbyte_click
      * (автор GoodByte aka Diks)
      *
      * Вид: log( тип кода(ошибки), описание, линия в файле, файл, отправка уведомления );
      * Пример: SysRecCode( 'ERROR', 'Тестовое уведомление', __LINE__, __FILE__, true );
      *
      * @param string  $code_type  тип ошибки
      * @param string  $desc       описание ошибки
      * @param integer $line       линия где возникла ошибка
      * @param string  $file       файл где возникла ошибка
      * @param bool    $mail       неоходимость уведомления
      *
      * @author DeAle <*****@*****.**>
      * @version 1.1
      * @return true
      */
     Library\LogDB::log($code_type, $desc, $line, $file, $mail);
     return true;
     //Определение типа ошибки
     switch ($code_type) {
         case 'WARNING':
             $type = 'warning';
             break;
             //Попытка взлома
         //Попытка взлома
         case 'FATAL_ERROR':
             $type = 'fatal';
             break;
             //Фатальная ошибка
         //Фатальная ошибка
         case 'SQL_ERROR':
             $type = 'sql';
             break;
             //Ошибки sql запросов
         //Ошибки sql запросов
         case 'ERROR':
             $type = 'error';
             break;
             //Обычные ошибки
         //Обычные ошибки
         case 'SYSTEM':
             $type = 'system';
             break;
             //Системные ошибки
         //Системные ошибки
         default:
             $type = 'unn';
             //Неизвестные.
     }
     if (!file_exists(KIT_LOG)) {
         mkdir(KIT_LOG, 0777);
     } else {
         if (substr(sprintf('%o', fileperms(KIT_LOG)), -4) != '0777') {
             chmod(KIT_LOG, 0777);
         }
     }
     if (!file_exists(KIT_LOG . '/' . $type)) {
         mkdir(KIT_LOG . '/' . $type, 0777);
     } else {
         if (substr(sprintf('%o', fileperms(KIT_LOG . '/' . $type)), -4) != '0777') {
             chmod(KIT_LOG . '/' . $type, 0777);
         }
     }
     if (!file_exists(KIT_LOG . '/list.txt')) {
         $fo = fopen(KIT_LOG . '/list.txt', 'w+');
         chmod(KIT_LOG . '/list.txt', 0777);
     } else {
         $fo = fopen(KIT_LOG . '/list.txt', 'a+');
     }
     fputs($fo, $type . " | " . htmlspecialchars($desc) . " | " . $file . " | " . $line . "\n");
     fclose($fo);
     $rand = rand(1, 999);
     $fp = fopen(KIT_LOG . '/' . $type . '/' . time() . '_' . $rand . '.txt', 'w');
     chmod(KIT_LOG . '/' . $type . '/' . time() . '_' . $rand . '.txt', 0777);
     $s_server = '';
     $s_request = '';
     $s_env = '';
     foreach ($_SERVER as $key => $value) {
         $s_server .= "'{$key}' = '{$value}'\n";
     }
     foreach ($_REQUEST as $key => $value) {
         $s_request .= "'{$key}' = '{$value}'\n";
     }
     foreach ($_ENV as $key => $value) {
         $s_env .= "'{$key}' = '{$value}'\n";
     }
     fputs($fp, "Дата: " . date('d/m/Y H:i:s') . "\n");
     fputs($fp, "IP: " . $_SERVER['REMOTE_ADDR'] . "\n");
     fputs($fp, "Host: " . gethostbyaddr($_SERVER['REMOTE_ADDR']) . "\n");
     fputs($fp, "ENV:\n" . htmlspecialchars(trim($s_env)) . "\n\n");
     fputs($fp, "SERVER:\n" . htmlspecialchars(trim($s_server)) . "\n\n");
     fputs($fp, "REQUEST:\n" . htmlspecialchars(trim($s_request)) . "\n");
     fputs($fp, "Класификация ошибки:\n");
     fputs($fp, $desc . "; (Файл:{$file} / Линия:{$line})\n");
     fclose($fp);
     return true;
 }
예제 #10
0
 /**
  * Загружает заведомо известные системные классы необходимые в одном экземпляре
  * @param string $name название класса
  * @return object
  */
 private function loadObj($name)
 {
     switch (mb_strtolower($name)) {
         case 'renderinfo':
             return new Render\RenderInfo();
             break;
             //      case 'renderpagination' :
             //        return new \View\RenderPagination;
             //        break;
         //      case 'renderpagination' :
         //        return new \View\RenderPagination;
         //        break;
         default:
             exit('Script stoped: <b>' . $name . mf_get_spath(1) . '</b>');
     }
 }
예제 #11
0
 protected function renderFormCheckbox($field, $options = null)
 {
     exit('Stoped: <b>' . mf_get_spath() . '</b>');
     $property = $this->getOptions($field);
     $property = array_merge($property, (array) $options);
     $tag = $field->getTag();
     unset($property['tag'], $property['marker']);
     if (isset($property['values']) and is_array($property['values'])) {
         $tmp = clone $field;
         $return = '';
         foreach ($property['values'] as $key => $row) {
             //$tmp -> setName( $tmp -> getName() . '[]' );
             $tmp->setMarker($row);
             $tmp->addOption('values', '');
             $tmp->addOption('name', $tmp->getName() . '[' . $row . ']');
             $return .= $this->buildFieldBox('drink', $tmp);
         }
     } else {
         ob_start();
         include $this->getBoxPath('Input');
         $return = ob_get_clean();
     }
     return $return;
 }
예제 #12
0
파일: LogDB.php 프로젝트: deale/dt
 /**
  * Метод записи кодов(ошибок)
  *
  * Записывает ошибку в лог файл и по необходимости делает оповещение по ICQ.
  * Часть кода и идеи взяты со скриптов catalogue (автор UnKind) и goodbyte_click
  * (автор GoodByte aka Diks)
  *
  * Вид: log( тип кода(ошибки), описание, линия в файле, файл, отправка уведомления );
  * Пример: SysRecCode( 'ERROR', 'Тестовое уведомление', __LINE__, __FILE__, true );
  *
  * @param string  $code_type  тип ошибки
  * @param string  $desc       описание ошибки
  * @param integer $line       линия где возникла ошибка
  * @param string  $file       файл где возникла ошибка
  * @param bool    $mail       неоходимость уведомления
  *
  * @author DeAle <*****@*****.**>
  * @version 1.1
  * @return true
  */
 public static function log($code_type, $desc, $line = 0, $file = '', $mail = FALSE)
 {
     return true;
     //Определение типа ошибки
     switch ($code_type) {
         case 'WARNING':
             $type = 'warning';
             break;
             //Попытка взлома
         //Попытка взлома
         case 'FATAL_ERROR':
             $type = 'fatal';
             break;
             //Фатальная ошибка
         //Фатальная ошибка
         case 'SQL_ERROR':
             $type = 'sql';
             break;
             //Ошибки sql запросов
         //Ошибки sql запросов
         case 'ERROR':
             $type = 'error';
             break;
             //Обычные ошибки
         //Обычные ошибки
         case 'SYSTEM':
             $type = 'system';
             break;
             //Системные ошибки
         //Системные ошибки
         default:
             $type = 'unn';
             //Неизвестные
     }
     self::connectDB();
     if ($code_type != 'WARNING') {
         $sql = "SELECT * FROM `" . DB_PREFIX . "_error_log`\n        WHERE\n          `error_type` = '{$type}'\n          AND `error_file` = '{$file}'\n          AND `error_file_line` = '{$line}'\n        LIMIT 1";
         $result = self::$db->query($sql);
         echo '<pre>';
         var_dump($result->fetch());
         echo '</pre>';
         if ($result->fetch()) {
             return null;
         }
     }
     $sql = "INSERT INTO `" . DB_PREFIX . "_error_log`\n              ( `error_type`, `error_desc`, `error_file`, `error_file_line`,\n              `error_date`, `error_server`, `error_request` )\n              VALUES ( :type, :desc, :file, :line, :date, :server, :request )";
     $input_param = array('type' => $type, 'desc' => $desc, 'file' => $file, 'line' => $line, 'date' => time(), 'server' => serialize($_SERVER), 'request' => serialize($_REQUEST));
     $pdo = self::$db;
     $prep = $pdo->prepare($sql);
     $prep->execute($input_param);
     if ($mail or $code_type == 'SQL_ERROR') {
         return true;
         exit('Stoped: <b>' . mf_get_spath() . '</b>');
         $mail = new \Core\Component\PHPMailer\PHPMailer();
         $mail->IsSMTP();
         $mail->SMTPAuth = true;
         // enable SMTP authentication
         $mail->SMTPSecure = "ssl";
         // sets the prefix to the servier
         $mail->Host = "smtp.gmail.com";
         // sets GMAIL as the SMTP server
         $mail->Port = 465;
         // set the SMTP port
         $mail->Username = "******";
         // GMAIL username
         $mail->Password = "******";
         // GMAIL password
         $mail->From = 'you_mail@dsdasd';
         $mail->FromName = "Webmaster";
         $mail->Subject = "This is the subject";
         $mail->AltBody = "This is the body when user views in plain text format";
         //Text Body
         $mail->WordWrap = 50;
         $mail->MsgHTML($text);
         $mail->AddAddress('*****@*****.**', "First Last");
         $mail->IsHTML(true);
         // send as HTML
         $mail->Send();
     }
     return true;
 }