-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdesign.php
More file actions
97 lines (97 loc) · 3.23 KB
/
Copy pathdesign.php
File metadata and controls
97 lines (97 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
error_reporting(0);
header('Content-Type: application/xml; charset=iso-8859-1');
if (isset($_GET['action'])) {
switch ($_GET['action'])
{
case 'savedesign':
$name = "default";
if (isset($_GET['name']))
$name = $_GET['name'];
$version = "design";
if (isset($_GET['ver']))
$version = $_GET['ver'];
if (ereg("[\\/.$;!?]", $name.$version) > 0)
print("<savedesign status='error'>Restricted character in design or version name");
elseif ($fp = fopen("design/".$name."/".$version.".xml", 'w')) {
$conf = file_get_contents("php://input");
fwrite($fp, $conf);
fclose($fp);
print("<savedesign status='success'>");
}
elseif (!is_writable("design/".$name."/".$version.".xml"))
print("<savedesign status='error'>Design has no write permission on server");
else
print("<savedesign status='error'>Unable to write design to file");
print("</savedesign>\n");
break;
case 'designlist':
if ($dh = opendir("design")) {
print("<designlist status='success'>\n");
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".." && is_dir("design/".$file)) {
echo "<design name='$file'>\n";
if ($fh = opendir("design/".$file)) {
while (($ver = readdir($fh)) !== false) {
if (substr($ver, -4) == ".xml")
echo "<version>".substr($ver, 0, -4)."</version>\n";
}
closedir($fh);
}
echo "</design>\n";
}
}
closedir($dh);
}
else
print("<designlist status='error'>Unable to find design folder on server\n");
print("</designlist>\n");
break;
case 'createdesign':
if (isset($_GET['name'])) {
$name = $_GET['name'];
if (file_exists("design/".$name))
print("<createdesign status='error'>Design already exists");
elseif (ereg("[\\/.$;!?]", $name) > 0)
print("<createdesign status='error'>Restricted character in design name");
elseif (mkdir("design/".$name, 0777) == false)
print("<createdesign status='error'>Unable to create design folder");
elseif ($fp = fopen("design/".$name."/design.xml", 'w')) {
fwrite($fp, "<?xml version='1.0'?><config><zones/></config>\n");
fclose($fp);
print("<createdesign status='success'>");
}
else
print("<createdesign status='error'>Unable to save new design");
}
else
print("<createdesign status='error'>No design name specified");
print("</createdesign>\n");
break;
case 'savefile':
print("<savefile status='error'>File save is not possible, please put the file manually in design folder on server</savefile>\n");
break;
case 'filelist':
$name = "default";
if (isset($_GET['name']))
$name = $_GET['name'];
if ($dh = opendir("design/".$name)) {
print("<filelist status='success'>\n");
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".." && substr($file, -4) != ".xml")
echo "<file>$file</file>\n";
}
closedir($dh);
}
else
print("<filelist status='error'>Unable to find design '$name' on server\n");
print("</filelist>\n");
break;
default:
print("<response status='error'/>Unknown action</response>\n");
break;
}
}
else
print("<response status='error'/>No action specified</response>\n");
?>