<?php
 
 
    set_time_limit(300); // 5 minutes
 
    ob_start();
 
 
    $GLOBALS['HTTP_VARS'] = $_GET + $_POST;
 
    function get($key){
 
        if( isset( $GLOBALS['HTTP_VARS'][$key] ) )
 
            return $GLOBALS['HTTP_VARS'][$key];
 
    }
 
    function byte( $size ) {
 
        $unim = array("B","KB","MB","GB","TB","PB");
 
        $i = 0;
 
        while ($size>=1024) {
 
            $i++;
 
            $size = $size/1024;
 
        }
 
        return number_format($size,($i ? 2 : 0),",",".")." ".$unim[$i];
 
    }
 
    function myFlush(){
 
        ob_end_flush();
 
        ob_flush();
 
        flush();
 
        ob_start(); 
 
    }
 
    
 
    if( get('dump') && isset( $db ) ){
 
        $sql = base64_decode( $db['contents'] );
 
        $sql = gzuncompress( $sql );
 
        echo "Dump database <b>{$db['database']}</b><br/></br><textarea style=\"width:100%;padding:10px;\" rows=\"30\">$sql</textarea>";
 
        exit;
 
    }
 
 
    $dir = get('dir');
 
    $execute = isset( $settings['execute'] ) ? $dir . "/" . $settings['execute'] : null;
 
    $overwrite = get('overwrite');
 
    $install = get('install');
 
    
 
    //se install
 
    if( $install ){
 
 
        if( $dir != "" && substr( $dir, strlen($dir)-1,1 ) != "/" )
 
            $dir .= "/";
 
            
 
        if( $dir != '' && !file_exists( $dir ) )
 
            mkdir( $dir );
 
 
 
        if( get('db') ){
 
 
            $db_hostname=get('db_hostname');
 
            $db_username=get('db_username');
 
            $db_password=get('db_password');
 
            $db_database=get('db_database');
 
 
            if( mysql_connect( $db_hostname, $db_username, $db_password ) ){
 
                if( mysql_select_db( $db_database ) ){
 
 
                    $db_installed = false;
 
                    $db_error = false;
 
 
                    $sql = base64_decode( $db['structure'] );
 
                    $sql = gzuncompress( $sql );
 
                    $query = explode( ";\r", $sql );
 
                    echo "<br/><br/><h3>DATABASE: CREATE STRUCTURE</h3>";
 
                    for( $i=0; $i<count($query);$i++){
 
                        list($table,$rows) = each( $db['table_list'] );
 
                        echo "<div>$table ($rows rows)";
 
                        if( !mysql_query( $query[$i] ) ){
 
                            $error = true;
 
                            echo ' - <font color="red">ERROR</font>';
 
                        }
 
                        else
 
                            echo " - OK";
 
                        echo "</div>";
 
                        myFlush();
 
                    }
 
                    if( $error )
 
                        echo "<div>Ci sono stati errori</div>";
 
                    $error = false;
 
 
                    $sql = base64_decode( $db['contents'] );
 
                    $sql = gzuncompress( $sql );
 
                    $query = explode( ";\n", $sql );
 
                    
 
                    echo "<br/><br/><hr><h3>DATABASE: INSERT CONTENT</h3>";
 
                    for( $i=0; $i<count($query);$i++){
 
                        echo "<div>Query $i";
 
                        if( !mysql_query( $query[$i] ) ){
 
                            $error = true;
 
                            echo ' - <font color="red">ERROR</font> ' . mysql_error() . " <div class=\"error\">".$query[$i]."</div>";
 
                        }
 
                        else
 
                            echo " - OK";
 
                        echo "</div>";
 
                        myFlush();
 
                    }
 
                    if( $error )
 
                        echo "<div>Ci sono stati errori</div>";
 
 
                    mysql_close();
 
                    
 
                    
 
                    $db_installed = true;
 
                }
 
                else
 
                    echo "<div>Database $db_database not found!</div>";
 
            }
 
            
 
            if( $db_installed )
 
                echo "Database Installed";
 
        }
 
 
 
 
        echo "<br/><br/><hr><h3>CREATE DIRECTORY</h3>";
 
        foreach( $directory as $dirname => $dir_param )
 
            if( !file_exists( $dir . $dirname ) )
 
                mkdir( $dir . $dirname, $dir_param['perms'] );
 
        echo " - OK";
 
        myFlush();
 
                
 
        echo "<br/><br/><hr><h3>DEFLATING FILES</h3>";
 
        foreach( $file as $filename => $file_param ){
 
            
 
            if( !file_exists( $dir . $filename ) or $overwrite ){
 
                
 
                echo $dir . $filename . " ... ";
 
                myFlush();
 
                
 
                $fp = fopen( $dir . $filename, "w" );
 
                $contents = base64_decode( $file_param['contents'] );
 
                $contents = gzuncompress( $contents );
 
 
                fwrite( $fp, $contents, strlen( $contents ) );
 
                fclose( $fp );
 
                chmod( $dir . $filename, $file_param['perms'] );
 
 
                echo  " file write<br>";
 
                myFlush();
 
            }
 
        }
 
        
 
    echo " <br><hr><h1>Installation Complete!";
 
    
 
    if( $execute )
 
        echo " <a href=\"$execute\">Click here to go $execute</a>.";
 
        
 
    }else{
 
        ?>
 
        #_INSTALLATION_UI_#
 
        <?php
 
    }
 
 
?>
 
 |