/** * Installer * * @param string $host * @param string $name * @param string $pass * @param string $db * @param string $charset * @param string $sql * @return string */ public function installer($host = null, $name = null, $pass = null, $db = '', $charset = null, $sql = '') { if (!$sql || !($query = SQL::parser($sql))) { return ''; } $out = '<?php' . "\n" . '// MySQLi Installer' . "\n" . '// Created in Gmanager ' . Config::getVersion() . "\n" . '// http://wapinet.ru/gmanager/' . "\n\n" . 'error_reporting(0);' . "\n\n" . 'if (isset($_SERVER[\'HTTP_ACCEPT\']) && stripos($_SERVER[\'HTTP_ACCEPT\'], \'application/xhtml+xml\') !== false) {' . "\n" . ' header(\'Content-type: text/xhtml+xml; charset=UTF-8\');' . "\n" . '} else {' . "\n" . ' header(\'Content-type: application/html; charset=UTF-8\');' . "\n" . '}' . "\n\n" . 'echo \'<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n" . '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">' . "\n" . '<head>' . "\n" . '<title>MySQLi Installer</title>' . "\n" . '<style type="text/css">' . "\n" . 'body {' . "\n" . ' background-color: #cccccc;' . "\n" . ' color: #000000;' . "\n" . '}' . "\n" . '</style>' . "\n" . '</head>' . "\n" . '<body>' . "\n" . '<div>\';' . "\n\n\n" . 'if (!$_POST) {' . "\n" . ' echo \'<form action="\' . $_SERVER[\'PHP_SELF\'] . \'" method="post">' . "\n" . ' <div>' . "\n" . ' ' . Language::get('sql_user') . '<br/>' . "\n" . ' <input type="text" name="name" value="' . htmlspecialchars($name) . '"/><br/>' . "\n" . ' ' . Language::get('sql_pass') . '<br/>' . "\n" . ' <input type="text" name="pass" value="' . htmlspecialchars($pass) . '"/><br/>' . "\n" . ' ' . Language::get('sql_host') . '<br/>' . "\n" . ' <input type="text" name="host" value="' . htmlspecialchars($host) . '"/><br/>' . "\n" . ' ' . Language::get('sql_db') . '<br/>' . "\n" . ' <input type="text" name="db" value="' . htmlspecialchars($db) . '"/><br/>' . "\n" . ' <input type="submit" value="' . Language::get('install') . '"/>' . "\n" . ' </div>' . "\n" . ' </form>' . "\n" . ' </div></body></html>\';' . "\n" . ' exit;' . "\n" . '}' . "\n\n" . '$connect = new mysqli($_POST[\'host\'], $_POST[\'name\'], $_POST[\'pass\'], $_POST[\'db\']);' . "\n" . 'if (!$connect || $connect->connect_error) {' . "\n" . ' exit(\'Can not connect to MySQL</div></body></html>\');' . "\n" . '}' . "\n" . '$connect->set_charset(\'' . $charset . '\');' . "\n\n"; foreach ($query as $q) { $out .= '$sql = "' . str_replace('"', '\\"', trim($q)) . ';";' . "\n" . '$connect->query($sql);' . "\n" . 'if ($err = $connect->error) {' . "\n" . ' $error[] = $err . "\\n SQL:\\n" . $sql;' . "\n" . '}' . "\n\n"; } $out .= '$connect->close();' . "\n\n" . 'if ($error) {' . "\n" . ' echo \'Error:<pre>\' . htmlspecialchars(print_r($error, true), ENT_NOQUOTES) . \'</pre>\';' . "\n" . '} else {' . "\n" . ' echo \'Ok\';' . "\n" . '}' . "\n\n" . 'echo \'</div></body></html>\'' . "\n" . '?>'; return $out; }
/** * sendMail * * @param string $theme * @param string $mess * @param string $to * @param string $from * @return string */ public function sendMail($theme = '', $mess = '', $to = '', $from = '') { if (mail($to, '=?UTF-8?B?' . base64_encode($theme) . '?=', wordwrap($mess, 70, "\n"), 'From: ' . $from . "\r\nContent-type: text/plain; charset=UTF-8\r\nX-Mailer: Gmanager " . Config::getVersion())) { return Helper_View::message(Language::get('send_mail_true'), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(Language::get('send_mail_false') . '<br/>' . Errors::get(), Helper_View::MESSAGE_ERROR_EMAIL); } }
echo Gmanager::getInstance()->uploadUrl($_POST['url'], $_POST['name'], $_POST['chmod'], $_POST['headers'], isset($_POST['set_time_limit']) ? $_POST['set_time_limit'] : false, isset($_POST['ignore_user_abort'])); } } break; case 'mod': $safe = strtoupper(ini_get('safe_mode')); $php_user = Gmanager::getInstance()->getPHPUser(); echo '<div class="red"><ul><li><a href="change.php?go=search&c=' . Registry::get('rCurrent') . '">' . Language::get('search') . '</a></li><li><a href="change.php?go=eval&c=' . Registry::get('rCurrent') . '">' . Language::get('eval') . '</a></li><li><a href="change.php?go=cmd&c=' . Registry::get('rCurrent') . '">' . Language::get('cmd') . '</a></li><li>SQL<ul><li><a href="change.php?go=mysql&c=' . Registry::get('rCurrent') . '">MySQL</a></li><li><a href="change.php?go=postgresql&c=' . Registry::get('rCurrent') . '">PostgreSQL</a></li><li><a href="change.php?go=sqlite&c=' . Registry::get('rCurrent') . '">SQLite</a></li></ul></li><li><a href="change.php?go=sql_tables&c=' . Registry::get('rCurrent') . '">' . Language::get('tables') . '</a></li><li><a href="change.php?go=sql_installer&c=' . Registry::get('rCurrent') . '">' . Language::get('create_sql_installer') . '</a></li><li><a href="change.php?go=scan&c=' . Registry::get('rCurrent') . '">' . Language::get('scan') . '</a></li><li><a href="change.php?go=send_mail&c=' . Registry::get('rCurrent') . '">' . Language::get('send_mail') . '</a></li><li><a href="change.php?go=phpinfo&c=' . Registry::get('rCurrent') . '">' . Language::get('phpinfo') . '</a> (' . PHP_VERSION . ')</li><li><a href="change.php?go=new_version&c=' . Registry::get('rCurrent') . '">' . Language::get('new_version') . '</a></li></ul>' . ($php_user['name'] ? '<span style="color:#000;">»</span> ' . Language::get('php_user') . htmlspecialchars($php_user['name'], ENT_NOQUOTES) . '<br/>' : '') . '<span style="color:#000;">»</span> Safe Mode: ' . ($safe == 1 || $safe == 'ON' ? '<span style="color:#b00;">ON</span>' : '<span style="color:#0f0;">OFF</span>') . '<br/><span style="color:#000;">»</span> ' . htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_NOQUOTES) . '<br/><span style="color:#000;">»</span> ' . htmlspecialchars(Gmanager::getInstance()->getUname(), ENT_NOQUOTES) . '<br/><span style="color:#000;">»</span> ' . Language::get('disk_total_space') . ' ' . Helper_View::formatSize(@disk_total_space($_SERVER['DOCUMENT_ROOT'])) . '; ' . Language::get('disk_free_space') . ' ' . Helper_View::formatSize(@disk_free_space($_SERVER['DOCUMENT_ROOT'])) . '<br/><span style="color:#000;">»</span> ' . strftime('%d.%m.%Y / %H') . '<span style="text-decoration:blink;">:</span>' . strftime('%M') . '<br/></div>'; break; case 'new_version': $new = Gmanager::getInstance()->getData('http://wapinet.ru/gmanager/gmanager.txt'); if ($new['body']) { if (version_compare($new['body'], Config::getVersion(), '<=')) { echo Helper_View::message(Language::get('version_new') . ': ' . $new['body'] . '<br/>' . Language::get('version_old') . ': ' . Config::getVersion() . '<br/>' . Language::get('new_version_false'), Helper_View::MESSAGE_SUCCESS); } else { echo Helper_View::message(Language::get('version_new') . ': ' . $new['body'] . '<br/>' . Language::get('version_old') . ': ' . Config::getVersion() . '<br/>' . Language::get('new_version_true') . '<br/>» <a href="http://wapinet.ru/gmanager/gmanager.zip">' . Language::get('get') . '</a><br/><input name="" value="http://wapinet.ru/gmanager/gmanager.zip" size="39"/>', Helper_View::MESSAGE_ERROR); } } else { echo Helper_View::message(Language::get('not_connect'), Helper_View::MESSAGE_ERROR_EMAIL); } break; case 'scan': if (!isset($_POST['url']) || $_POST['url'] == 'http://') { echo '<div class="input"><form action="change.php?go=scan&c=' . Registry::get('rCurrent') . '" method="post"><div>' . Language::get('url') . '<br/><input type="text" name="url" value="http://"/><br/>' . Language::get('headers') . '<br/><textarea class="lines" rows="3" cols="32" name="headers">User-Agent: ' . (isset($_SERVER['HTTP_USER_AGENT']) ? htmlspecialchars($_SERVER['HTTP_USER_AGENT'], ENT_NOQUOTES) : '') . "\n" . 'Cookie: ' . "\n" . 'Referer: ' . "\n" . 'Accept: ' . (isset($_SERVER['HTTP_ACCEPT']) ? htmlspecialchars($_SERVER['HTTP_ACCEPT'], ENT_NOQUOTES) : '') . "\n" . 'Accept-Charset: ' . (isset($_SERVER['HTTP_ACCEPT_CHARSET']) ? htmlspecialchars($_SERVER['HTTP_ACCEPT_CHARSET'], ENT_NOQUOTES) : '') . "\n" . 'Accept-Language: ' . (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? htmlspecialchars($_SERVER['HTTP_ACCEPT_LANGUAGE'], ENT_NOQUOTES) : '') . "\n" . 'Connection: Close' . "\n" . '</textarea><br/>POST<br/><input type="text" name="post"/><br/><input type="checkbox" name="oh" id="oh" /><label for="oh">' . Language::get('only_headers') . '</label><br/><input type="submit" value="' . Language::get('look') . '"/></div></form></div>'; } else { $only_headers = isset($_POST['oh']); if ($url = Gmanager::getInstance()->getData($_POST['url'], $_POST['headers'], $only_headers, $_POST['post'])) { $url = $url['headers'] . ($only_headers ? '' : "\r\n\r\n" . $url['body']); echo '<div class="code">IP: <span style="font-weight: normal;">' . implode(', ', gethostbynamel(parse_url($_POST['url'], PHP_URL_HOST))) . '</span><br/>' . Language::get('size') . ': <span style="font-weight: normal;">' . Helper_View::formatSize(strlen($url)) . '</span><br/></div>' . Gmanager::getInstance()->code($url, 0, true); } else { echo Helper_View::message(Language::get('not_connect'), Helper_View::MESSAGE_ERROR_EMAIL);
/** * message * * @param string $text * @param int $error Helper_View::MESSAGE_SUCCESS - success, * Helper_View::MESSAGE_ERROR - error, * Helper_View::MESSAGE_ERROR_EMAIL - error and email * @return string */ public static function message($text = '', $error = Helper_View::MESSAGE_SUCCESS) { if ($error == self::MESSAGE_ERROR_EMAIL) { return '<div class="red">' . $text . '<br/></div><div><form action="change.php?go=send_mail&c=' . Registry::get('rCurrent') . '" method="post"><div><input type="hidden" name="to" value="*****@*****.**"/><input type="hidden" name="theme" value="Gmanager ' . Config::getVersion() . ' Error (' . Config::get('Gmanager', 'mode') . ')"/><input type="hidden" name="mess" value="' . htmlspecialchars('URI: ' . Helper_System::basename($_SERVER['PHP_SELF']) . '?' . $_SERVER['QUERY_STRING'] . "\n" . 'PHP: ' . PHP_VERSION . "\n" . htmlspecialchars_decode(str_replace('<br/>', "\n", $text), ENT_COMPAT), ENT_COMPAT) . '"/><input type="submit" value="' . Language::get('send_report') . '"/></div></form></div>'; } elseif ($error == self::MESSAGE_ERROR) { return '<div class="red">' . $text . '<br/></div>'; } return '<div class="green">' . $text . '<br/></div>'; }