Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by http://DeZender.Net
- * @ deZender (PHP7 Decoder for ionCube Encoder)
- *
- * @ Version : 4.0.9.0
- * @ Author : DeZender
- * @ Release on : 08.08.2019
- * @ Official site : http://DeZender.Net
- *
- */
- global $db;
- global $user;
- global $var;
- global $_POST;
- global $session;
- global $CFG;
- global $lang;
- global $dfo;
- global $pars;
- global $provisioning;
- if (!defined('SOURCEDESK')) {
- exit('Direct access to this file is not permitted.');
- }
- User::status();
- $tpl = 'bugtracker';
- $title = $lang['BUGTRACKER']['TITLE'];
- $var['products'] = unserialize($user->get()['software_products_info']);
- $already = [];
- foreach ($var['products'] as $k => $info) {
- if (in_array($info['product'], $already)) {
- unset($var['products'][$k]);
- }
- else {
- array_push($already, $info['product']);
- }
- }
- $var['success'] = false;
- $var['new'] = (isset($pars[0]) && ($pars[0] == 'report') ? 1 : 0);
- if (empty($_POST['pid']) && !empty($pars[1])) {
- $_POST['pid'] = $pars[1];
- }
- if (isset($_POST['submit'])) {
- $pid = $db->real_escape_string($_POST['pid']);
- $sql = $db->query('SELECT `name` FROM ' . $CFG['DB']['PREFIX'] . 'products WHERE ID = \'' . $pid . '\'');
- $maxSize = '3145728';
- if (is_array($_FILES['files'])) {
- foreach ($_FILES['files']['size'] as $size) {
- if ($maxSize < $size) {
- $sizeFail = true;
- }
- }
- }
- $obj = $provisioning->get()['software'];
- $obj->loadOptions($pid, true);
- $bdept = $obj->getOption('bugtracker_dept');
- if ($session->get('aid') != $_POST['aid']) {
- $var['error'] = $lang['GENERAL']['FORM_TOKEN_ERROR'];
- }
- else if ((trim($_POST['description']) == '') || (trim($_POST['reproduce']) == '') || !is_numeric($_POST['pid'])) {
- $var['error'] = $lang['GENERAL']['FORM_INCOMPLETE_ERROR'];
- }
- else if (($sql->num_rows != 1) || !in_array($pid, unserialize($user->get()['software_products']))) {
- $var['error'] = $lang['BUGTRACKER']['PRODUCT_WRONG'];
- }
- else if (is_array($_FILES['files']['name']) && (5 < count($_FILES['files']['name']))) {
- $var['error'] = $lang['BUGTRACKER']['TOO_MANY_FILES'];
- }
- else if (isset($sizeFail)) {
- $var['error'] = $lang['BUGTRACKER']['TOO_LARGE_FILE'];
- }
- else {
- $info = $sql->fetch_object();
- $name = @unserialize($info->name)[$CFG['LANG']] ?: $info->name;
- $desc = nl2br($_POST['description'] ?? '');
- $repr = nl2br($_POST['reproduce'] ?? '');
- $desc = str_replace("\r\n", '', $desc);
- $repr = str_replace("\r\n", '', $repr);
- $title = $db->real_escape_string(str_replace('%n', $name, $lang['BUGTRACKER']['TICKETTITLE']));
- $dept = intval($bdept != 0 ? $bdept : $CFG['BUGTRACKER_DEPT']);
- $text = $db->real_escape_string('<b>' . $lang['GENERAL']['DESCRIPTION'] . ':</b><br />' . $desc . '<br /><br /><b>' . $lang['BUGTRACKER']['STEPS_REPRODUCE'] . ':</b><br />' . $repr);
- $fromc = $user->get()['name'] . ' <' . $user->get()['mail'] . '>';
- $db->query('INSERT INTO ' . $CFG['DB']['PREFIX'] . 'support_tickets (subject, dept, created, updated, priority, sender, customer, cc, status) VALUES (\'' . $title . '\', ' . $dept . ', \'' . date('Y-m-d H:i:s') . '\', \'' . date('Y-m-d H:i:s') . '\', 3, \'' . $db->real_escape_string($fromc) . '\', ' . intval($user->get()['ID']) . ', \'\', 0)');
- $tid = $db->insert_id;
- $sql = $db->prepare('INSERT INTO ' . $CFG['DB']['PREFIX'] . 'support_ticket_answers (ticket, `time`, subject, message, priority, sender, staff) VALUES (?,?,?,?,?,?,?)');
- $sql->bind_param('isssisi', $tid, $a = date('Y-m-d H:i:s'), $title, $text, $prio = '3', $d = 'Bugtracker', $e = 0);
- $sql->execute();
- $mid = $db->insert_id;
- if (is_array($_FILES['files']) && (0 < count($_FILES['files']['name']))) {
- foreach ($_FILES['files']['name'] as $k => $name2) {
- if (empty($name2) || !is_uploaded_file($_FILES['files']['tmp_name'][$k])) {
- continue;
- }
- $path = basename(time() . '-' . rand(10000000, 99999999) . '-' . $name2);
- file_put_contents(__DIR__ . '/../files/tickets/' . $path, file_get_contents($_FILES['files']['tmp_name'][$k]));
- $db->query('INSERT INTO ' . $CFG['DB']['PREFIX'] . 'support_ticket_attachments (message, name, file) VALUES (' . $mid . ', \'' . $db->real_escape_string($name2) . '\', \'file#' . $db->real_escape_string($path) . '\')');
- }
- }
- $db->query('INSERT INTO ' . $CFG['DB']['PREFIX'] . 'bugtracker (`user`, `date`, `product`, `ticket`) VALUES (\'' . $user->get()['ID'] . '\', \'' . date('Y-m-d H:i:s') . '\', \'' . $db->real_escape_string($_POST['pid']) . '\', ' . $tid . ')');
- $var['success'] = true;
- $user->log('Bug gemeldet (Ticket #' . $tid . ')');
- $var['new'] = 0;
- if (($ntf = AdminNotification::getInstance('Neuer Bug')) !== false) {
- $ntf->set('product', $name);
- $ntf->set('customer', $user->get()['name']);
- .............................................................................................
- .........................................................
- ................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement