示例#1
0
/**
 * This file is a part of MyWebSQL package
 *
 * @file:      modules/import.php
 * @author     Samnan ur Rehman
 * @copyright  (c) 2008-2014 Samnan ur Rehman
 * @web        http://mywebsql.net
 * @license    http://mywebsql.net/license
 */
function processRequest(&$db)
{
    $importDone = FALSE;
    $message = '';
    $refresh = '0';
    $max_upload_size = min(bytes_value(ini_get('post_max_size')), bytes_value(ini_get('upload_max_filesize'))) / 1024;
    $max_upload_size_text = $max_upload_size < 1024 ? $max_upload_size . 'KB' : $max_upload_size / 1024 . ' MB';
    if (isset($_FILES['impfile'])) {
        if (v($_FILES['impfile']['tmp_name']) != '' && file_exists($_FILES['impfile']['tmp_name'])) {
            include BASE_PATH . "/lib/sqlparser.php";
            $parser = new sqlParser($db);
            $parser->stopOnError(v($_REQUEST['ignore_errors']) == 'yes' ? FALSE : TRUE);
            //$parser->setCallback( 'report_progress', $module_id );
            //$parser->collectStats(v($_REQUEST['stats']) == 'yes');
            Session::close();
            $result = $parser->parse($_FILES['impfile']['tmp_name'], $_FILES['impfile']['size'], $_FILES['impfile']['name']);
            $executed = $parser->getExecutedQueries();
            $failed = $parser->getFailedQueries();
            if (!$result || $executed > 0 || $failed > 0) {
                $message .= '<div class="message ui-state-default">' . str_replace('{{NUM}}', $executed, __('{{NUM}} queries successfully executed'));
                $message .= '<br />[ ' . str_replace('{{NUM}}', $parser->getRowsAffected(), __('{{NUM}} record(s) were affected')) . '. ]</div>';
                if ($failed > 0) {
                    $message_tmp = $failed > 1 ? str_replace('{{NUM}}', $failed, __('{{NUM}} queries failed to execute')) : __('Error occurred while executing the query');
                    $message .= '<div class="message ui-state-error">' . $message_tmp . '</div>';
                    if ($failed == 1) {
                        $message .= '<div class="message ui-state-highlight">' . htmlspecialchars($parser->getError()) . '</div>';
                        $message .= '<div class="sql-text ui-state-error">' . htmlspecialchars($parser->getLastQuery()) . '</div>';
                    }
                }
            } else {
                $message .= '<div class="message ui-state-default">' . __('No queries were executed during import') . '.</div>';
            }
        } else {
            $message .= '<div class="message ui-state-error">' . __('File upload failed. Please try again') . '.</div>';
        }
        $importDone = TRUE;
    }
    if (!$importDone) {
        $message = '<div class="message ui-state-default">' . str_replace('{{SIZE}}', $max_upload_size_text, __('Maximum upload filesize is {{SIZE}}'));
        $message .= '<br/>' . str_replace('{{LIST}}', valid_import_files(), __('Supported filetypes / extensions are: ({{LIST}})')) . '</div>';
    } else {
        $refresh = '1';
    }
    $replace = array('MESSAGE' => $message, 'MAX_SIZE' => $max_upload_size, 'REFRESH' => $refresh);
    echo view('import', $replace, array('progress' => phpCheck(5.4)));
}
示例#2
0
	<?php 
$all_pass = true;
$failed = false;
$php_version = false;
$openssl = false;
$bcmath = false;
$gmp = false;
$uri = false;
?>

	<table cellspacing="0">
		<tr>
			<th>PHP Version</th>
			<?php 
if (phpCheck(5.0)) {
    $php_version = true;
    ?>
				<td class="pass"><?php 
    echo PHP_VERSION;
    ?>
</td>
			<?php 
} else {
    $failed = TRUE;
    ?>
				<td class="fail">MyWebSQL requires PHP 5.0 or newer, your current PHP version is <?php 
    echo PHP_VERSION;
    ?>
.</td>
			<?php 
示例#3
0
 function getFieldValues($table, $name)
 {
     $sql = 'show full fields from `' . $table . '` where `Field` = \'' . $this->escape($name) . '\'';
     $res = mysqli_query($this->conn, $sql);
     if (mysqli_num_rows($res) == 0) {
         return (object) array('list' => array());
     }
     $row = mysqli_fetch_array($res);
     $type = $row['Type'];
     preg_match('/enum\\((.*)\\)$/', $type, $matches);
     if (!isset($matches[1])) {
         preg_match('/set\\((.*)\\)$/', $type, $matches);
     }
     if (isset($matches[1])) {
         if (phpCheck(5.3)) {
             $regex = "/\\('(.*)'\\)/";
             preg_match_all($regex, $row['Type'], $list);
             return array_map('replace_single_quotes', explode("','", $list[1][0]));
         } else {
             $list = explode(',', $matches[1]);
             foreach ($list as $k => $v) {
                 $list[$k] = str_replace("\\'", "'", trim($v, " '"));
             }
             return $list;
         }
     }
     return (object) array('list' => array());
 }