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; } } }
protected function createComponent($name) { echo '<pre>'; print_r($name); echo '</pre>'; exit('Stoped: <b>' . mf_get_spath() . '</b>'); }
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; }
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); }
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; }
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; }
public function logError() { exit('Stoped: <b>' . mf_get_spath() . '</b>'); }
public function getValue($field) { if (isset($this->_fields[$field])) { return $this->_fields[$field]->getValue(); } else { exit($field . 'Stoped: <b>' . mf_get_spath(1) . '</b>'); } }
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; }
/** * Загружает заведомо известные системные классы необходимые в одном экземпляре * @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>'); } }
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; }
/** * Метод записи кодов(ошибок) * * Записывает ошибку в лог файл и по необходимости делает оповещение по 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; }