122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
function cleanupDb()
 | 
						|
{
 | 
						|
    if (isset($db)) {
 | 
						|
        $db->close();
 | 
						|
        $db = null;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function abortDb($errormsg)
 | 
						|
{
 | 
						|
    header('HTTP/1.0 500 Error');
 | 
						|
    echo "<h1>500 Error</h1>";
 | 
						|
    echo $errormsg;
 | 
						|
    cleanupDb();
 | 
						|
    exit;
 | 
						|
}
 | 
						|
 | 
						|
function initDbIfNeeded()
 | 
						|
{
 | 
						|
    global $db, $dbhost, $dbuserid, $dbpassword, $dbname, $dbport;
 | 
						|
 | 
						|
    $pos = strpos($dbname, '?');
 | 
						|
 | 
						|
    if ($pos) {
 | 
						|
        $dbname = substr($dbname, 0, $pos);
 | 
						|
    }
 | 
						|
 | 
						|
    if (!$db) {
 | 
						|
        $db = mysqli_connect('p:' . $dbhost, $dbuserid, $dbpassword, $dbname, $dbport);
 | 
						|
        if (mysqli_connect_errno()) {
 | 
						|
            abortDb("Error opening database");
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
function getStandaloneFileByServerId($fname, $sid)
 | 
						|
{
 | 
						|
    global $db, $dbprefix;
 | 
						|
 | 
						|
    initDbIfNeeded();
 | 
						|
    $stmt = $db->prepare('SELECT Content from ' . $dbprefix . 'StandaloneFiles WHERE FileName=? AND ServerID=?');
 | 
						|
    $stmt->bind_param('si', $fname, $sid);
 | 
						|
    $res = $stmt->execute();
 | 
						|
    $stmt->store_result();
 | 
						|
    $stmt->bind_result($content);
 | 
						|
    if ($stmt->fetch()) {
 | 
						|
        $rslt = $content;
 | 
						|
    } else {
 | 
						|
        $rslt = null;
 | 
						|
    }
 | 
						|
    $stmt->close();
 | 
						|
    return $rslt;
 | 
						|
}
 | 
						|
 | 
						|
function getStandaloneFile($fname)
 | 
						|
{
 | 
						|
    global $serverid;
 | 
						|
 | 
						|
    if (!isset($serverid)) {
 | 
						|
        $serverid = 0;
 | 
						|
        if (isset($_REQUEST['serverid'])) {
 | 
						|
            $serverid = $_REQUEST['serverid'];
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return getStandaloneFileByServerId($fname, $serverid);
 | 
						|
}
 | 
						|
 | 
						|
function updateStandaloneFileByServerId($fname, $sid, $content)
 | 
						|
{
 | 
						|
    global $db, $dbprefix;
 | 
						|
 | 
						|
    initDbIfNeeded();
 | 
						|
    $stmt = $db->prepare('UPDATE ' . $dbprefix . 'StandaloneFiles SET Content=? WHERE FileName=? AND ServerID=?');
 | 
						|
    $stmt->bind_param('ssi', $content, $fname, $sid);
 | 
						|
    $res = $stmt->execute();
 | 
						|
    $stmt->close();
 | 
						|
    if (!$res) {
 | 
						|
        $res = insertStandaloneFileByServerId($fname, $sid, $content);
 | 
						|
    }
 | 
						|
    return $res;
 | 
						|
}
 | 
						|
 | 
						|
function updateStandaloneFile($fname, $content)
 | 
						|
{
 | 
						|
    global $serverid;
 | 
						|
 | 
						|
    if (!isset($serverid)) {
 | 
						|
        $serverid = 0;
 | 
						|
        if (isset($_REQUEST['serverid'])) {
 | 
						|
            $serverid = $_REQUEST['serverid'];
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return updateStandaloneFileByServerId($fname, $serverid, $content);
 | 
						|
}
 | 
						|
 | 
						|
function insertStandaloneFileByServerId($fname, $sid, $content)
 | 
						|
{
 | 
						|
    global $db, $dbprefix;
 | 
						|
 | 
						|
    initDbIfNeeded();
 | 
						|
    $stmt = $db->prepare('INSERT INTO ' . $dbprefix . 'StandaloneFiles (Content,FileName,ServerID) VALUES (?,?,?);');
 | 
						|
    $stmt->bind_param('ssi', $content, $fname, $sid);
 | 
						|
    $res = $stmt->execute();
 | 
						|
    $stmt->close();
 | 
						|
    return $res;
 | 
						|
}
 | 
						|
 | 
						|
function insertStandaloneFile($fname, $content)
 | 
						|
{
 | 
						|
    global $serverid;
 | 
						|
 | 
						|
    if (!isset($serverid)) {
 | 
						|
        $serverid = 0;
 | 
						|
        if (isset($_REQUEST['serverid'])) {
 | 
						|
            $serverid = $_REQUEST['serverid'];
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return insertStandaloneFileByServerId($fname, $serverid, $content);
 | 
						|
}
 |