} if (!preg_match('/^([a-z0-9\\-]+\\.)?[a-z0-9\\-]+\\.[a-z]{2,4}|[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$/', $host)) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . YOU_MUST_PROVIDE_A_VALID_HOST . '</p>'))); } if (!empty($port) && !preg_match('/[0-9]+/', $port)) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . str_replace('%port%', $port, IS_NOT_A_VALID_PORT) . '</p>'))); } if (!preg_match('/^[0-9A-Z]{5}\\-[0-9A-Z]{5}\\-[0-9A-Z]{5}$/', $key)) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . A_VALID_API_KEY_SHOULD_LOOK_LIKE . '</p>'))); } if (!preg_match('/^[a-f0-9]{40}$/', $hash)) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . A_VALID_API_HASH_SHOULD_BE_40_CHARACTERS_IN_LENGTH . '</p>'))); } $db->connect(); // Make sure virtualization is valid if (!getVz($vzId)) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . INVALID_VIRTUALIZATION_SELECTED . '</p>'))); } // Check if key exists $db->select('vm', '*', 'key=\'' . $db->escape($key) . '\' AND user_id=\'' . $db->escape($_SESSION['user_id']) . '\'' . ($vmId ? ' AND vm_id != \'' . $db->escape($vmId) . '\'' : '')); if ($db->affectedRows() == 1) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . API_KEY_ALREADY_EXISTS . '</p>'))); } // Try to access the API for validation require_once LIBRARIES . 'solusvm.class.php'; $svm = new SolusVM(); $svm->setProtocol($isHttps ? 'https' : 'http'); $svm->setHost($host); $svm->setPort($port); $svm->setKey($key); $svm->setHash($hash);
...</div> <form> <label for="label"><?php echo LABEL; ?> </label> <input type="text" name="label" id="label" value="" maxlength="100" class="text" style="width:355px;" /> <span class="red">*</span> <label for="vzTypeId"><?php echo VIRTUALIZATION; ?> </label> <select name="vzId" id="vzId" class="vz"> <option value="0"> </option> <?php $vzTypes = getVz(); foreach ($vzTypes as $vzType) { echo '<option value="' . $vzType['id'] . '" class="' . $vzType['code'] . '"' . ($vm['vz_id'] == $vzType['id'] ? ' selected' : '') . '> ' . $vzType['name'] . '</option>'; } ?> </select> <span class="red">*</span> <ul class="same-row"> <li><label for="host"><?php echo HOST; ?> </label></li> <li style="width:276px;"> </li> <li><label for="port"><?php echo PORT; ?>
# along with this program. If not, see <http://www.gnu.org/licenses/>. # # # ########################################################################### defined('INDEX') or die('Access is denied.'); if (!isset($_SESSION['user_id'])) { die('Access is denied.'); } if (!isset($_SESSION['user_id'])) { die(json_encode(array('status' => 'error', 'message' => '<p class="red">' . SESSION_EXPIRED . '</p>'))); } $keyword = strtolower($form->post('keyword')); $sort = $form->post('sort'); $db->connect(); $order = $sort == 'vz' ? 'v.vz_id,LOWER(v.label)' : 'LOWER(v.label)'; if (substr($keyword, 0, 4) == 'tag:') { $rows = $db->execute('SELECT v.vm_id,v.label,v.vz_id FROM vm v LEFT JOIN tag_linker tl ON v.vm_id=tl.vm_id LEFT JOIN tag t ON t.tag_id=tl.tag_id WHERE v.user_id=\'' . $db->escape($_SESSION['user_id']) . '\' AND LOWER(t.tag_name)=\'' . $db->escape(substr($keyword, 4)) . '\' GROUP BY v.vm_id ORDER BY ' . $order); } else { $rows = $db->execute('SELECT v.vm_id,v.label,v.vz_id FROM vm v LEFT JOIN tag_linker tl ON v.vm_id=tl.vm_id LEFT JOIN tag t ON t.tag_id=tl.tag_id WHERE v.user_id=\'' . $db->escape($_SESSION['user_id']) . '\'' . ($keyword ? ' AND (LOWER(v.label) LIKE \'%' . $db->escape($keyword) . '%\' OR LOWER(v.host) LIKE \'%' . $db->escape($keyword) . '%\' OR LOWER(t.tag_name) LIKE \'%' . $db->escape($keyword) . '%\')' : '') . ' GROUP BY v.vm_id ORDER BY ' . $order); } if ($db->affectedRows() == 0) { die(json_encode(array())); } if (isset($_SESSION['status'])) { $status = get_object_vars(json_decode($_SESSION['status'])); } foreach ($rows as $row) { $vz = getVz($row['vz_id']); $vzCode = substr($vz['code'], 0, 3) == 'xen' ? 'xen' : $vz['code']; $servers[] = array('id' => $row['vm_id'], 'status' => isset($status['vm-' . $row['vm_id']]) ? $status['vm-' . $row['vm_id']] : 'connect-unknown', 'label' => $row['label'], 'vz' => $vzCode ? $vzCode : ''); } echo json_encode($servers);