|
|
<?php |
|
|
|
|
|
ob_start(); |
|
|
require_once 'MySQL_funcs.php'; |
|
|
require 'MySQL_config.php'; |
|
|
require 'MySQL_access.php'; |
|
|
ob_end_clean(); |
|
|
|
|
|
session_start(); |
|
|
|
|
|
if (isset($_SESSION['userid'])) { |
|
|
$userid = $_SESSION['userid']; |
|
|
} else { |
|
|
$userid = '-guest-'; |
|
|
} |
|
|
|
|
|
$loggedin = false; |
|
|
if (strcmp($userid, '-guest-')) { |
|
|
$loggedin = true; |
|
|
} |
|
|
|
|
|
$path = htmlspecialchars($_REQUEST['marker']); |
|
|
if ((!isset($path)) || strstr($path, "..")) { |
|
|
header('HTTP/1.0 500 Error'); |
|
|
echo "<h1>500 Error</h1>"; |
|
|
echo "Bad marker: " . $path; |
|
|
exit(); |
|
|
} |
|
|
|
|
|
$parts = explode("/", $path); |
|
|
|
|
|
if (($parts[0] != "faces") && ($parts[0] != "_markers_")) { |
|
|
header('HTTP/1.0 500 Error'); |
|
|
echo "<h1>500 Error</h1>"; |
|
|
echo "Bad marker: " . $path; |
|
|
exit(); |
|
|
} |
|
|
|
|
|
initDbIfNeeded(); |
|
|
|
|
|
if ($parts[0] == "faces") { |
|
|
if (count($parts) != 3) { |
|
|
header('HTTP/1.0 500 Error'); |
|
|
echo "<h1>500 Error</h1>"; |
|
|
echo "Bad face: " . $path; |
|
|
cleanupDb(); |
|
|
exit(); |
|
|
} |
|
|
$ft = 0; |
|
|
if ($parts[1] == "8x8") { |
|
|
$ft = 0; |
|
|
} elseif ($parts[1] == '16x16') { |
|
|
$ft = 1; |
|
|
} elseif ($parts[1] == '32x32') { |
|
|
$ft = 2; |
|
|
} elseif ($parts[1] == 'body') { |
|
|
$ft = 3; |
|
|
} |
|
|
$pn = explode(".", $parts[2]); |
|
|
$stmt = $db->prepare('SELECT Image from ' . $dbprefix . 'Faces WHERE PlayerName=? AND TypeID=?'); |
|
|
$stmt->bind_param('si', $pn[0], $ft); |
|
|
$res = $stmt->execute(); |
|
|
$stmt->bind_result($timage); |
|
|
if ($stmt->fetch()) { |
|
|
header('Content-Type: image/png'); |
|
|
echo $timage; |
|
|
} else { |
|
|
header('Location: ../images/blank.png'); |
|
|
} |
|
|
} else { |
|
|
$in = explode(".", $parts[1]); |
|
|
$name = implode(".", array_slice($in, 0, count($in) - 1)); |
|
|
$ext = $in[count($in) - 1]; |
|
|
if (($ext == "json") && (strpos($name, "marker_") == 0)) { |
|
|
$world = substr($name, 7); |
|
|
$stmt = $db->prepare('SELECT Content from ' . $dbprefix . 'MarkerFiles WHERE FileName=?'); |
|
|
$stmt->bind_param('s', $world); |
|
|
$res = $stmt->execute(); |
|
|
$stmt->bind_result($timage); |
|
|
header('Content-Type: application/json'); |
|
|
if ($stmt->fetch()) { |
|
|
echo $timage; |
|
|
} else { |
|
|
echo "{ }"; |
|
|
} |
|
|
} else { |
|
|
$stmt = $db->prepare('SELECT Image from ' . $dbprefix . 'MarkerIcons WHERE IconName=?'); |
|
|
$stmt->bind_param('s', $name); |
|
|
$res = $stmt->execute(); |
|
|
$stmt->bind_result($timage); |
|
|
if ($stmt->fetch()) { |
|
|
header('Content-Type: image/png'); |
|
|
echo $timage; |
|
|
} else { |
|
|
header('Location: ../images/blank.png'); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
$stmt->close(); |
|
|
|
|
|
cleanupDb(); |
|
|
|
|
|
exit; |
|
|
|