mirror of
https://github.com/cytopia/devilbox.git
synced 2025-06-24 18:25:17 +00:00
Compare commits
525 Commits
Author | SHA1 | Date | |
---|---|---|---|
eecc791540 | |||
9f868c7e04 | |||
5c4c856b84 | |||
04ddd07312 | |||
7fcd82be2a | |||
9e469cdc72 | |||
ea08824172 | |||
535a398bff | |||
02464bc6d5 | |||
5a63ceb105 | |||
44b4aa527a | |||
2f73e97f64 | |||
b03a9a1ead | |||
05af938cb8 | |||
42383489bd | |||
91ba18f3bd | |||
0765c02aa5 | |||
84c1729a81 | |||
fdce2ebd8e | |||
d6cabd2e09 | |||
c7b777dfb2 | |||
6453954565 | |||
3248c81c62 | |||
c8c6f914c2 | |||
139dc7cec7 | |||
5c57f8a1a7 | |||
e7206f2e30 | |||
babefe4160 | |||
8b50316787 | |||
494cb061c3 | |||
3aacd81d26 | |||
e5ec9c5e44 | |||
14d759d18b | |||
18a07a15f7 | |||
f0834dc9c5 | |||
ba233165ab | |||
79d4618345 | |||
8c121c5457 | |||
7bb469f3c7 | |||
96041807a0 | |||
068545a2a9 | |||
e59bd1098f | |||
88eb3ae68d | |||
b75e04dcab | |||
fbb475123f | |||
3cf7321d3b | |||
7615dfa443 | |||
2fbdd56a0d | |||
5eee20877a | |||
76a825b887 | |||
2b1dc0efc2 | |||
a23b23b774 | |||
8689bc993e | |||
9b3e3aa738 | |||
e713c72bfa | |||
b5c3b13dce | |||
0570e2cdf2 | |||
17fd7108f1 | |||
7b4b2370ff | |||
271313c025 | |||
e09ff53d58 | |||
d6a58ff1ac | |||
474b8b2121 | |||
04812a5131 | |||
86b4247b81 | |||
63fa5e6811 | |||
d7a2bcb266 | |||
f5cc9bcee6 | |||
618e485460 | |||
6424e6e426 | |||
cc1ce40858 | |||
474565a66d | |||
a6348344f1 | |||
4012bfd2cf | |||
3d4b3e059d | |||
2a4316079a | |||
b445e9f4e2 | |||
50904504cf | |||
4f8e5ee948 | |||
7f9771081a | |||
64b08f61bf | |||
794f037727 | |||
4502497371 | |||
7d184a5e55 | |||
08ebab728c | |||
d9bb7419cc | |||
099751a8b9 | |||
7d5e4feada | |||
33082a98ed | |||
71899930aa | |||
f6ac5fc776 | |||
a621d4b6f7 | |||
6f79f007de | |||
08bc17d186 | |||
a562c85dac | |||
ed2d12dbba | |||
2c69626a1d | |||
ea7b2c9499 | |||
5f61d9d8e6 | |||
83a3829206 | |||
5fec8a7e09 | |||
8bd7dd6157 | |||
68636deeaf | |||
b1f0e12111 | |||
c587e97eba | |||
9b41a2468c | |||
dc641b9298 | |||
75236067e5 | |||
d56a7db02a | |||
7de5103fcc | |||
ca002781c2 | |||
107f689595 | |||
5a29be3f92 | |||
2180e8a287 | |||
41d22a804d | |||
b5ced99621 | |||
fc791c497d | |||
76936c9afd | |||
0f28572ef1 | |||
a5f7e4885d | |||
10459db183 | |||
77950f77bc | |||
f0192cce73 | |||
e215dd610e | |||
e32fad5185 | |||
43235e69ba | |||
6fd9ea1b72 | |||
9110dd0f38 | |||
7aecaa22ba | |||
5c0f778666 | |||
e1e60c736e | |||
e73604dfb5 | |||
5a23138268 | |||
5c89cd2fe4 | |||
ab7e3b7279 | |||
dcad1b2387 | |||
abb7b8dd5d | |||
2465e29628 | |||
51e951ef3b | |||
7f1fc72e3e | |||
d9fe19a8d7 | |||
cc73cefd3f | |||
f3ce95b6b8 | |||
7b190170c5 | |||
c7071e527e | |||
34e946e50f | |||
2df763d147 | |||
e26bae0d83 | |||
6dcde6b1b7 | |||
8726acfb5a | |||
996874daa1 | |||
1e001b616a | |||
865860affe | |||
2c4fd49478 | |||
909d72dbbe | |||
382d7001e1 | |||
514fab16e3 | |||
d1bbd5d92b | |||
3f5555ee19 | |||
38460eaa1a | |||
033ed60148 | |||
e0e37bb64d | |||
1f8390c8a6 | |||
00c43bf8b7 | |||
708962647c | |||
654b6375fb | |||
f1ed392b94 | |||
2381b5b5fb | |||
4107481747 | |||
3c1cf64b15 | |||
5a0b275610 | |||
930bb1c7fc | |||
776ec5d517 | |||
959aa29f92 | |||
e254d01a65 | |||
aaaab931b7 | |||
e79eb87cbb | |||
b42e3eb964 | |||
23b6ac07be | |||
051d723d13 | |||
ab3df0c5dc | |||
aac3da3111 | |||
0f1de08356 | |||
c04fa23578 | |||
062aa18730 | |||
1fa6bc7008 | |||
5fce8da961 | |||
bb2288a461 | |||
f454a032c9 | |||
cc0c947d6b | |||
c87201db13 | |||
5bd184c609 | |||
6f00608fba | |||
352a8d3b40 | |||
2b5336c342 | |||
54bddc820a | |||
8ad5b4ef61 | |||
5d11a09866 | |||
3990d2de71 | |||
20383fee48 | |||
fb193aba20 | |||
f5b03f22b7 | |||
0cb54d34ef | |||
32add6d2a0 | |||
bf0bc75b90 | |||
d8e60644e8 | |||
4ad3596daa | |||
9752af1363 | |||
769b34c3e6 | |||
69bb14288d | |||
c58b1e3db3 | |||
1ad6de7e4c | |||
cac8a17bb6 | |||
4bbea8f134 | |||
19908307d6 | |||
63e1acc02a | |||
dd34e4780e | |||
0c4290b0c4 | |||
87b7219901 | |||
bbfd938001 | |||
e8975ec92c | |||
bb0a15f4e6 | |||
8f75590e8d | |||
4cabfeccec | |||
5c22c045a1 | |||
f5792f1bad | |||
4181805ff2 | |||
b6be233241 | |||
b2ebe2df0a | |||
77fb8d50d1 | |||
b7fd5a01e1 | |||
bcfa689fab | |||
e2c724ce23 | |||
d6bf969212 | |||
9545113e43 | |||
817a942bba | |||
def3636196 | |||
1b143eb222 | |||
2faf541c93 | |||
358d3e6ca5 | |||
dd750f88ad | |||
5a9fce85a2 | |||
df915f8ebb | |||
d9a0083edd | |||
742f7decee | |||
6a9d248c4a | |||
d4d3e1223d | |||
e560fe5712 | |||
0073374d91 | |||
1a3b9e03cf | |||
0b609be2fe | |||
812b0eface | |||
4990931c3c | |||
fd7a19c9b1 | |||
4ea1aa2370 | |||
ba498cad2a | |||
af5d5bbcba | |||
f190b64766 | |||
8fbc86f410 | |||
fc9038cd62 | |||
fbb169c37c | |||
bd150c9606 | |||
72598ad05f | |||
e0b5a8f22a | |||
294cb75e4d | |||
5b66c3ef0c | |||
025c998350 | |||
f965f7ea44 | |||
0430331123 | |||
66b58e5960 | |||
89524f5341 | |||
e6a3c531b5 | |||
d4c27860f3 | |||
474c198166 | |||
19ce82deb9 | |||
c25a3bfed9 | |||
f2033556e3 | |||
947136a383 | |||
5bd9d312b2 | |||
bab0c9707f | |||
880895e73a | |||
4d3281cf4b | |||
8bcaa75283 | |||
3bbf6a042d | |||
dec304a40b | |||
1c0f7adf13 | |||
57d17a5ca8 | |||
f435fac2a0 | |||
1fb4a4a53b | |||
221ebcc8ff | |||
11242dac1f | |||
6e14f36735 | |||
e2b44d2a55 | |||
476cb55d23 | |||
6f35ce264d | |||
7370a2f52b | |||
d70879ea9e | |||
a8c1513bb7 | |||
0cb044e39d | |||
22ec70cd72 | |||
b5256e2a2b | |||
6cde13127d | |||
23a5a5f38c | |||
b69274649a | |||
a33521b8bc | |||
76a5765552 | |||
024647af46 | |||
e7d8c9a538 | |||
f7e633eda7 | |||
2d24f80cb0 | |||
075c26e097 | |||
da04b3ac06 | |||
d09a588359 | |||
fac2025154 | |||
0f2beffdf4 | |||
442db787d7 | |||
0c5efeca3b | |||
e82f1b1266 | |||
107af77189 | |||
93f03adc58 | |||
c4b067a10f | |||
c18c1d66a9 | |||
5d556fc310 | |||
98b0fa8c64 | |||
de5c9d6398 | |||
3f6d3ee36b | |||
fdfc06d29d | |||
38cab08d72 | |||
3dfa4a8cd9 | |||
9c2c91f165 | |||
c266e2dcde | |||
17f6d34211 | |||
234804efe8 | |||
05cdb4c3c1 | |||
0c643f3632 | |||
7330852b6b | |||
89ce45be6c | |||
aff160a07f | |||
f587156df1 | |||
0a44a49647 | |||
7db119748b | |||
f419a65376 | |||
9c689a5e2d | |||
640dd23f73 | |||
24e2767f33 | |||
9d185a985b | |||
02a25ede19 | |||
44cf550778 | |||
d292ed6be3 | |||
d7289a3f18 | |||
6d7908099d | |||
8052780520 | |||
ae96dafdf5 | |||
ce70d76743 | |||
10aa233cb4 | |||
3d932398aa | |||
f1b6ffae73 | |||
b74cd69305 | |||
967ab54075 | |||
26785ac448 | |||
6c59070afb | |||
4f03b54463 | |||
b01777e22c | |||
1a6621475a | |||
2973fcacb0 | |||
f1b88a9c60 | |||
83ab3d8758 | |||
d6fd9d1cda | |||
21ce41e6f3 | |||
f8606aaa25 | |||
67d3f67d6c | |||
cc8b93606a | |||
73ab1b679d | |||
cf53e1fb43 | |||
c3955ea34e | |||
cce2ed885a | |||
43528a6327 | |||
d8209ef111 | |||
9794cbde3c | |||
ccef616189 | |||
baa2da8a3a | |||
f7893ead14 | |||
dfa8ff99dc | |||
d9a255ae6a | |||
07145d40ba | |||
0f0b7b90e5 | |||
4b0277a30d | |||
2d7e51027b | |||
0afeefd964 | |||
54e00598cd | |||
bb0abf4794 | |||
cc6474217b | |||
be55e9a6f4 | |||
90a65d8090 | |||
3f7fe50113 | |||
1c7c240874 | |||
e1fe843299 | |||
04c079c625 | |||
ff39de09ef | |||
a5cf4f9483 | |||
2f57691e58 | |||
e58dee3984 | |||
09b935cfdd | |||
bbf1e3d2c1 | |||
629dbb0e50 | |||
4c0ec7de3d | |||
20816fe831 | |||
b20efd0e1a | |||
3d7f3f2c90 | |||
beebb9ee3b | |||
dfa99dc174 | |||
9e7a3b878b | |||
fea9ed9d31 | |||
c2d664bcf5 | |||
baac823ce6 | |||
a6859394bf | |||
cbd98c1d28 | |||
045b0d4801 | |||
c55c440352 | |||
d82b4f0c0d | |||
1cb00edd36 | |||
2984ab5ed4 | |||
d094ea6388 | |||
a5a733c352 | |||
06dbf55a27 | |||
54102a8b4c | |||
77492635d7 | |||
8346db59a3 | |||
4b1bc40307 | |||
e39c66cb8b | |||
c644913694 | |||
2c8e56dd7a | |||
e344ff2243 | |||
e555a5a90b | |||
98e007a308 | |||
7858731dfe | |||
a9dc7c3c54 | |||
04c82c11c5 | |||
8fc5ff8be1 | |||
9b19cc0cf7 | |||
311505beec | |||
d8dd1c28d7 | |||
7382aacf2a | |||
6eea97f1be | |||
8295e1ac18 | |||
260eed9293 | |||
60b622c9f0 | |||
f400c5b280 | |||
edf788f6dd | |||
e657e9b7e8 | |||
81072dbfd7 | |||
cb512b4ac4 | |||
567ba57a13 | |||
2f96a1a349 | |||
5ea5fb9d79 | |||
bc62d4e46c | |||
b3aab7ddfc | |||
d396c921d7 | |||
294123505b | |||
43d60ff90b | |||
8a5ca7bdc7 | |||
7f96c2b0ab | |||
5719a9ec36 | |||
a1df846526 | |||
d27f988107 | |||
46c32c1e4c | |||
46202ca6dd | |||
a0b3f8bfa2 | |||
3f689ebc75 | |||
f1097a3c68 | |||
28041d72bb | |||
3c3ecc5e4c | |||
f176f5a134 | |||
c3a38d3d5f | |||
1502609913 | |||
376576e495 | |||
4edf7e24ff | |||
de3d89a631 | |||
4d2d0eb63e | |||
efe1e7b926 | |||
bfa7bd4635 | |||
acebbfbc16 | |||
ec860084c5 | |||
21da3a57ce | |||
5520cade70 | |||
95d0f34249 | |||
8c5274657b | |||
ee270d70c2 | |||
ea960268e2 | |||
133680c19c | |||
a161e536a7 | |||
442a098690 | |||
58cacbe23e | |||
f829a2ed9d | |||
2916e6620d | |||
575fa0bf9c | |||
075924fd6f | |||
d6920f77d3 | |||
31efa378a6 | |||
92dcc0cec6 | |||
5a3b90dadd | |||
4f451a146a | |||
efbb7bdfaf | |||
befc10bb4a | |||
a6bcf0093d | |||
34652dc563 | |||
bd05fae22f | |||
6edf4b8a39 | |||
f4603911e7 | |||
f49f1a9b22 | |||
e3ea211423 | |||
8834828a95 | |||
086fd5bc50 | |||
bcfb2f6352 | |||
cde45407a1 | |||
d1c7c27a54 | |||
b85dda99d9 | |||
1cce1c91c1 | |||
4ba01ebaea | |||
24d3b65ec1 | |||
28ec8e7285 | |||
98346d6f10 | |||
e0e9c695b5 | |||
4c2d5bb480 | |||
2a05d1a0a8 |
@ -1,3 +0,0 @@
|
||||
<?php
|
||||
// Fix DocumentRoot for VirtualDocumentRoot Hosts
|
||||
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['SCRIPT_FILENAME']);
|
@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
// TODO: logpath could also be passed via CMD argument
|
||||
// so this script could be more general
|
||||
$path = '/var/log/apache-2.2';
|
||||
$fh_timeout = 30; // 30 sek.
|
||||
|
||||
$fd = fopen('php://stdin', 'r');
|
||||
|
||||
while (!feof($fd)) {
|
||||
|
||||
$row = fgets($fd);
|
||||
|
||||
list($vhost, $h, $l, $u, $t, $r, $s, $b, $referrer, $ua) = explode(';', $row, 10);
|
||||
|
||||
if (!isset(${$vhost})) {
|
||||
${$vhost} = fopen($path . '/' . $vhost . '_access.log', 'a+');
|
||||
}
|
||||
$lastwrite[$vhost] = time();
|
||||
fputs(${$vhost}, "$h $l $u $t $r $s $b $referrer $ua");
|
||||
|
||||
foreach ($lastwrite as $vhost => $time) {
|
||||
if ((time() - ($time + 30)) >= 0) {
|
||||
fclose(${$vhost});
|
||||
unset(${$vhost});
|
||||
unset($lastwrite[$vhost]);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
<?php
|
||||
// Fix DocumentRoot for VirtualDocumentRoot Hosts
|
||||
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['SCRIPT_FILENAME']);
|
@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
// TODO: logpath could also be passed via CMD argument
|
||||
// so this script could be more general
|
||||
$path = '/var/log/apache-2.4';
|
||||
$fh_timeout = 30; // 30 sek.
|
||||
|
||||
$fd = fopen('php://stdin', 'r');
|
||||
|
||||
while (!feof($fd)) {
|
||||
|
||||
$row = fgets($fd);
|
||||
|
||||
list($vhost, $h, $l, $u, $t, $r, $s, $b, $referrer, $ua) = explode(';', $row, 10);
|
||||
|
||||
if (!isset(${$vhost})) {
|
||||
${$vhost} = fopen($path . '/' . $vhost . '_access.log', 'a+');
|
||||
}
|
||||
$lastwrite[$vhost] = time();
|
||||
fputs(${$vhost}, "$h $l $u $t $r $s $b $referrer $ua");
|
||||
|
||||
foreach ($lastwrite as $vhost => $time) {
|
||||
if ((time() - ($time + 30)) >= 0) {
|
||||
fclose(${$vhost});
|
||||
unset(${$vhost});
|
||||
unset($lastwrite[$vhost]);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
CustomLog "/var/log/apache-2.2/access_log" combined
|
||||
ErrorLog "/var/log/apache-2.2/error_log"
|
||||
LogLevel warn
|
||||
|
||||
AddDefaultCharset UTF-8
|
||||
|
||||
# No DNS
|
||||
HostnameLookups Off
|
||||
#
|
||||
Timeout 60
|
||||
KeepAlive On
|
||||
KeepAliveTimeout 10
|
||||
MaxKeepAliveRequests 100
|
||||
#
|
||||
#
|
||||
EnableMMAP Off
|
||||
EnableSendfile Off
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
XSendFile On
|
||||
XSendFilePath /shared/httpd
|
@ -1,6 +0,0 @@
|
||||
#### PHP-FPM config ####
|
||||
|
||||
AddType application/x-httpd-fastphp5 .php
|
||||
Action application/x-httpd-fastphp5 /php5-fcgi
|
||||
Alias /php5-fcgi /usr/local/bin/php-fcgi
|
||||
FastCgiExternalServer /usr/local/bin/php-fcgi -host 172.16.238.11:9000 -pass-header Authorization
|
@ -1,31 +0,0 @@
|
||||
##
|
||||
## Default Host for http://localhost
|
||||
##
|
||||
NameVirtualHost *:80
|
||||
|
||||
<VirtualHost _default_:80>
|
||||
ServerName localhost
|
||||
ServerAdmin root@localhost
|
||||
|
||||
ErrorLog /var/log/apache-2.2/localhost-error.log
|
||||
CustomLog /var/log/apache-2.2/localhost-access.log combined
|
||||
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
DocumentRoot "/var/www/default/htdocs"
|
||||
<Directory "/var/www/default/htdocs">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
AllowOverride All
|
||||
Options All
|
||||
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
##
|
||||
## Default Mass Virtual Host
|
||||
##
|
||||
|
||||
<VirtualHost *:80>
|
||||
|
||||
# Get the server name from the Host: header
|
||||
UseCanonicalName Off
|
||||
|
||||
ServerName localhost
|
||||
ServerAlias *.loc
|
||||
ServerAdmin root@localhost
|
||||
|
||||
# splitlogs.php is a custom script, which will filter the domain
|
||||
# and create separate logfiles per domain.
|
||||
LogFormat "%V;%h;%l;%u;%t;\"%r\";%>s;%b;\"%{Referer}i\";\"%{User-agent}i\"" vcommon
|
||||
CustomLog "|/opt/bin/splitlogs.php" vcommon
|
||||
|
||||
ErrorLog /var/log/apache-2.2/other-error.log
|
||||
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
# When using VirtualDocumentRoot the PHP Env var DOCUMENT_ROOT
|
||||
# is not filled, so we need to do that manually with a custom script.
|
||||
VirtualDocumentRoot /shared/httpd/%-2+/htdocs/
|
||||
php_admin_value auto_prepend_file /opt/bin/fix-virtual-docroot.php
|
||||
|
||||
<Directory "/shared/httpd/*/htdocs/">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
AllowOverride All
|
||||
Options All
|
||||
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
|
@ -1,23 +0,0 @@
|
||||
CustomLog "/var/log/apache-2.4/access_log" combined
|
||||
ErrorLog "/var/log/apache-2.4/error_log"
|
||||
LogLevel warn
|
||||
|
||||
AddDefaultCharset UTF-8
|
||||
|
||||
# No DNS
|
||||
HostnameLookups Off
|
||||
#
|
||||
Timeout 60
|
||||
KeepAlive On
|
||||
KeepAliveTimeout 10
|
||||
MaxKeepAliveRequests 100
|
||||
#
|
||||
#
|
||||
EnableMMAP Off
|
||||
EnableSendfile Off
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
XSendFile On
|
||||
XSendFilePath /shared/httpd
|
@ -1,17 +0,0 @@
|
||||
#### PHP-FPM config ####
|
||||
|
||||
# enablereuse
|
||||
# Defining a worker will improve performance
|
||||
# And in this case, re-use the worker (dependent on support from the fcgi application)
|
||||
# If you have enough idle workers, this would only improve the performance marginally
|
||||
#
|
||||
# enablereuse requires Apache 2.4.11 or later
|
||||
#<Proxy "fcgi://172.16.238.11:9000/" enablereuse=on max=10></Proxy>
|
||||
<FilesMatch "\.php$">
|
||||
Require all granted
|
||||
# Pick one of the following approaches
|
||||
# Use the standard TCP socket
|
||||
SetHandler "proxy:fcgi://172.16.238.11:9000"
|
||||
# If your version of httpd is 2.4.9 or newer (or has the back-ported feature), you can use the unix domain socket
|
||||
#SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/:9000"
|
||||
</FilesMatch>
|
@ -1,32 +0,0 @@
|
||||
##
|
||||
## Default Host for http://localhost
|
||||
##
|
||||
|
||||
|
||||
<VirtualHost _default_:80>
|
||||
ServerName localhost
|
||||
ServerAdmin root@localhost
|
||||
|
||||
ErrorLog /var/log/apache-2.4/localhost-error.log
|
||||
CustomLog /var/log/apache-2.4/localhost-access.log combined
|
||||
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
DocumentRoot "/var/www/default/htdocs"
|
||||
<Directory "/var/www/default/htdocs">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
AllowOverride All
|
||||
Options All
|
||||
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
##
|
||||
## Default Mass Virtual Host
|
||||
##
|
||||
|
||||
<VirtualHost *:80>
|
||||
|
||||
# Get the server name from the Host: header
|
||||
UseCanonicalName Off
|
||||
|
||||
ServerName localhost
|
||||
ServerAlias *.loc
|
||||
ServerAdmin root@localhost
|
||||
|
||||
# splitlogs.php is a custom script, which will filter the domain
|
||||
# and create separate logfiles per domain.
|
||||
LogFormat "%V;%h;%l;%u;%t;\"%r\";%>s;%b;\"%{Referer}i\";\"%{User-agent}i\"" vcommon
|
||||
CustomLog "|/opt/bin/splitlogs.php" vcommon
|
||||
|
||||
ErrorLog /var/log/apache-2.4/other-error.log
|
||||
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
# When using VirtualDocumentRoot the PHP Env var DOCUMENT_ROOT
|
||||
# is not filled, so we need to do that manually with a custom script.
|
||||
VirtualDocumentRoot /shared/httpd/%-2+/htdocs/
|
||||
php_admin_value auto_prepend_file /opt/bin/fix-virtual-docroot.php
|
||||
|
||||
<Directory "/shared/httpd/*/htdocs/">
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
AllowOverride All
|
||||
Options All
|
||||
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
|
0
.devilbox/etc/mariadb-10.1/.keepme
Normal file
0
.devilbox/etc/mariadb-10.1/.keepme
Normal file
0
.devilbox/etc/mariadb-10.2/.keepme
Normal file
0
.devilbox/etc/mariadb-10.2/.keepme
Normal file
0
.devilbox/etc/mariadb-10.3/.keepme
Normal file
0
.devilbox/etc/mariadb-10.3/.keepme
Normal file
0
.devilbox/etc/mariadb-5.5/.keepme
Normal file
0
.devilbox/etc/mariadb-5.5/.keepme
Normal file
0
.devilbox/etc/mysql-5.5/.keepme
Normal file
0
.devilbox/etc/mysql-5.5/.keepme
Normal file
0
.devilbox/etc/mysql-5.6/.keepme
Normal file
0
.devilbox/etc/mysql-5.6/.keepme
Normal file
0
.devilbox/etc/mysql-5.7/.keepme
Normal file
0
.devilbox/etc/mysql-5.7/.keepme
Normal file
0
.devilbox/etc/mysql-8.0/.keepme
Normal file
0
.devilbox/etc/mysql-8.0/.keepme
Normal file
10
.devilbox/etc/mysql-8.0/charset.cnf
Normal file
10
.devilbox/etc/mysql-8.0/charset.cnf
Normal file
@ -0,0 +1,10 @@
|
||||
[client]
|
||||
default-character-set=utf8
|
||||
|
||||
[mysql]
|
||||
default-character-set=utf8
|
||||
|
||||
|
||||
[mysqld]
|
||||
collation-server = utf8_unicode_ci
|
||||
character-set-server = utf8
|
@ -1,11 +0,0 @@
|
||||
access_log /var/log/nginx-mainline/access.log main;
|
||||
error_log /var/log/nginx-mainline/error.log warn;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
send_timeout 60;
|
||||
keepalive_timeout 10;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
@ -1,56 +0,0 @@
|
||||
##
|
||||
## Default Host for http://localhost
|
||||
##
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
# Root directive
|
||||
root /var/www/default/htdocs;
|
||||
index index.php;
|
||||
|
||||
access_log /var/log/nginx-mainline/localhost-access.log main;
|
||||
error_log /var/log/nginx-mainline/localhost-error.log warn;
|
||||
|
||||
|
||||
# Front-controller pattern as recommended by the nginx docs
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
# // Find this:
|
||||
# cgi.fix_pathinfo=1
|
||||
# // Replace with:
|
||||
# cgi.fix_pathinfo=0
|
||||
|
||||
try_files $uri = 404;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
|
||||
#### FPM Server
|
||||
fastcgi_pass 172.16.238.11:9000;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_intercept_errors on;
|
||||
}
|
||||
|
||||
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# disallow access to git configs path
|
||||
location ~ /\.git {
|
||||
deny all;
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
##
|
||||
## Default Mass Virtual Host
|
||||
##
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name ~^(?<domain>.+)\.loc$;
|
||||
|
||||
# Root directive
|
||||
root /shared/httpd/$domain/htdocs/;
|
||||
index index.php;
|
||||
|
||||
access_log /var/log/nginx-mainline/$domain-access.log main;
|
||||
error_log /var/log/nginx-mainline/other-error.log warn;
|
||||
|
||||
|
||||
# Front-controller pattern as recommended by the nginx docs
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
# // Find this:
|
||||
# cgi.fix_pathinfo=1
|
||||
# // Replace with:
|
||||
# cgi.fix_pathinfo=0
|
||||
|
||||
try_files $uri = 404;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
|
||||
#### SOCKET
|
||||
fastcgi_pass 172.16.238.11:9000;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_intercept_errors on;
|
||||
}
|
||||
|
||||
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# disallow access to git configs path
|
||||
location ~ /\.git {
|
||||
deny all;
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
access_log /var/log/nginx-stable/access.log main;
|
||||
error_log /var/log/nginx-stable/error.log warn;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
send_timeout 60;
|
||||
keepalive_timeout 10;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
@ -1,56 +0,0 @@
|
||||
##
|
||||
## Default Host for http://localhost
|
||||
##
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
# Root directive
|
||||
root /var/www/default/htdocs;
|
||||
index index.php;
|
||||
|
||||
access_log /var/log/nginx-stable/localhost-access.log main;
|
||||
error_log /var/log/nginx-stable/localhost-error.log warn;
|
||||
|
||||
|
||||
# Front-controller pattern as recommended by the nginx docs
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
# // Find this:
|
||||
# cgi.fix_pathinfo=1
|
||||
# // Replace with:
|
||||
# cgi.fix_pathinfo=0
|
||||
|
||||
try_files $uri = 404;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
|
||||
#### FPM Server
|
||||
fastcgi_pass 172.16.238.11:9000;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_intercept_errors on;
|
||||
}
|
||||
|
||||
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# disallow access to git configs path
|
||||
location ~ /\.git {
|
||||
deny all;
|
||||
}
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
##
|
||||
## Default Mass Virtual Host
|
||||
##
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name ~^(?<domain>.+)\.loc$;
|
||||
|
||||
# Root directive
|
||||
root /shared/httpd/$domain/htdocs/;
|
||||
index index.php;
|
||||
|
||||
access_log /var/log/nginx-stable/$domain-access.log main;
|
||||
error_log /var/log/nginx-stable/other-error.log warn;
|
||||
|
||||
|
||||
# Front-controller pattern as recommended by the nginx docs
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php;
|
||||
}
|
||||
|
||||
# PHP FPM
|
||||
location ~ \.php?$ {
|
||||
# PHP.INI:
|
||||
# ---------------------------
|
||||
# // Find this:
|
||||
# cgi.fix_pathinfo=1
|
||||
# // Replace with:
|
||||
# cgi.fix_pathinfo=0
|
||||
|
||||
try_files $uri = 404;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
|
||||
#### SOCKET
|
||||
fastcgi_pass 172.16.238.11:9000;
|
||||
|
||||
fastcgi_index index.php;
|
||||
fastcgi_intercept_errors on;
|
||||
}
|
||||
|
||||
|
||||
|
||||
# deny access to .htaccess files, if Apache's document root
|
||||
# concurs with nginx's one
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# disallow access to git configs path
|
||||
location ~ /\.git {
|
||||
deny all;
|
||||
}
|
||||
}
|
1
.devilbox/www/api/devilbox-api/status.json
Normal file
1
.devilbox/www/api/devilbox-api/status.json
Normal file
@ -0,0 +1 @@
|
||||
{"success":"true"}
|
@ -1,43 +1,151 @@
|
||||
<?PHP
|
||||
// Measure time
|
||||
$TIME_START = microtime(true);
|
||||
$MY_DIR = dirname(__FILE__);
|
||||
|
||||
// Start session
|
||||
session_start();
|
||||
|
||||
// Turn on all PHP errors
|
||||
error_reporting(-1);
|
||||
|
||||
|
||||
// Translate Docker environmental variables to $ENV
|
||||
$ENV = array();
|
||||
exec('env', $output);
|
||||
foreach ($output as $var) {
|
||||
$tmp = explode('=', $var);
|
||||
$ENV[$tmp[0]] = $tmp[1];
|
||||
}
|
||||
// Shorten DNS timeouts for gethostbyname in case DNS server is down
|
||||
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
|
||||
|
||||
|
||||
$DEVILBOX_VERSION = 'v0.14';
|
||||
$DEVILBOX_DATE = '2018-05-05';
|
||||
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
||||
|
||||
//
|
||||
// Set Directories
|
||||
//
|
||||
$CONF_DIR = dirname(__FILE__);
|
||||
$LIB_DIR = $CONF_DIR . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR .'lib';
|
||||
$VEN_DIR = $CONF_DIR . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR .'vendor';
|
||||
$LOG_DIR = dirname(dirname($CONF_DIR)) . DIRECTORY_SEPARATOR . 'log' . DIRECTORY_SEPARATOR . 'devilbox';
|
||||
|
||||
|
||||
//
|
||||
// Load Base classes
|
||||
//
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'container' . DIRECTORY_SEPARATOR .'BaseClass.php';
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'container' . DIRECTORY_SEPARATOR .'BaseInterface.php';
|
||||
|
||||
|
||||
|
||||
// HTTPD Docker
|
||||
//
|
||||
// Set Docker addresses
|
||||
//
|
||||
$DNS_HOST_NAME = 'bind';
|
||||
$PHP_HOST_NAME = 'php';
|
||||
$HTTPD_HOST_NAME = 'httpd';
|
||||
$HTTPD_HOST_ADDR = gethostbyname($HTTPD_HOST_NAME);
|
||||
|
||||
// PHP Docker
|
||||
$PHP_HOST_NAME = 'php';
|
||||
$PHP_HOST_ADDR = gethostbyname($PHP_HOST_NAME);
|
||||
|
||||
// MySQL Docker
|
||||
$MYSQL_HOST_NAME = 'db';
|
||||
$MYSQL_HOST_ADDR = gethostbyname($MYSQL_HOST_NAME);
|
||||
$MYSQL_ROOT_PASS = $ENV['MYSQL_ROOT_PASSWORD'];
|
||||
|
||||
// MySQL Connection variables
|
||||
$MY_MYSQL_ERR = NULL;
|
||||
$MY_MYSQL_LINK = NULL;
|
||||
|
||||
// VirtualHost DNS check
|
||||
// Temporarily disable due to:
|
||||
// https://github.com/cytopia/devilbox/issues/8
|
||||
$ENABLE_VHOST_DNS_CHECK = FALSE;
|
||||
$MYSQL_HOST_NAME = 'mysql';
|
||||
$PGSQL_HOST_NAME = 'pgsql';
|
||||
$REDIS_HOST_NAME = 'redis';
|
||||
$MEMCD_HOST_NAME = 'memcd';
|
||||
$MONGO_HOST_NAME = 'mongo';
|
||||
|
||||
|
||||
require $MY_DIR . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR .'functions.php';
|
||||
//
|
||||
// Lazy Container Loader
|
||||
//
|
||||
function loadFile($class, $base_path) {
|
||||
static $_LOADED_FILE;
|
||||
|
||||
if (isset($CONNECT) && $CONNECT) {
|
||||
$MY_MYSQL_LINK = my_mysql_connect($MY_MYSQL_ERR);
|
||||
}
|
||||
if (isset($_LOADED_FILE[$class])) {
|
||||
return;
|
||||
}
|
||||
|
||||
require $base_path . DIRECTORY_SEPARATOR . $class . '.php';
|
||||
$_LOADED_FILE[$class] = true;
|
||||
return;
|
||||
}
|
||||
function loadClass($class) {
|
||||
|
||||
static $_LOADED_LIBS;
|
||||
|
||||
if (isset($_LOADED_LIBS[$class])) {
|
||||
return $_LOADED_LIBS[$class];
|
||||
} else {
|
||||
|
||||
$lib_dir = $GLOBALS['LIB_DIR'];
|
||||
$cnt_dir = $GLOBALS['LIB_DIR'] . DIRECTORY_SEPARATOR . 'container';
|
||||
|
||||
switch($class) {
|
||||
//
|
||||
// Lib Classes
|
||||
//
|
||||
case 'Logger':
|
||||
loadFile($class, $lib_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Logger::getInstance();
|
||||
break;
|
||||
|
||||
case 'Html':
|
||||
loadFile($class, $lib_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Html::getInstance();
|
||||
break;
|
||||
|
||||
case 'Helper':
|
||||
loadFile($class, $lib_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Helper::getInstance();
|
||||
break;
|
||||
|
||||
//
|
||||
// Docker Container Classes
|
||||
//
|
||||
case 'Php':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Php::getInstance($GLOBALS['PHP_HOST_NAME']);
|
||||
break;
|
||||
|
||||
case 'Dns':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Dns::getInstance($GLOBALS['DNS_HOST_NAME']);
|
||||
break;
|
||||
|
||||
case 'Httpd':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Httpd::getInstance($GLOBALS['HTTPD_HOST_NAME']);
|
||||
break;
|
||||
|
||||
case 'Mysql':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Mysql::getInstance($GLOBALS['MYSQL_HOST_NAME'], array(
|
||||
'user' => 'root',
|
||||
'pass' => loadClass('Helper')->getEnv('MYSQL_ROOT_PASSWORD')
|
||||
));
|
||||
break;
|
||||
|
||||
case 'Pgsql':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Pgsql::getInstance($GLOBALS['PGSQL_HOST_NAME'], array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
'db' => 'postgres'
|
||||
));
|
||||
break;
|
||||
|
||||
case 'Redis':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Redis::getInstance($GLOBALS['REDIS_HOST_NAME']);
|
||||
break;
|
||||
|
||||
case 'Memcd':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Memcd::getInstance($GLOBALS['MEMCD_HOST_NAME']);
|
||||
break;
|
||||
|
||||
case 'Mongo':
|
||||
loadFile($class, $cnt_dir);
|
||||
$_LOADED_LIBS[$class] = \devilbox\Mongo::getInstance($GLOBALS['MONGO_HOST_NAME']);
|
||||
break;
|
||||
|
||||
// Get optional docker classes
|
||||
default:
|
||||
// Redis
|
||||
exit('Class does not exist: '.$class);
|
||||
}
|
||||
return $_LOADED_LIBS[$class];
|
||||
}
|
||||
}
|
||||
|
113
.devilbox/www/htdocs/_ajax_callback.php
Normal file
113
.devilbox/www/htdocs/_ajax_callback.php
Normal file
@ -0,0 +1,113 @@
|
||||
<?php
|
||||
require '../config.php';
|
||||
|
||||
if (loadClass('Helper')->isLoggedIn()) {
|
||||
|
||||
//
|
||||
// ?database=
|
||||
//
|
||||
if (isset($_GET['database'])) {
|
||||
// &type=mysql
|
||||
if (isset($_GET['type']) && $_GET['type'] == 'mysql') {
|
||||
echo json_encode(array(
|
||||
'size' => (string)loadClass('Mysql')->getDBSize($_GET['database']),
|
||||
'table' => (string)loadClass('Mysql')->getTableCount($_GET['database'])
|
||||
));
|
||||
// &type=postgres
|
||||
} else if (isset($_GET['type']) && $_GET['type'] == 'postgres') {
|
||||
$schema = isset($_GET['schema']) ? $_GET['schema'] : '';
|
||||
echo json_encode(array(
|
||||
'size' => (string)loadClass('Pgsql')->getSchemaSize($_GET['database'], $schema),
|
||||
'table' => (string)loadClass('Pgsql')->getTableCount($_GET['database'], $schema)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ?vhost=
|
||||
//
|
||||
else if (isset($_GET['vhost'])) {
|
||||
echo loadClass('Httpd')->checkVirtualHost($_GET['vhost']);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// ?software=
|
||||
//
|
||||
else if (isset($_GET['software'])) {
|
||||
$no = '<span class="text-danger">not installed</span>';
|
||||
$software = array();
|
||||
|
||||
if ($_GET['software'] == 'composer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getComposerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drupalc') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrupalConsoleVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'git') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGitVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'mds') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getMdsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'node') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNodeVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'npm') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNpmVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'phalcon') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhalconVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'symfony') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getSymfonyVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'wpcli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getWpcliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array($_GET['software'] => 'unknown software'));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// WRONG REQUEST
|
||||
//
|
||||
else {
|
||||
loadClass('Helper')->redirect('/');
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Not logged in
|
||||
//
|
||||
else {
|
||||
loadClass('Helper')->redirect('/');
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
$CONNECT = TRUE;
|
||||
require '../config.php';
|
||||
|
||||
if (isset($_GET['size'])) {
|
||||
echo getDBSize($_GET['size']);
|
||||
} elseif (isset($_GET['table'])) {
|
||||
echo getTableCount($_GET['table']);
|
||||
} else {
|
||||
echo '0';
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
require '../config.php';
|
||||
|
||||
if (isset($_GET['valid'])) {
|
||||
echo checkVirtualHost($_GET['valid']);
|
||||
} else {
|
||||
echo '';
|
||||
}
|
@ -1,11 +1,64 @@
|
||||
.meter {
|
||||
height: 20px; /* Can be anything */
|
||||
position: relative;
|
||||
background: #555;
|
||||
-moz-border-radius: 25px;
|
||||
-webkit-border-radius: 25px;
|
||||
border-radius: 25px;
|
||||
box-shadow: inset 0 -1px 1px rgba(255,255,255,0.3);
|
||||
}
|
||||
.meter > span {
|
||||
display: block;
|
||||
height: 100%;
|
||||
border-top-right-radius: 20px;
|
||||
border-bottom-right-radius: 20px;
|
||||
border-top-left-radius: 20px;
|
||||
border-bottom-left-radius: 20px;
|
||||
background-color: rgb(43,194,83);
|
||||
background-image: linear-gradient(
|
||||
center bottom,
|
||||
rgb(43,194,83) 37%,
|
||||
rgb(84,240,84) 69%
|
||||
);
|
||||
box-shadow:
|
||||
inset 0 2px 9px rgba(255,255,255,0.3),
|
||||
inset 0 -2px 6px rgba(0,0,0,0.4);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.dash-box {
|
||||
border: 1px solid #383737;
|
||||
background-color: #3d3d3d;
|
||||
color: #999999;
|
||||
height:100%;
|
||||
}
|
||||
.dash-box-head {
|
||||
background-color: #383737;
|
||||
color: #999999;
|
||||
width:100%;
|
||||
display: inline-block;
|
||||
padding:10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.dash-box-body {
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
|
||||
.row-margin {
|
||||
margin-bottom:20px;
|
||||
}
|
||||
.col-margin {
|
||||
margin-bottom:20px;
|
||||
}
|
||||
|
||||
|
||||
/* Bootstrap overwrites
|
||||
-------------------------------------------------- */
|
||||
html, body {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
td {
|
||||
word-break: break-word;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +71,7 @@ html {
|
||||
}
|
||||
body {
|
||||
/* Margin bottom by footer height */
|
||||
margin-bottom: 80px;
|
||||
margin-bottom: 80px !important;
|
||||
}
|
||||
.footer {
|
||||
position: absolute;
|
||||
@ -30,57 +83,64 @@ body {
|
||||
}
|
||||
|
||||
|
||||
/* Generics
|
||||
-------------------------------------------------- */
|
||||
.font-small {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Circle Box
|
||||
-------------------------------------------------- */
|
||||
|
||||
.circles{
|
||||
margin:0px auto;
|
||||
margin:0px auto;
|
||||
}
|
||||
.circles > div {
|
||||
overflow:hidden;
|
||||
float:left;
|
||||
width:auto;
|
||||
height:auto;
|
||||
position: relative;
|
||||
border-radius:50%;
|
||||
-moz-border-radius:50%;
|
||||
-webkit-border-radius:50%;
|
||||
-khtml-border-radius: 50%;
|
||||
background:#eee;
|
||||
overflow:hidden;
|
||||
float:left;
|
||||
width:auto;
|
||||
height:auto;
|
||||
position: relative;
|
||||
border-radius:50%;
|
||||
-moz-border-radius:50%;
|
||||
-webkit-border-radius:50%;
|
||||
-khtml-border-radius: 50%;
|
||||
background:#eee;
|
||||
}
|
||||
|
||||
.circles > div > div {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
.circles > div > div > div {
|
||||
display: table;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: table;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.circles > div > div > div > div {
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
display: table-cell;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@media (max-width: 320px)
|
||||
{
|
||||
.circles > div {padding: 50%;}
|
||||
.circles > div {padding: 50%;}
|
||||
}
|
||||
|
||||
@media (min-width: 321px) and (max-width: 800px)
|
||||
{
|
||||
.circles > div {padding: 50%;}
|
||||
.circles > div {padding: 50%;}
|
||||
}
|
||||
|
||||
@media (min-width: 801px)
|
||||
{
|
||||
.circles > div {padding: 40%;}
|
||||
.circles > div {padding: 48%;}
|
||||
}
|
||||
|
||||
|
||||
@ -90,25 +150,85 @@ body {
|
||||
a.navbar-brand {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
a.navbar-brand img {
|
||||
margin-right: 10px;
|
||||
}
|
||||
a.nav-link {
|
||||
background-color: transparent !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
img.d-inline-block {
|
||||
float: none;
|
||||
float: none;
|
||||
}
|
||||
nav.navbar {
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
color: #373a3c;
|
||||
background-color: #fff;
|
||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
color: #373a3c;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* mailphp;
|
||||
/* mail.php;
|
||||
-------------------------------------------------- */
|
||||
tr.subject {
|
||||
cursor: pointer;
|
||||
}
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
td.break-word {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
|
||||
/* adminer.php;
|
||||
-------------------------------------------------- */
|
||||
#menu {
|
||||
position: absolute;
|
||||
margin: 76px 0 0 !important;
|
||||
}
|
||||
#breadcrumb {
|
||||
top: 60px !important;
|
||||
}
|
||||
#lang {
|
||||
top: 53px !important;
|
||||
}
|
||||
.pages {
|
||||
z-index:1000;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* login.php;
|
||||
-------------------------------------------------- */
|
||||
/* Extra markup and styles for table-esque vertical and horizontal centering */
|
||||
.site-wrapper {
|
||||
display: table;
|
||||
width: 100%;
|
||||
height: 100%; /* For at least Firefox */
|
||||
min-height: 100%;
|
||||
-webkit-box-shadow: inset 0 0 5rem rgba(0,0,0,.5);
|
||||
box-shadow: inset 0 0 5rem rgba(0,0,0,.5);
|
||||
}
|
||||
.site-wrapper-inner {
|
||||
display: table-cell;
|
||||
vertical-align: top;
|
||||
}
|
||||
.cover-container {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
/* Affix and center */
|
||||
@media (min-width: 40em) {
|
||||
/* Start the vertical centering */
|
||||
.site-wrapper-inner {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
@media (min-width: 62em) {
|
||||
.masthead,
|
||||
.mastfoot,
|
||||
.cover-container {
|
||||
width: 32rem;
|
||||
}
|
||||
}
|
||||
|
BIN
.devilbox/www/htdocs/assets/img/banner.png
Normal file
BIN
.devilbox/www/htdocs/assets/img/banner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
Before Width: | Height: | Size: 9.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
BIN
.devilbox/www/htdocs/assets/img/logo.png
Normal file
BIN
.devilbox/www/htdocs/assets/img/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB |
@ -1,12 +1,13 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php $FONT_AWESOME = TRUE; require '../include/head.php'; ?>
|
||||
<?php echo loadClass('Html')->getHead(true); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
@ -18,7 +19,7 @@
|
||||
|
||||
<div class="col-md-6">
|
||||
<h2>Contributors</h2>
|
||||
<p>The following people have contributed to the <a href="https://github.com/cytopia/devilbox">Devilbox</a>.</p>
|
||||
<p>The following people have contributed to the <a href="https://github.com/cytopia/devilbox/graphs/contributors">Devilbox</a>.</p>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
@ -56,6 +57,11 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Adminer</td>
|
||||
<td>Apache License 2.0 or GPL 2</td>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a href="https://github.com/vrana/adminer">vrana/adminer</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bootstrap</td>
|
||||
<td>MIT</td>
|
||||
@ -87,11 +93,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php require '../include/footer.php'; ?>
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,116 +0,0 @@
|
||||
<?php $CONNECT = TRUE; require '../config.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php require '../include/head.php'; ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Databases</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Charset</th>
|
||||
<th>Collation</th>
|
||||
<th>Tables</th>
|
||||
<th>Size</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (getDatabases() as $name => $keys): ?>
|
||||
<tr>
|
||||
<td><?php echo $name;?></td>
|
||||
<td><?php echo $keys['charset'];?></td>
|
||||
<td><?php echo $keys['collation'];?></td>
|
||||
<td><code><span class="table" id="table-<?php echo $name;?>"> </span></code></td>
|
||||
<td><code><span class="size" id="size-<?php echo $name;?>"> </span></code></td>
|
||||
</tr>
|
||||
<input type="hidden" name="database[]" class="database" value="<?php echo $name;?>" />
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php require '../include/footer.php'; ?>
|
||||
<script>
|
||||
// self executing function here
|
||||
(function() {
|
||||
// your page initialization code here
|
||||
// the DOM will be available here
|
||||
|
||||
function updateSizes(database) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
|
||||
xhttp.onreadystatechange = function() {
|
||||
var fill = '';
|
||||
var res = '';
|
||||
var len;
|
||||
var i;
|
||||
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
res = (this.responseText) == 0 ? '0sss MB' : this.responseText+' MB';
|
||||
len = res.length;
|
||||
if (len < 9) {
|
||||
for (i=len; i<9; i++) {
|
||||
fill = ' ' + fill;
|
||||
}
|
||||
|
||||
}
|
||||
res = res.replace('sss', ' ');
|
||||
res = fill + res;
|
||||
document.getElementById('size-' + database).innerHTML = res;
|
||||
}
|
||||
};
|
||||
xhttp.open('GET', '_ajax_db.php?size=' + database, true);
|
||||
xhttp.send();
|
||||
}
|
||||
|
||||
|
||||
function updateCount(database) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
|
||||
xhttp.onreadystatechange = function() {
|
||||
var fill = '';
|
||||
var i;
|
||||
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
if (this.responseText.length < 4) {
|
||||
for (i=this.responseText.length; i<4; i++) {
|
||||
fill = ' ' + fill;
|
||||
}
|
||||
}
|
||||
document.getElementById('table-' + database).innerHTML = fill + this.responseText;
|
||||
}
|
||||
};
|
||||
xhttp.open('GET', '_ajax_db.php?table=' + database, true);
|
||||
xhttp.send();
|
||||
}
|
||||
|
||||
var databases = document.getElementsByName('database[]');
|
||||
var database;
|
||||
|
||||
for (i = 0; i < databases.length; i++) {
|
||||
database = databases[i].value;
|
||||
updateSizes(database);
|
||||
updateCount(database);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
49
.devilbox/www/htdocs/db_memcd.php
Normal file
49
.devilbox/www/htdocs/db_memcd.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Memcached Keys</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Memcd')->isAvailable()): ?>
|
||||
<p>Memcached container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Value</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Memcd')->getKeys() as $data): ?>
|
||||
<tr>
|
||||
<td><?php print_r($data['key']);?></td>
|
||||
<td><?php print_r($data['value']);?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
51
.devilbox/www/htdocs/db_mongo.php
Normal file
51
.devilbox/www/htdocs/db_mongo.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>MongoDB Databases</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Mongo')->isAvailable()): ?>
|
||||
<p>MongoDB container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Size</th>
|
||||
<th>Empty</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Mongo')->getDatabases() as $db): ?>
|
||||
<tr>
|
||||
<td><?php echo $db['name'];?></td>
|
||||
<td><?php echo round($db['size']/(1024*1024), 2);?> MB</td>
|
||||
<td><?php echo $db['empty'];?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
114
.devilbox/www/htdocs/db_mysql.php
Normal file
114
.devilbox/www/htdocs/db_mysql.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<?php
|
||||
// Also required for JS calls (see bottom of this page)
|
||||
$len_table = 4;
|
||||
$len_size = 9;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>MySQL Databases</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Mysql')->isAvailable()): ?>
|
||||
<p>MySQL container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Charset</th>
|
||||
<th>Collation</th>
|
||||
<th>Tables</th>
|
||||
<th>Size</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Mysql')->getDatabases() as $name => $keys): ?>
|
||||
<tr>
|
||||
<td><?php echo $name;?></td>
|
||||
<td><?php echo $keys['charset'];?></td>
|
||||
<td><?php echo $keys['collation'];?></td>
|
||||
<td><code><span class="table" id="table-<?php echo $name;?>"><?php echo str_repeat(' ', $len_table);?></span></code></td>
|
||||
<td><code><span class="size" id="size-<?php echo $name;?>"><?php echo str_repeat(' ', $len_size);?></span></code></td>
|
||||
</tr>
|
||||
<input type="hidden" name="database[]" class="database" value="<?php echo $name;?>" />
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
<script>
|
||||
// self executing function here
|
||||
(function() {
|
||||
// your page initialization code here
|
||||
// the DOM will be available here
|
||||
|
||||
function updateData(database) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
|
||||
xhttp.onreadystatechange = function() {
|
||||
var res = null;
|
||||
var size = 0;
|
||||
var tables = 0;
|
||||
var i;
|
||||
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
res = JSON.parse(this.response);
|
||||
|
||||
// Normalize size output
|
||||
size = res.size == 0 ? '0sss MB' : res.size + ' MB';
|
||||
if (size.length < <?php echo $len_size;?>) {
|
||||
for (i = size.length; i < <?php echo $len_size;?>; ++i) {
|
||||
size = ' ' + size;
|
||||
}
|
||||
}
|
||||
size = size.replace('sss', ' ');
|
||||
|
||||
// Normalize tables output
|
||||
tables = res.table;
|
||||
if (tables.length < <?php echo $len_table;?>) {
|
||||
for (i = tables.length; i < <?php echo $len_table;?>; ++i) {
|
||||
tables = ' ' + tables;
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('size-' + database).innerHTML = size;
|
||||
document.getElementById('table-' + database).innerHTML = tables;
|
||||
}
|
||||
};
|
||||
xhttp.open('GET', '_ajax_callback.php?type=mysql&database=' + database, true);
|
||||
xhttp.send();
|
||||
}
|
||||
|
||||
var databases = document.getElementsByName('database[]');
|
||||
var database;
|
||||
|
||||
for (i = 0; i < databases.length; i++) {
|
||||
database = databases[i].value;
|
||||
updateData(database);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
126
.devilbox/www/htdocs/db_pgsql.php
Normal file
126
.devilbox/www/htdocs/db_pgsql.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<?php
|
||||
// Also required for JS calls (see bottom of this page)
|
||||
$len_table = 4;
|
||||
$len_size = 9;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>PostgreSQL Databases</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Pgsql')->isAvailable()): ?>
|
||||
<p>PgSQL container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Charset</th>
|
||||
<th>Collation</th>
|
||||
<th>Tables</th>
|
||||
<th>Size</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Pgsql')->getDatabases() as $name => $database): ?>
|
||||
<tr class="table-info">
|
||||
<th>
|
||||
<?php echo $name;?>
|
||||
</th>
|
||||
<td><?php echo $database['charset'];?></td>
|
||||
<td><?php echo $database['collation'];?></td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
<?php foreach ($database['schemas'] as $schema => $data): ?>
|
||||
<tr>
|
||||
<td><?php echo $schema;?></td>
|
||||
<td colspan="2"></td>
|
||||
<td><code><span class="table" id="table-<?php echo $name.'-'.$schema;?>"><?php echo str_repeat(' ', $len_table);?></span></code></td>
|
||||
<td><code><span class="size" id="size-<?php echo $name.'-'.$schema;?>"><?php echo str_repeat(' ', $len_size);?></span></code></td>
|
||||
</tr>
|
||||
<input type="hidden" name="schema[]" data-database="<?php echo $name;?>" class="schema" value="<?php echo $schema;?>" />
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
<script>
|
||||
// self executing function here
|
||||
(function() {
|
||||
// your page initialization code here
|
||||
// the DOM will be available here
|
||||
|
||||
function updateData(database, schema) {
|
||||
var xhttp = new XMLHttpRequest();
|
||||
|
||||
xhttp.onreadystatechange = function() {
|
||||
var res = null;
|
||||
var size = 0;
|
||||
var tables = 0;
|
||||
var i;
|
||||
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
res = JSON.parse(this.response);
|
||||
|
||||
// Normalize size output
|
||||
size = res.size == 0 ? '0sss MB' : res.size + ' MB';
|
||||
if (size.length < <?php echo $len_size;?>) {
|
||||
for (i = size.length; i < <?php echo $len_size;?>; ++i) {
|
||||
size = ' ' + size;
|
||||
}
|
||||
}
|
||||
size = size.replace('sss', ' ');
|
||||
|
||||
// Normalize tables output
|
||||
tables = res.table;
|
||||
if (tables.length < <?php echo $len_table;?>) {
|
||||
for (i = tables.length; i < <?php echo $len_table;?>; ++i) {
|
||||
tables = ' ' + tables;
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('size-' + database + '-' + schema).innerHTML = size;
|
||||
document.getElementById('table-' + database + '-' + schema).innerHTML = tables;
|
||||
}
|
||||
};
|
||||
xhttp.open('GET', '_ajax_callback.php?type=postgres&database=' + database + '&schema=' + schema, true);
|
||||
xhttp.send();
|
||||
}
|
||||
|
||||
var schemas = document.getElementsByName('schema[]');
|
||||
var schema;
|
||||
var database;
|
||||
|
||||
for (i = 0; i < schemas.length; i++) {
|
||||
schema = schemas[i].value;
|
||||
database = schemas[i].getAttribute('data-database');
|
||||
updateData(database, schema);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
49
.devilbox/www/htdocs/db_redis.php
Normal file
49
.devilbox/www/htdocs/db_redis.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Redis Keys</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Redis')->isAvailable()): ?>
|
||||
<p>Redis container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped ">
|
||||
<thead class="thead-inverse ">
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Value</th>
|
||||
</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Redis')->getKeys() as $key => $value): ?>
|
||||
<tr>
|
||||
<td><?php echo $key;?></td>
|
||||
<td><?php print_r($value);?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
68
.devilbox/www/htdocs/debug.php
Normal file
68
.devilbox/www/htdocs/debug.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Devilbox Debug</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php $errors = loadClass('Logger')->getAll(); ?>
|
||||
<?php if ($errors === false): ?>
|
||||
<p>Writing to logfile is not possible. Errors will be sent as mail instead. Check the mail section.</p>
|
||||
<?php elseif (count($errors) === 0): ?>
|
||||
<p>No errors detected.</div>
|
||||
<?php else: ?>
|
||||
<?php $total = count($errors); ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>date</th>
|
||||
<th>Errors (<?php echo $total;?>)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php for ($i=($total-1); $i>=0; --$i): ?>
|
||||
<tr>
|
||||
<th><?php echo ($i+1);?></th>
|
||||
<th><code><?php echo $errors[$i]['date'];?></code></th>
|
||||
<th><code><?php echo $errors[$i]['head'];?></code></th>
|
||||
<?php if (isset($errors[$i]['body'])): ?>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<?php
|
||||
$dump = implode('', $errors[$i]['body']);
|
||||
//$dump = str_replace("=></font> \n", '=></font>', $dump);
|
||||
|
||||
?>
|
||||
<code><?php echo $dump; ?></code>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<?php endfor; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
28
.devilbox/www/htdocs/info_httpd.php
Normal file
28
.devilbox/www/htdocs/info_httpd.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Httpd info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||
<iframe style="width:100%; height:100vh; position:relative;" src="/devilbox-httpd-status" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
52
.devilbox/www/htdocs/info_memcd.php
Normal file
52
.devilbox/www/htdocs/info_memcd.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Memcached Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Memcd')->isAvailable()): ?>
|
||||
<p>Memcahed container is not running.</p>
|
||||
<?php else: ?>
|
||||
<?php foreach (loadClass('Memcd')->getInfo() as $srv => $data): ?>
|
||||
<h2><?php echo $srv; ?></h2>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($data as $key => $val): ?>
|
||||
<tr>
|
||||
<td><?php echo $key;?></td>
|
||||
<td class="break-word"><code><?php echo $val;?></code></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
49
.devilbox/www/htdocs/info_mongo.php
Normal file
49
.devilbox/www/htdocs/info_mongo.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>MongoDB Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Mongo')->isAvailable()): ?>
|
||||
<p>MongoDB container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Mongo')->getInfo() as $key => $val): ?>
|
||||
<tr>
|
||||
<td><?php print_r($key);?></td>
|
||||
<td class="break-word"><pre><?php print_r($val);?></pre></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
56
.devilbox/www/htdocs/info_mysql.php
Normal file
56
.devilbox/www/htdocs/info_mysql.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>MySQL Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Mysql')->isAvailable()): ?>
|
||||
<p>MySQL container is not running.</p>
|
||||
<?php else: ?>
|
||||
<p>For reference see here:</p>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html</a></li>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html</a></li>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html</a></li>
|
||||
</ul>
|
||||
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Mysql')->getConfig() as $key => $val): ?>
|
||||
<tr>
|
||||
<td><?php echo $key;?></td>
|
||||
<td class="break-word"><code><?php echo $val;?></code></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
49
.devilbox/www/htdocs/info_pgsql.php
Normal file
49
.devilbox/www/htdocs/info_pgsql.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>PostgreSQL Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Pgsql')->isAvailable()): ?>
|
||||
<p>PgSQL container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Pgsql')->getConfig() as $key => $val): ?>
|
||||
<tr>
|
||||
<td><?php echo $key;?></td>
|
||||
<td class="break-word"><code><?php echo $val;?></code></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
27
.devilbox/www/htdocs/info_php.php
Normal file
27
.devilbox/www/htdocs/info_php.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<style>
|
||||
/* prevent hhvm phpinfo() from shrinking the width */
|
||||
body {width: 100% !important;}
|
||||
</style>
|
||||
<?php phpinfo(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
49
.devilbox/www/htdocs/info_redis.php
Normal file
49
.devilbox/www/htdocs/info_redis.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Redis Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php if (!loadClass('Redis')->isAvailable()): ?>
|
||||
<p>Redis container is not running.</p>
|
||||
<?php else: ?>
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (loadClass('Redis')->getInfo() as $key => $val): ?>
|
||||
<tr>
|
||||
<td><?php echo $key;?></td>
|
||||
<td class="break-word"><code><?php echo $val;?></code></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
</body>
|
||||
</html>
|
66
.devilbox/www/htdocs/login.php
Normal file
66
.devilbox/www/htdocs/login.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php
|
||||
|
||||
// If login protection is disabled or user has already logged in
|
||||
if (loadClass('Helper')->isloggedIn()) {
|
||||
loadClass('Helper')->redirect('/');
|
||||
}
|
||||
|
||||
// Validate $_POST login
|
||||
|
||||
$login_error = '';
|
||||
|
||||
if (isset($_POST['username']) && isset($_POST['password'])) {
|
||||
|
||||
// Auth successful
|
||||
if (loadClass('Helper')->login($_POST['username'], $_POST['password'])) {
|
||||
loadClass('Helper')->redirect('/');
|
||||
}
|
||||
$login_error = 'Wrong username or password';
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" style="height: 100%;min-height: 100%;">
|
||||
<head>
|
||||
<?php echo loadClass('Html')->getHead(true); ?>
|
||||
</head>
|
||||
|
||||
<body style="height: 100%; min-height: 100%; text-align: center; color: #fff; text-shadow: 0 .05rem .1rem rgba(0,0,0,.5); background: #1f1f1f; margin-bottom:0 !important;">
|
||||
|
||||
<div class="site-wrapper">
|
||||
<div class="site-wrapper-inner">
|
||||
<div class="cover-container">
|
||||
<div class="container">
|
||||
<div class="inner cover">
|
||||
|
||||
<img src="/assets/img/banner.png" style="width:60%; padding-bottom:20px;"/>
|
||||
<h1 class="cover-heading">Devilbox Login</h1>
|
||||
|
||||
<div class="text-danger"><?php echo $login_error; ?></div>
|
||||
<form method="POST">
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-12">
|
||||
<input type="text" class="form-control" id="inputUsername" placeholder="Username" name="username" value="<?php echo isset($_POST['username']) ? $_POST['username'] : ''; ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-12">
|
||||
<input type="password" class="form-control" id="inputPassword" placeholder="Password" name="password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-sm-12">
|
||||
<button type="submit" class="btn btn-primary">Sign in</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
11
.devilbox/www/htdocs/logout.php
Normal file
11
.devilbox/www/htdocs/logout.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php
|
||||
|
||||
if (isset($_GET['id'])) {
|
||||
if ($_GET['id'] == session_id()) {
|
||||
loadClass('Helper')->logout();
|
||||
loadClass('Helper')->redirect('/login.php');
|
||||
}
|
||||
}
|
||||
|
||||
loadClass('Helper')->redirect('/');
|
@ -1,39 +1,98 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<?php
|
||||
require '../config.php';
|
||||
|
||||
//
|
||||
// $_POST submit for sending a test email
|
||||
//
|
||||
if (isset($_GET['email']) && isset($_GET['subject']) && isset($_GET['message'])) {
|
||||
$mail = $_GET['email'];
|
||||
$subj = $_GET['subject'];
|
||||
$mess = $_GET['message'];
|
||||
mail($mail, $subj, $mess);
|
||||
if (! mail($mail, $subj, $mess)) {
|
||||
loadClass('Logger')->error('Could not send mail to: '.$mail.' | subject: '.$subj);
|
||||
}
|
||||
header('Location: /mail.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
//
|
||||
// Includes
|
||||
//
|
||||
require $VEN_DIR . DIRECTORY_SEPARATOR . 'Mail' . DIRECTORY_SEPARATOR .'Mbox.php';
|
||||
require $VEN_DIR . DIRECTORY_SEPARATOR . 'Mail' . DIRECTORY_SEPARATOR .'mimeDecode.php';
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Mail.php';
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Sort.php';
|
||||
|
||||
//
|
||||
// Setup Sort/Order
|
||||
//
|
||||
|
||||
// Sort/Order settings
|
||||
$defaultSort = array('sort' => 'date', 'order' => 'DESC');
|
||||
$allowedSorts = array('date', 'subject', 'x-original-to', 'from');
|
||||
$allowedOrders = array('ASC', 'DESC');
|
||||
$GET_sortKeys = array('sort' => 'sort', 'order' => 'order');
|
||||
|
||||
// Get sort/order
|
||||
$MySort = new \devilbox\Sort($defaultSort, $allowedSorts, $allowedOrders, $GET_sortKeys);
|
||||
$sort = $MySort->getSort();
|
||||
$order = $MySort->getOrder();
|
||||
|
||||
// Evaluate Sorters/Orderers
|
||||
$orderDate = '<a href="/mail.php?sort=date&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a>';
|
||||
$orderFrom = '<a href="/mail.php?sort=from&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a>';
|
||||
$orderTo = '<a href="/mail.php?sort=x-original-to&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a>';
|
||||
$orderSubj = '<a href="/mail.php?sort=subject&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a>';
|
||||
|
||||
if ($sort == 'date') {
|
||||
if ($order == 'ASC') {
|
||||
$orderDate = '<a href="/mail.php?sort=date&order=DESC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-numeric-asc" aria-hidden="true"></i>';
|
||||
} else {
|
||||
$orderDate = '<a href="/mail.php?sort=date&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-numeric-desc" aria-hidden="true"></i> ';
|
||||
}
|
||||
} else if ($sort == 'subject') {
|
||||
if ($order == 'ASC') {
|
||||
$orderSubj = '<a href="/mail.php?sort=subject&order=DESC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>';
|
||||
} else {
|
||||
$orderSubj = '<a href="/mail.php?sort=subject&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>';
|
||||
}
|
||||
} else if ($sort == 'x-original-to') {
|
||||
if ($order == 'ASC') {
|
||||
$orderTo = '<a href="/mail.php?sort=x-original-to&order=DESC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>';
|
||||
} else {
|
||||
$orderTo = '<a href="/mail.php?sort=x-original-to&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>';
|
||||
}
|
||||
} else if ($sort == 'from') {
|
||||
if ($order == 'ASC') {
|
||||
$orderFrom = '<a href="/mail.php?sort=from&order=DESC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>';
|
||||
} else {
|
||||
$orderFrom = '<a href="/mail.php?sort=from&order=ASC"><i class="fa fa-sort" aria-hidden="true"></i></a> <i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Mbox Reader
|
||||
//
|
||||
$MyMbox = new \devilbox\Mail('/var/mail/devilbox');
|
||||
|
||||
|
||||
require '../include/vendor/Mail/Mbox.php';
|
||||
require '../include/vendor/Mail/mimeDecode.php';
|
||||
|
||||
$params['include_bodies'] = true;
|
||||
$params['decode_bodies'] = true;
|
||||
$params['decode_headers'] = true;
|
||||
$params['crlf'] = "\r\n";
|
||||
|
||||
$mbox = new Mail_Mbox('/var/mail/mailtrap');
|
||||
// If default sort is on, use NULL, so we do not have to sort the mails after retrieval,
|
||||
// because they are being read in the default sort/order anyway
|
||||
$sortOrderArr = $MySort->isDefault($sort, $order) ? null : array($sort => $order);
|
||||
$messages = $MyMbox->get($sortOrderArr);
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php require '../include/head.php'; ?>
|
||||
<?php echo loadClass('Html')->getHead(true); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
<?php echo loadClass('Html')->getNavbar(); ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Mail</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
@ -82,52 +141,68 @@ $mbox = new Mail_Mbox('/var/mail/mailtrap');
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<?php $mbox->open(); ?>
|
||||
<table class="table table-striped table-hover">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th style="word-break: normal;">Date</th>
|
||||
<th>To</th>
|
||||
<th>Subject</th>
|
||||
<th>Date <?php echo $orderDate;?></th>
|
||||
<th>From <?php echo $orderFrom;?></th>
|
||||
<th>To <?php echo $orderTo;?></th>
|
||||
<th>Subject <?php echo $orderSubj;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php for ($n = ($mbox->size()-1); $n >= 0; $n--): ?>
|
||||
<?php foreach ($messages as $data): ?>
|
||||
<?php
|
||||
$message = $mbox->get($n);
|
||||
$decode = new Mail_mimeDecode($message, "\r\n");
|
||||
$structure = $decode->decode($params);
|
||||
$message = $data['raw'];
|
||||
$structure = $data['decoded'];
|
||||
?>
|
||||
<tr id="<?php echo $n;?>" class="subject">
|
||||
<td><?php echo $n;?></td>
|
||||
<tr id="<?php echo $data['num'];?>" class="subject">
|
||||
<td><?php echo $data['num'];?></td>
|
||||
<td>
|
||||
<?php echo date('H:i', strtotime($structure->headers['date']));?><br/>
|
||||
<small><?php echo date('Y-m-d', strtotime($structure->headers['date']));?></small>
|
||||
</td>
|
||||
<td><?php echo htmlentities($structure->headers['from']);?></td>
|
||||
<td><?php echo $structure->headers['x-original-to'];?></td>
|
||||
<td><?php echo $structure->headers['subject'];?></td>
|
||||
</tr>
|
||||
<tr></tr>
|
||||
<tr id="mail-<?php echo $n;?>" style="display:none">
|
||||
<tr id="mail-<?php echo $data['num'];?>" style="display:none">
|
||||
<td></td>
|
||||
<td colspan="3">
|
||||
<pre><?php echo $message;?></pre>
|
||||
<td colspan="4">
|
||||
<?php if (isset($structure->body)): ?>
|
||||
<?php echo $structure->body ?>
|
||||
<?php elseif(isset($structure->parts[1]->body)): ?>
|
||||
<?php echo $structure->parts[1]->body ?>
|
||||
<?php elseif(isset($structure->parts[0]->body)): ?>
|
||||
<?php echo htmlentities($structure->parts[0]->body) ?>
|
||||
<?php else: ?>
|
||||
<?php echo '<div class="alert alert-warning" role="alert">
|
||||
No valid body found
|
||||
</div>' ?>
|
||||
<?php endif; ?>
|
||||
<hr>
|
||||
<p><a class="btn btn-primary" data-toggle="collapse" href="#email-<?php echo $data['num'];?>" aria-expanded="false" aria-controls="email-<?php echo $data['num'];?>">Raw source</a></p>
|
||||
<div class="collapse" id="email-<?php echo $data['num'];?>"><pre><?php echo $message;?></pre></div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endfor; ?>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php $mbox->close(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php require '../include/footer.php'; ?>
|
||||
<?php echo loadClass('Html')->getFooter(); ?>
|
||||
<script>
|
||||
$(function() {
|
||||
$('.subject').each(function() {
|
||||
|
@ -1,51 +0,0 @@
|
||||
<?php $CONNECT = TRUE; require '../config.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php require '../include/head.php'; ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>MySQL Info</h1>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<p>For reference see here:</p>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html</a></li>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html</a></li>
|
||||
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html</a></li>
|
||||
</ul>
|
||||
|
||||
<table class="table table-striped">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th style="word-break: normal;">Variable</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach (getMySQLConfig() as $key => $val): ?>
|
||||
<tr>
|
||||
<td style="word-break: normal;"><?php echo $key;?></td>
|
||||
<td><?php echo $val;?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php require '../include/footer.php'; ?>
|
||||
</body>
|
||||
</html>
|
@ -1,4 +1,5 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<?php loadClass('Helper')->authPage(); ?>
|
||||
<?php
|
||||
|
||||
/**
|
||||
@ -230,7 +231,7 @@ $opcache = OpCacheService::init($options);
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<?php require '../include/head.php'; ?>
|
||||
<?php echo loadClass('Html')->getHead(); /* devilbox edit */ ?>
|
||||
|
||||
|
||||
<meta charset="UTF-8"/>
|
||||
@ -238,7 +239,7 @@ $opcache = OpCacheService::init($options);
|
||||
<title>OPcache statistics on <?php echo $opcache->getData('version', 'host'); ?></title>
|
||||
<script src="/vendor/react/react.min.js"></script>
|
||||
<script src="/vendor/react/react-dom.min.js"></script>
|
||||
<script src="/vendor/jquery/jquery-2.2.3.min.js"></script>
|
||||
<script src="/vendor/jquery/jquery-3.2.1.min.js"></script>
|
||||
<style type="text/css">
|
||||
body { font-family:sans-serif; font-size:90%; padding: 0; margin: 0 }
|
||||
nav { padding-top: 20px; }
|
||||
@ -321,7 +322,7 @@ $opcache = OpCacheService::init($options);
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
<?php echo loadClass('Html')->getNavbar(); /* devilbox edit */?>
|
||||
|
||||
|
||||
|
||||
@ -766,6 +767,6 @@ $opcache = OpCacheService::init($options);
|
||||
var filesObj = ReactDOM.render(React.createElement(Files, null), document.getElementById('filelist'));
|
||||
ReactDOM.render(React.createElement(Directives, null), document.getElementById('directives'));
|
||||
</script>
|
||||
<?php require '../include/footer.php'; ?>
|
||||
<?php echo loadClass('Html')->getFooter(); /* devilbox edit */?>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,22 +0,0 @@
|
||||
<?php require '../config.php'; ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php require '../include/head.php'; ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php require '../include/navigation.php'; ?>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<?php phpinfo(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.container -->
|
||||
|
||||
<?php require '../include/footer.php'; ?>
|
||||
</body>
|
||||
</html>
|
1942
.devilbox/www/htdocs/vendor/adminer-4.6.2-en.php
vendored
Normal file
1942
.devilbox/www/htdocs/vendor/adminer-4.6.2-en.php
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.css.map
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.min.css
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.min.css.map
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-grid.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.css.map
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.min.css
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.min.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}html{-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#0275d8;text-decoration:none}a:focus,a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse;background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select,textarea{line-height:inherit}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type=search]{-webkit-appearance:none}output{display:inline-block}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.min.css.map
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap-reboot.min.css.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["../../scss/_normalize.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"4EAYA,KACE,YAAA,WACA,YAAA,KACA,qBAAA,KACA,yBAAA,KAUF,KACE,OAAA,EAOF,QAAA,MAAA,OAAA,OAAA,IAAA,QAME,QAAA,MAQF,GACE,UAAA,IACA,OAAA,MAAA,EAWF,WAAA,OAAA,KAGE,QAAA,MAOF,OACE,OAAA,IAAA,KAQF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAQF,IACE,YAAA,UAAA,UACA,UAAA,IAWF,EACE,iBAAA,YACA,6BAAA,QAQF,SAAA,QAEE,cAAA,EAQF,YACE,cAAA,KACA,gBAAA,UACA,gBAAA,UAAA,OAOF,EAAA,OAEE,YAAA,QAOF,EAAA,OAEE,YAAA,OAQF,KAAA,IAAA,KAGE,YAAA,UAAA,UACA,UAAA,IAOF,IACE,WAAA,OAOF,KACE,iBAAA,KACA,MAAA,KAOF,MACE,UAAA,IAQF,IAAA,IAEE,UAAA,IACA,YAAA,EACA,SAAA,SACA,eAAA,SAGF,IACE,OAAA,OAGF,IACE,IAAA,MAUF,MAAA,MAEE,QAAA,aAOF,sBACE,QAAA,KACA,OAAA,EAOF,IACE,aAAA,KAOF,eACE,SAAA,OAWF,OAAA,MAAA,SAAA,OAAA,SAKE,YAAA,WACA,UAAA,KACA,YAAA,KACA,OAAA,EAQF,OAAA,MAEE,SAAA,QAQF,OAAA,OAEE,eAAA,KASF,aAAA,cAAA,OAAA,mBAIE,mBAAA,OAOF,gCAAA,+BAAA,gCAAA,yBAIE,aAAA,KACA,QAAA,EAOF,6BAAA,4BAAA,6BAAA,sBAIE,QAAA,IAAA,OAAA,WAOF,SACE,OAAA,IAAA,MAAA,OACA,OAAA,EAAA,IACA,QAAA,MAAA,OAAA,MAUF,OACE,mBAAA,WAAA,WAAA,WACA,MAAA,QACA,QAAA,MACA,UAAA,KACA,QAAA,EACA,YAAA,OAQF,SACE,QAAA,aACA,eAAA,SAOF,SACE,SAAA,KCrKF,gBAAA,aD+KE,mBAAA,WAAA,WAAA,WACA,QAAA,EC1KF,yCAAA,yCDmLE,OAAA,KC9KF,cDuLE,mBAAA,UACA,eAAA,KCnLF,4CAAA,yCD4LE,mBAAA,KAQF,6BACE,mBAAA,OACA,KAAA,QAWF,QAAA,KAEE,QAAA,MAOF,QACE,QAAA,UAUF,OACE,QAAA,aAOF,SACE,QAAA,KCnNF,SD8NE,QAAA,KEtbF,KACE,mBAAA,WAAA,WAAA,WAGF,EAAA,QAAA,SAGE,mBAAA,QAAA,WAAA,QAoBA,cAAgB,MAAA,aAQlB,KAYE,mBAAA,UAGA,4BAAA,YAGF,KACE,YAAA,cAAA,UAAA,mBAAA,WAAA,OC2K4H,iBD3K5H,MAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IAEA,MAAA,QAEA,iBAAA,KD2LF,sBClLE,QAAA,YAYF,GAAI,GAAI,GAAI,GAAI,GAAI,GAClB,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KAIF,0BAAA,YAGE,OAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QAGF,GAAA,GAAA,GAGE,WAAA,EACA,cAAA,KAGF,MAAA,MAAA,MAAA,MAIE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAQF,EACE,MAAA,QACA,gBAAA,KEhJE,QAAA,QFmJA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KEhKE,oCAAA,oCFmKA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EASJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAGE,OAAA,EAAA,EAAA,KAQF,IAGE,eAAA,ODsIF,cCzHE,OAAA,QAcF,cAAA,EAAA,KAAA,OAAA,MAAA,MAAA,OAAA,QAAA,SASE,iBAAA,aAAA,aAAA,aAQF,MAEE,gBAAA,SAEA,iBAAA,YAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBAGF,OAAA,MAAA,OAAA,SAME,YAAA,QAGF,8BAAA,2BAMI,OAAA,YAKJ,iBAAA,iBAAA,2BAAA,kBASE,mBAAA,QAGF,SAEE,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAGF,OAEE,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QAGF,mBAKE,mBAAA,KAIF,OACE,QAAA,aDsEF,SC9DE,QAAA"}
|
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap.css.map
vendored
Normal file
1
.devilbox/www/htdocs/vendor/bootstrap/bootstrap.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
.devilbox/www/htdocs/vendor/jquery/jquery-3.2.1.min.js
vendored
Normal file
4
.devilbox/www/htdocs/vendor/jquery/jquery-3.2.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
471
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/ChangeLog
vendored
Normal file
471
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/ChangeLog
vendored
Normal file
@ -0,0 +1,471 @@
|
||||
phpMyAdmin - ChangeLog
|
||||
======================
|
||||
|
||||
4.0.10.20 (2017-03-28)
|
||||
- issue #12881 Fix database search when locale is not 'en'
|
||||
- issue [security] Possible to bypass $cfg['Servers'][$i]['AllowNoPassword'], see PMASA-2017-08
|
||||
|
||||
4.0.10.19 (2017-01-23)
|
||||
- issue [security] Multiple vulnerabilities in setup script, see PMASA-2016-44.
|
||||
- issue [security] Open redirect, see PMASA-2017-1.
|
||||
- issue [security] php-gettext code execution, see PMASA-2017-2.
|
||||
- issue [security] DOS vulnerabiltiy in table editing, see PMASA-2017-3.
|
||||
- issue [security] CSS injection in themes, see PMASA-2017-4.
|
||||
- issue [security] SSRF in replication, see PMASA-2017-6.
|
||||
- issue [security] DOS in replication status, see PMASA-2017-7.
|
||||
|
||||
4.0.10.18 (2016-11-24)
|
||||
- issue #12485 Do not show warning about short blowfish_secret if none is set
|
||||
- issue [security] Open redirection issue, see PMASA-2016-57
|
||||
- issue [security] Unsafe generation of $cfg['blowfish_secret'], see PMASA-2016-58
|
||||
- issue [security] phpMyAdmin's phpinfo functionality is removed, see PMASA-2016-59
|
||||
- issue [security] AllowRoot and allow/deny rule bypass with specially-crafted username, see PMASA-2016-60
|
||||
- issue [security] Username matching weaknesses with allow/deny rules, see PMASA-2016-61
|
||||
- issue [security] Full path disclosure (FPD) weaknesses, see PMASA-2016-63
|
||||
- issue [security] Multiple cross-site scripting (XSS) weaknesses, see PMASA-2016-64
|
||||
- issue [security] Multiple denial-of-service (DOS) vulnerabilities, see PMASA-2016-65
|
||||
- issue [security] Possible to bypass white-list protection for URL redirection, see PMASA-2016-66
|
||||
- issue [security] Multiple SQL injection vulnerabilities, see PMASA-2016-69
|
||||
- issue [security] Incorrect serialized string parsing, see PMASA-2016-70
|
||||
- issue [security] CSRF token not stripped from the URL, see PMASA-2016-71
|
||||
|
||||
4.0.10.17 (2016-08-16)
|
||||
- issue [security] Weaknesses with cookie encryption, see PMASA-2016-29
|
||||
- issue [security] Improve session cookie code for openid.php and signon.php example files
|
||||
- issue [security] Full path disclosure in openid.php and signon.php example files
|
||||
- issue [security] Multiple XSS vulnerabilities, see PMASA-2016-30
|
||||
- issue [security] Unsafe generation of BlowfishSecret (when not supplied by the user)
|
||||
- issue [security] Referrer leak when phpinfo is enabled
|
||||
- issue [security] PHP code injection, see PMASA-2016-32
|
||||
- issue [security] Full path disclosure, see PMASA-2016-33
|
||||
- issue [security] SQL injection attack, see PMASA-2016-34
|
||||
- issue [security] Local file exposure through LOAD DATA LOCAL INFILE, see PMASA-2016-35
|
||||
- issue [security] Local file exposure through symlinks with UploadDir, see PMASA-2016-36
|
||||
- issue [security] Path traversal with SaveDir and UploadDir, see PMASA-2016-37
|
||||
- issue [security] Denial-of-service attack through transformation feature, see PMASA-2016-41
|
||||
- issue [security] SQL injection vulnerability as control user, see PMASA-2016-42
|
||||
- issue [security] Verify data before unserializing, see PMASA-2016-43
|
||||
- issue [security] Use HTTPS for wiki links
|
||||
- issue Remove Swekey support
|
||||
- issue [security] Denial-of-service attack with $cfg['AllowArbitraryServer'] = true and persistent connections, see PMASA-2016-45
|
||||
- issue [security] Improve SSL certificate handling
|
||||
- issue [security] Fix full path disclosure in debugging code
|
||||
- issue [security] Possible circumvention of IP-based allow/deny rules with IPv6 and proxy server, see PMASA-2016-47
|
||||
- issue [security] Detect if user is logged in, see PMASA-2016-48
|
||||
- issue [security] Bypass URL redirection protection, see PMASA-2016-49
|
||||
- issue [security] Referrer leak, see PMASA-2016-50
|
||||
- issue [security] Reflected File Download, see PMASA-2016-51
|
||||
- issue [security] ArbitraryServerRegexp bypass, see PMASA-2016-52
|
||||
- issue [security] Denial-of-service attack by entering long password, see PMASA-2016-53
|
||||
- issue [security] Remote code execution vulnerability when running as CGI, see PMASA-2016-54
|
||||
- issue [security] Denial-of-service attack when PHP uses dbase extension, see PMASA-2016-55
|
||||
- issue [security] Remove tode execution vulnerability when PHP uses dbase extension, see PMASA-2016-56
|
||||
- issue [security] Denial-of-service attack by using for loops, see PMASA-2016-46
|
||||
|
||||
4.0.10.16 (2016-06-23)
|
||||
- issue [security] User SQL queries can be revealed through URL GET parameters, see PMASA-2016-14
|
||||
- issue [security] Limit list of sites which can be passwd through url.php.
|
||||
- issue [security] BBCode injection in setup script, see PMASA-2016-17
|
||||
- issue [security] DOS attack vulnerability, see PMASA-2016-22
|
||||
- issue [security] Multiple full path disclosure vulnerabilities, see PMASA-2016-26
|
||||
- issue [security] XSS attack when checking database privileges, see PMASA-2016-21
|
||||
- issue [security] XSS attack when MySQL server is using a specific payload log_bin directive, see PMASA-2016-26
|
||||
- issue [security] XSS vulnerabilities in Transformation feature, PMASA-2016-28
|
||||
|
||||
4.0.10.15 (2016-02-29)
|
||||
- issue [security] Multiple XSS vulnerabilities, see PMASA-2016-11.
|
||||
|
||||
4.0.10.14 (2016-01-29)
|
||||
- issue #11891 Error with PMA 4.0.10.13 with PHP 5.2
|
||||
|
||||
4.0.10.13 (2016-01-28)
|
||||
- issue [Security] Multiple full path disclosure vulnerabilities, see PMASA-2016-1
|
||||
- issue [Security] Unsafe generation of CSRF token, see PMASA-2016-2
|
||||
- issue [Security] Multiple XSS vulnerabilities, see PMASA-2016-3
|
||||
- issue [Security] Insecure password generation in JavaScript, see PMASA-2016-4
|
||||
- issue [Security] Unsafe comparison of CSRF token, see PMASA-2016-5
|
||||
|
||||
4.0.10.12 (2015-12-25)
|
||||
- issue [Security] Path disclosure, see PMASA-2015-6
|
||||
|
||||
4.0.10.11 (2015-09-23)
|
||||
- issue #11464 phpMyAdmin suggests upgrading to newer version not usable on that system
|
||||
|
||||
4.0.10.10 (2015-05-13)
|
||||
- bug #4899 [security] CSRF vulnerability in setup
|
||||
- bug #4900 [security] Vulnerability allowing Man-in-the-middle attack
|
||||
|
||||
4.0.10.9 (2015-03-04)
|
||||
- bug [security] Risk of BREACH attack, see PMASA-2015-1
|
||||
|
||||
4.0.10.8 (2015-01-07)
|
||||
- rfe #1588 recursive function too deep - operator change suggestion
|
||||
- rfe #1589 support early versions of PHP5.2 (register_shutdown_function)
|
||||
|
||||
4.0.10.7 (2014-12-03)
|
||||
- bug #4611 [security] DOS attack with long passwords
|
||||
|
||||
4.0.10.6 (2014-11-20)
|
||||
- bug #4578 [security] XSS vulnerability in table print view
|
||||
- bug #4579 [security] XSS vulnerability in zoom search page
|
||||
- bug #4594 [security] Path traversal in file inclusion of GIS factory
|
||||
- bug #4598 [security] XSS in multi submit
|
||||
- bug #4597 [security] XSS through pma_fontsize cookie
|
||||
|
||||
4.0.10.5 (2014-10-21)
|
||||
- bug #4562 [security] XSS in debug SQL output
|
||||
- bug #4563 [security] XSS in monitor query analyzer
|
||||
|
||||
4.0.10.4 (2014-10-01)
|
||||
- bug #4544 [security] XSS vulnerabilities in table search and table structure pages
|
||||
|
||||
4.0.10.3 (2014-09-13)
|
||||
- bug #4530 [security] DOM based XSS that results to a CSRF that creates a
|
||||
ROOT account in certain conditions
|
||||
|
||||
4.0.10.2 (2014-08-17)
|
||||
- bug #4501 [security] XSS in table browse page
|
||||
- bug #4502 [security] Self-XSS in enum value editor
|
||||
- bug #4503 [security] Self-XSSes in monitor
|
||||
- bug #4504 [security] Self-XSS in query charts
|
||||
- bug #4517 [security] XSS in relation view
|
||||
|
||||
4.0.10.1 (2014-07-17)
|
||||
- bug #4488 [security] XSS injection due to unescaped table name (triggers)
|
||||
- bug #4492 [security] XSS in AJAX confirmation messages
|
||||
|
||||
4.0.10.0 (2013-12-04)
|
||||
- bug #4150 Clicking database name in query window opens a new tab
|
||||
- bug #4141 Wrong page is shown after editing; also, do not show a modal
|
||||
dialog for multi-row edit
|
||||
- bug #3939 PHP NavigationTree error when paging through list
|
||||
- bug #4075 Support A10 Networks load balancer
|
||||
- bug #4083 row deleting isn't binlogs friendly
|
||||
- bug #4163 Setup script does not recognize manually-configured server
|
||||
- bug #4158 Events page says no privileges with ALL PRIVILEGES
|
||||
|
||||
4.0.9.0 (2013-11-04)
|
||||
- bug #4104 Can't edit updatable view when searching
|
||||
- bug #4108 Missing refresh by deleting databases
|
||||
- bug #3995 Drizzle server charset notice
|
||||
- bug #3911 Filtering database names includes empty groupings
|
||||
- bug #3678 Does not display or manipulate bit(64) fields appropriately
|
||||
- bug #4129 Unneeded navi panel refresh
|
||||
- bug #4120 SSL redirects to port 80
|
||||
- bug #4144 DROP DATABASE displays wrong database name
|
||||
- bug #4059 Running delete query asks for confirmation but says it was already executed
|
||||
- bug #4147 Accessibility: Images without Alt nor title attribute
|
||||
|
||||
4.0.8.0 (2013-10-06)
|
||||
- bug #3988 Rename view is not working
|
||||
- bug #4041 Interaction between linkified fields and grid editing
|
||||
- bug #3975 Table grouping isn't implemented properly
|
||||
- bug #4060 Browser tries to remember wrong password when creating new user
|
||||
- bug #4002 Edit Index on big table doesn't show "Loading" or any message
|
||||
- bug #4098 Default table tab is ignored
|
||||
- bug #4099 Server/library difference warning: setting is ignored
|
||||
- bug #4100 table tree group strategy
|
||||
- bug #4102 ALTER TABLE ORDER BY and InnoDB
|
||||
- bug #4103 Tracking report: cannot delete a statement
|
||||
- bug #3996 Drizzle navigation doesn't expand
|
||||
- bug #4074 GIS column editor: point not displayed
|
||||
- bug #4109 Drizzle tables in navigation are shown as views
|
||||
- bug #4095 NUL symbols added to the end of database dump file
|
||||
- bug #4105 More disappears in table Structure
|
||||
- bug #3992 Multi-row edit doesn't clear values when checking NULL
|
||||
|
||||
4.0.7.0 (2013-09-23)
|
||||
- bug #3993 Sorting in database overview with statistics doesn't work
|
||||
- bug Handle the situation where PHP_SELF is not set
|
||||
- bug #4080 Overwrite existing file not obeyed
|
||||
- bug #3929 Database-specific privileges are not copied when cloning user
|
||||
- bug #3997 Error handling in case MySQL extension is missing
|
||||
- bug #4089 Moving Columns will alter column definition
|
||||
- bug #4091 Insert ignore option does not work
|
||||
- bug #4090 Downloading BLOB downloads page template
|
||||
- bug #4092 Clicking on table name in view of information_schema redirects to wrong page
|
||||
- bug #4079 Copy Table Add AUTO_INCREMENT value checkbox not working
|
||||
- bug #4088 MySQL server version at index.php incorrect w/ controlhost
|
||||
- bug #4001 Import error: Class 'ImportOds' not found
|
||||
- bug #3986 Missing DROP VIEW button
|
||||
|
||||
4.0.6.0 (2013-09-05)
|
||||
- bug #4036 Call to undefined function mb_detect_encoding (clarify the doc)
|
||||
- bug Missing hints when changing a column's structure
|
||||
- bug #4048 Cannot select foreign value in Search
|
||||
- bug #4025 gzip export is not actually compressed with mod_deflate
|
||||
- bug #4054 query analysis doesn't launch in status monitor
|
||||
+ Add pmahomme icon credits (FamFamFam silk icon set)
|
||||
- bug #4064 Table structure statistics "Space usage" caption too small for l10n
|
||||
- bug #4051 Wrong tabindex when inserting rows
|
||||
- bug #4066 varchar field not truncated in table browse mode
|
||||
+ rfe #1435 Opening database should expand it in the navigation menu
|
||||
- (performance) Removed ShowTooltip directive
|
||||
- bug #4046 Exporting huge Tables causes memory-Problems
|
||||
|
||||
4.0.5.0 (2013-08-04)
|
||||
- bug #3977 Not detected configuration storage
|
||||
- bug #3970 Pressing enter in the filter field reloads page
|
||||
- bug #3984 Cannot insert in this table (PHP < 5.4)
|
||||
- bug #3989 Reloading privileges does not update the interface
|
||||
- bug #3960 NavigationBarIconic config not honored
|
||||
- bug #3985 Call to undefined function mb_detect_encoding
|
||||
- bug #4007 Analyze option not shown for InnoDB tables
|
||||
- bug #4015 Forcing a storage engine for configuration storage
|
||||
- bug Incorrect Drizzle 7 detection
|
||||
- bug #4019 Create database if not exists (export): add an option to the
|
||||
interface to enable generating CREATE DATABASE and USE (false by default)
|
||||
- bug #4012 Crash on CSV file import
|
||||
- bug #4009 Statistic Monitor shows only last 3 digits in graph
|
||||
- bug #3998 Non-permanent SQL history not working
|
||||
- bug #3578 Transformations for text/plain on a BLOB column
|
||||
- [security] Improved protection against cross framing, see PMASA-2013-10
|
||||
+ Reinstated configuration directive: AllowThirdPartyFraming
|
||||
|
||||
4.0.4.2 (2013-07-28)
|
||||
- [security] fix unescaped parameter, see PMASA-2013-8
|
||||
- [security] Fix stored XSS in Server status monitor, see PMASA-2013-9
|
||||
- [security] Fix stored XSS in navigation panel logo link, see PMASA-2013-9
|
||||
- [security] Fix self-XSS in setup, trusted proxies validation, see PMASA-2013-9
|
||||
- [security] Fix full path disclosure, see PMASA-2013-12
|
||||
- [security] Fix control user SQL injection in pmd_pdf.php, see PMASA-2013-15
|
||||
- [security] Fix control user SQL injection in schema_export.php, see PMASA-2013-15
|
||||
- [security] Fix self-XSS in schema export, see PMASA-2013-14
|
||||
- [security] Fix unencoded json object, see PMASA-2013-11
|
||||
- [security] Fix stored XSS in link transformation plugin, see PMASA-2013-13
|
||||
|
||||
4.0.4.1 (2013-06-30)
|
||||
- [security] Global variables scope injection vulnerability (see PMASA-2013-7)
|
||||
|
||||
4.0.4.0 (2013-06-17)
|
||||
- bug #3959 Using DefaultTabDatabase in NavigationTree for Database Click
|
||||
- bug #3961 Avoid Suhosin warning when in simulation mode
|
||||
- bug #3897 Row Statistics and Space usage bugs
|
||||
- bug #3966 Only display "table has no unique column" message when applicable
|
||||
- bug #3965 Default language wrong with zh-TW
|
||||
- bug #3921 Call to undefined function PMA_isSuperuser() if default server is
|
||||
not set
|
||||
- bug #3971 Ctrl/shift + click opens links in same window
|
||||
- bug #3964 Import using https does not work
|
||||
- bug Missing removeCRLF option in ExportCsv and ExportExcel plugins
|
||||
- bug #3631 Drop not working Visio schema export.
|
||||
- bug #3645 Better handling of invalid ODS documents
|
||||
- bug #3976 Number of pages
|
||||
- bug #3922 User privileges, database name unescaped
|
||||
|
||||
4.0.3.0 (2013-06-05)
|
||||
- bug #3941 Recent tables list always empty
|
||||
- bug #3933 Do not translate "Open Document" in export settings
|
||||
- bug #3927 List of tables is missing after expanding in the navigation frame
|
||||
- bug #3942 Warnings about reserved word for many non reserved words
|
||||
- bug #3912 Exporting row selection, resulted by ORDER BY query
|
||||
- bug #3957 Cookies must be enabled past this point
|
||||
- bug #3956 "Browse foreign values" search filter / page selector not working
|
||||
- bug #3579 NOW() function incorrectly selected (partial regression)
|
||||
- [security] Javascript execution vulnerability in Create view,
|
||||
reported by Maxim Rupp (see PMASA-2013-6)
|
||||
|
||||
4.0.2.0 (2013-05-24)
|
||||
- bug #3902 Cannot browse when table name contains keyword "call"
|
||||
+ center loading indicator for navigation refresh, related to bug #3920
|
||||
- bug #3925 Table sorting in navigation panel is case-sensitive
|
||||
- bug #3915 Import of CSV file (Replace table data with file) with duplicate values
|
||||
- bug #3907 undefined variables, function parameter problems
|
||||
- bug #3898 Structure not refreshed after column drop
|
||||
- bug #3926 View is not updatable
|
||||
- bug #3919 PropertiesIconic not honored
|
||||
- bug #3930 Databases to choose for specific privileges show up escaped
|
||||
- bug #3910 Export database with empty table as a php array, does not produce valid PHP
|
||||
- bug #3936 Query profiler chart not loading from SQL Query page
|
||||
- bug #3946 Missing CSV import option "Do not abort on INSERT error"
|
||||
- bug #3943 Missing Operations>Table options>AUTO_INCREMENT
|
||||
- bug Missing CREATE DATABASE statement when exporting at database level
|
||||
- bug #3924 Show warning when CSV file does not contain data for all columns
|
||||
- bug #3947 Missing Sql Query after modify structure
|
||||
- bug #3948 Server export problems
|
||||
- bug #3917 CountTables directive is deprecated
|
||||
|
||||
4.0.1.0 (2013-05-14)
|
||||
- bug #3879 Import broken for CSV using LOAD DATA
|
||||
- bug #3889 When login fails and error display is active, login data is displayed
|
||||
- bug #3890 [import] Web server upload directory import fails
|
||||
- bug #3891 [import] Server upload folder import file name missing in success message
|
||||
+ rfe #1421 [auth] Add retry button on connection failure with config auth
|
||||
- bug #3894 [interface] Provide feedback if no columns selected for multi-submit
|
||||
- bug #3799 [interface] Incorrect select field change on ctrl key navigation in Firefox
|
||||
- bug #3885 [browse] display_binary_as_hex option causes unexpected behavior
|
||||
- bug #3899 Git commit links to Github missing
|
||||
- bug #3900 CSP WARN in Firefox console
|
||||
- bug #3901 Setup script warning for config auth (stored login data) shows link BBcode
|
||||
- bug #3895 [browse] Fixed getting BLOB data
|
||||
- bug #3905 [export] Custom Exporting exports all databases
|
||||
- bug #3909 [import] Import of CSV FIle to selected table doesn't work
|
||||
- bug #3904 Browsing an empty table should not display its Structure
|
||||
- bug #3908 Calendar widget improperly redirects to home
|
||||
- bug #3918 Greyed out tabs when there are no rows fixed
|
||||
- bug #3916 [interface] Missing scrollbar (original theme)
|
||||
+ [vendor] add tcpdf path to vendor_config.php
|
||||
- bug fix compat with tcpdf >= 6.0 (tested with 6.0.012)
|
||||
|
||||
4.0.0.0 (2013-05-03)
|
||||
+ Patch #3481047 for rfe #3480477 Insert as new row enhancement
|
||||
+ Patch #3480999 Activate codemirror in the query window
|
||||
- Patch #3495284 XML Import - fix message and redirect
|
||||
+ rfe #3484063 Null checkbox behavior
|
||||
+ Patch #3497179 Contest-5: Add user: Allow create DB w/same name + grant u_%
|
||||
+ Patch #3498201 Contest-6: Export all privileges
|
||||
+ Patch #3502814 for rfe #3187077 Change password buttons should match
|
||||
+ rfe #3488640 Expand table-group in non-light navigation frame if only one
|
||||
+ Patch #3509360 Contest-3: Option "Truncate table" before "insert"
|
||||
+ Patch #3506552 Contest-2: Show index information in the data dictionary
|
||||
+ Patch #3510656 Contest-1: Ignoring foreign keys while dropping tables
|
||||
- Bug #3509686 Reverting sort on joined column does not work
|
||||
+ New transformation: append string
|
||||
+ rfe #3507804 Session upload progress (PHP 5.4)
|
||||
+ rfe #3488185 draggable columns vs copy column name
|
||||
+ Patch #3507001 Contest-4: Textarea for large character columns
|
||||
+ Removed the PHP version of the ENUM editor
|
||||
+ Patch #3507111 Display distinct results, linked to corresponding data rows
|
||||
- bug #3507917 [export] JSON has unescaped values for allegedly numeric columns
|
||||
+ rfe #3516187 show tables creation, last update, last check timestamps in db_structure
|
||||
- bug #3059806 Supporting running from CIFS/Samba shares
|
||||
- bug #3516341 [export] Open Document Text, Word and Texy! Text show table structure twice
|
||||
- bug [export] Texy! Text: Columns containing Pipe Character don't export properly
|
||||
+ [export] Show triggers in Open Document Text, Word and Texy! Text
|
||||
- Patch #3415061 [auth] Login screen appears under the page
|
||||
+ rfe #3517354 [interface] Allow disabling CodeMirror with $cfg['CodemirrorEnable'] = false
|
||||
+ rfe #3475567 [interface] New directive $cfg['HideStructureActions']
|
||||
- bug #3468272 [import] Fixed import of ODS with more paragraphs in a cell
|
||||
- bug #3510196 [core] Improved redirecting with ForceSSL option
|
||||
+ rfe #3518852 [edit] edit blob but not other binary, new option $cfg['ProtectBinary'] = 'noblob'
|
||||
+ Hide language select box if there are no locales installed
|
||||
+ Removed some directives: verbose_check, SuggestDBName, LightTabs,
|
||||
VerboseMultiSubmit, ReplaceHelpImg
|
||||
- Patch #3500882 Fixing checkbox behaviour while editing identical rows
|
||||
+ rfe #3441722 [interface] Display description of datatypes
|
||||
+ rfe #3517835 [structure] Move columns easily
|
||||
+ Ajaxified "Create View" functionality
|
||||
+ [import] New plugin: import mediawiki
|
||||
+ New navigation system
|
||||
+ Discontinued the use of a frame-based layout
|
||||
+ rfe #3528994 [interface] Allow wrapping possibly long values in replication-status table
|
||||
+ [interface] Autoselect username input on cookie login page
|
||||
- bug #3563799 [interface] Grid editing destroying huge amount of data
|
||||
+ [import] Remove support for the unactive docSQL import format
|
||||
- bug #3577443 [edit] "Browse foreign values" does not show on ajax edit
|
||||
+ rfe #3522109 [browse] Grid editing: action to trigger it (or disable)
|
||||
- bug #3526598 [interface] SQL query not shown when creating table
|
||||
+ Dropped configuration directive: AllowThirdPartyFraming
|
||||
+ Dropped configuration directive: LeftFrameLight
|
||||
+ Dropped configuration directive: DisplayDatabasesList
|
||||
+ Dropped configuration directives: ShowTooltipAliasDB and ShowTooltipAliasTB
|
||||
+ Dropped configuration directive: NaviDatabaseNameColor
|
||||
+ Added configuration directive: MaxNavigationItems
|
||||
+ Renamed configuration directive: LeftFrameDBTree => NavigationTreeEnableGrouping
|
||||
+ Renamed configuration directive: LeftFrameDBSeparator => NavigationTreeDbSeparator
|
||||
+ Renamed configuration directive: LeftFrameTableSeparator => NavigationTreeTableSeparator
|
||||
+ Renamed configuration directive: LeftFrameTableLevel => NavigationTreeTableLevel
|
||||
+ Renamed configuration directive: LeftPointerEnable => NavigationTreePointerEnable
|
||||
+ Renamed configuration directive: LeftDefaultTabTable => NavigationTreeDefaultTabTable
|
||||
+ Renamed configuration directive: LeftDisplayTableFilterMinimum => NavigationTreeDisplayTableFilterMinimum
|
||||
+ Renamed configuration directive: LeftDisplayLogo => NavigationDisplayLogo
|
||||
+ Renamed configuration directive: LeftLogoLink => NavigationLogoLink
|
||||
+ Renamed configuration directive: LeftLogoLinkWindow => NavigationLogoLinkWindow
|
||||
+ Renamed configuration directive: LeftDisplayServers => NavigationDisplayServers
|
||||
+ Renamed configuration directive: LeftRecentTable => NumRecentTables
|
||||
+ Renamed configuration directive: LeftDisplayDatabaseFilterMinimum => NavigationTreeDisplayDbFilterMinimum
|
||||
+ Removed the "Mark row on click" feature; must now click the checkbox to mark
|
||||
+ Removed the "Synchronize" feature
|
||||
+ Improved layout of server variables page
|
||||
+ rfe #1052091 [config] Double-underscores in PMA table names
|
||||
+ Improved the "More" dropdown on the table structure page
|
||||
+ [interface] Added "scroll to top" link in menubar
|
||||
+ [designer] Fullscreen mode for the designer
|
||||
+ Upgraded jquery to v1.8.3 and jquery-ui to v1.9.2
|
||||
+ Patch #3597529 [status] Add raw value as title on server status page
|
||||
+ Support MySQL 5.6 partitioning
|
||||
+ Removed the AjaxEnable directive
|
||||
+ rfe #3542567 Accept IPv6 ranges and IPv6 CIDR notations in $cfg['Servers'][$i]['AllowDeny']['rules']
|
||||
- Bug #3576788 Grid editing shows the value before silent truncation
|
||||
- Upgraded jqPlot to 1.0.4 r1121
|
||||
- Upgraded to jquery-ui-timepicker-addon 1.1.1
|
||||
+ rfe #3599046 [interface] Added comments for indexes
|
||||
- Replaced qtip with jQuery UI tooltip
|
||||
- Upgraded CodeMirror to 2.37
|
||||
- bug #2951 [export] Correctly export decimal fields.
|
||||
- bug #3762 [core] Make Advisor work on Windows withou COM extension.
|
||||
- bug #3519 [export] Prevent infinite recursion in PDF export.
|
||||
- bug #3827 Table specific privileges not displayed for db name containing
|
||||
underscore
|
||||
- rfe #1386 Add IF NOT EXISTS clause when copying database
|
||||
- No longer package .travis.yml configuration file when creating a release.
|
||||
- bug #3830 Can't export custom query because it lowercases table names
|
||||
- bug #3829 Enabling query profiling crashes javascript based navigation
|
||||
+ rfe #879 Reserved word warning
|
||||
+ Remove the database ordering sub-feature of the only_db directive
|
||||
- bug #3840 When exporting to gzip format, the data is compressed 2 times
|
||||
+ rfe #1319 Permit to create index when creating foreign key
|
||||
- bug #3703 Incorrect updating of the list of users
|
||||
- bug #3853 Blowfish implementation might be broken (replace with phpseclib)
|
||||
- bug #3865 Using like operator on each backslash needs 4 backslash protection
|
||||
- bug #3860 Displayed git revision info is not set
|
||||
- bug #3871 Check referential integrity broken across databases
|
||||
- bug #3874 [export] No preselected option when exporting table
|
||||
- bug #3873 Can't copy table to target database if table exists there
|
||||
- bug #3683 Incorrect listing of records from to count
|
||||
- bug #3876 [import] PHP 5.2 - unexpected T_PAAMAYIM_NEKUDOTAYIM
|
||||
- [security] Local file inclusion vulnerability, reported by Janek Vind
|
||||
(see PMASA-2013-4)
|
||||
- [security] Global variables overwrite in export.php, reported by Janek Vind
|
||||
(see PMASA-2013-5)
|
||||
- bug #3892 [export] SQL Export files are empty
|
||||
|
||||
3.5.8.2 (2013-07-28)
|
||||
- [security] Fix self-XSS in "Showing rows", see PMASA-2013-8
|
||||
- [security] Fix self-XSS in Display chart, see PMASA-2013-9
|
||||
- [security] Fix stored XSS in Server status monitor, see PMASA-2013-9
|
||||
- [security] Fix stored XSS in navigation panel logo link, see PMASA-2013-9
|
||||
- [security] Fix self-XSS in setup, trusted proxies validation, see PMASA-2013-9
|
||||
+ [security] JSON content type header for version_check.php, see PMASA-2013-9
|
||||
+ [security] Backport fix for jQuery issue #9521 from jQuery 1.6.3, see PMASA-2013-9
|
||||
+ [security] Fix full path disclosure, see PMASA-2013-12
|
||||
+ [security] Fix control user SQL injection in pmd_pdf.php, see PMASA-2013-15
|
||||
+ [security] Fix control user SQL injection in schema_export.php, see PMASA-2013-15
|
||||
- [security] Fix self-XSS in schema export, see PMASA-2013-14
|
||||
- [security] Fix unencoded json object, see PMASA-2013-11
|
||||
|
||||
3.5.8.1 (2013-04-24)
|
||||
- [security] Remote code execution (preg_replace), reported by Janek Vind
|
||||
(see PMASA-2013-2)
|
||||
- [security] Locally Saved SQL Dump File Multiple File Extension Remote Code
|
||||
Execution, reported by Janek Vind (see PMASA-2013-3)
|
||||
|
||||
3.5.8.0 (2013-04-08)
|
||||
- bug #3828 MariaDB reported as MySQL
|
||||
- bug #3854 Incorrect header for Safari 6.0
|
||||
- bug #3705 Attempt to open trigger for edit gives NULL
|
||||
- Use HTML5 DOCTYPE
|
||||
- [security] Self-XSS on GIS visualisation page, reported by Janek Vind
|
||||
- bug #3800 Incorrect keyhandler behaviour #2
|
||||
|
||||
3.5.7.0 (2013-02-15)
|
||||
- bug #3779 [core] Problem with backslash in enum fields
|
||||
- bug #3816 Missing server_processlist.php
|
||||
- bug #3821 Safari: white page
|
||||
- Correct detection of the Chrome browser
|
||||
|
||||
3.5.6.0 (2013-01-28)
|
||||
- bug #3593604 [status] Erroneous advisor rule
|
||||
- bug #3596070 [status] localStorage broken in server status monitor
|
||||
- bug #3598736 [routines] Editing a procedure with special characters
|
||||
- bug #3600322 [core] Visualize GIS data throws Fatal Error
|
||||
- bug #3599362 [core] Double-escaped error message
|
||||
- bug #3776 [cookies] Login without auth on second server
|
||||
|
||||
--- Older ChangeLogs can be found on our project website ---
|
||||
https://www.phpmyadmin.net/old-stuff/ChangeLogs/
|
||||
|
||||
# vim: et ts=4 sw=4 sts=4
|
||||
# vim: ft=changelog fenc=utf-8
|
||||
# vim: fde=getline(v\:lnum-1)=~'^\\s*$'&&getline(v\:lnum)=~'\\S'?'>1'\:1&&v\:lnum>4&&getline(v\:lnum)!~'^#'
|
||||
# vim: fdn=1 fdm=expr
|
340
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/LICENSE
vendored
Normal file
340
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/LICENSE
vendored
Normal file
@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
84
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/README
vendored
Normal file
84
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/README
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
phpMyAdmin - Readme
|
||||
===================
|
||||
|
||||
Version 4.0.10.20
|
||||
|
||||
A set of PHP-scripts to manage MySQL over the web.
|
||||
|
||||
https://www.phpmyadmin.net/
|
||||
|
||||
Copyright
|
||||
---------
|
||||
|
||||
Copyright (C) 1998-2000
|
||||
Tobias Ratschiller <tobias_at_ratschiller.com>
|
||||
|
||||
Copyright (C) 2001-2014
|
||||
Marc Delisle <marc_at_infomarc.info>
|
||||
Olivier Müller <om_at_omnis.ch>
|
||||
Robin Johnson <robbat2_at_users.sourceforge.net>
|
||||
Alexander M. Turek <me_at_derrabus.de>
|
||||
Michal Čihař <michal_at_cihar.com>
|
||||
Garvin Hicking <me_at_supergarv.de>
|
||||
Michael Keck <mkkeck_at_users.sourceforge.net>
|
||||
Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
|
||||
[check documentation for more details]
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License version 2, as published by the
|
||||
Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* PHP 5.2 or later
|
||||
* MySQL 5.0 or later
|
||||
* a web-browser (doh!)
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
phpMyAdmin is intended to handle the administration of MySQL over the web.
|
||||
For a summary of features, please see the documentation in the doc folder.
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
You can get the newest version at https://www.phpmyadmin.net/.
|
||||
|
||||
More Information
|
||||
----------------
|
||||
|
||||
Please see the documentation in the doc folder.
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
See reference about support forums under https://www.phpmyadmin.net/
|
||||
|
||||
|
||||
Enjoy!
|
||||
------
|
||||
|
||||
The phpMyAdmin Devel team
|
||||
|
||||
|
||||
PS:
|
||||
|
||||
Please, don't send us emails with question like "How do I compile PHP with
|
||||
MySQL-support". We just don't have the time to be your free help desk.
|
||||
|
||||
Please send your questions to the appropriate mailing lists / forums. Before
|
||||
contacting us, please read the documentation (especially the FAQ part).
|
||||
|
1
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/RELEASE-DATE-4.0.10.20
vendored
Normal file
1
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/RELEASE-DATE-4.0.10.20
vendored
Normal file
@ -0,0 +1 @@
|
||||
Wed Mar 29 01:02:30 UTC 2017
|
347
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/browse_foreigners.php
vendored
Normal file
347
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/browse_foreigners.php
vendored
Normal file
@ -0,0 +1,347 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* display selection for relational field values
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
|
||||
/**
|
||||
* Sets globals from $_REQUEST
|
||||
*/
|
||||
$request_params = array(
|
||||
'field',
|
||||
'fieldkey',
|
||||
'foreign_filter',
|
||||
'pos',
|
||||
'rownumber'
|
||||
);
|
||||
|
||||
foreach ($request_params as $one_request_param) {
|
||||
if (isset($_REQUEST[$one_request_param])) {
|
||||
$GLOBALS[$one_request_param] = $_REQUEST[$one_request_param];
|
||||
}
|
||||
}
|
||||
|
||||
PMA_Util::checkParameters(array('db', 'table', 'field'));
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->getFooter()->setMinimal();
|
||||
$header = $response->getHeader();
|
||||
$header->disableMenu();
|
||||
$header->setBodyId('body_browse_foreigners');
|
||||
|
||||
/**
|
||||
* Displays the frame
|
||||
*/
|
||||
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
$foreigners = ($cfgRelation['relwork'] ? PMA_getForeigners($db, $table) : false);
|
||||
|
||||
$override_total = true;
|
||||
|
||||
if (! isset($pos)) {
|
||||
$pos = 0;
|
||||
}
|
||||
|
||||
$foreign_limit = 'LIMIT ' . $pos . ', ' . $GLOBALS['cfg']['MaxRows'] . ' ';
|
||||
if (isset($foreign_navig) && $foreign_navig == __('Show all')) {
|
||||
unset($foreign_limit);
|
||||
}
|
||||
|
||||
$foreignData = PMA_getForeignData(
|
||||
$foreigners, $field, $override_total,
|
||||
isset($foreign_filter) ? $foreign_filter : '', $foreign_limit
|
||||
);
|
||||
|
||||
if (isset($rownumber)) {
|
||||
$rownumber_param = '&rownumber=' . urlencode($rownumber);
|
||||
} else {
|
||||
$rownumber_param = '';
|
||||
}
|
||||
|
||||
$gotopage = '';
|
||||
$showall = '';
|
||||
|
||||
if (is_array($foreignData['disp_row'])) {
|
||||
|
||||
if ($cfg['ShowAll']
|
||||
&& ($foreignData['the_total'] > $GLOBALS['cfg']['MaxRows'])
|
||||
) {
|
||||
$showall = '<input type="submit" name="foreign_navig" value="'
|
||||
. __('Show all') . '" />';
|
||||
}
|
||||
|
||||
$session_max_rows = $GLOBALS['cfg']['MaxRows'];
|
||||
$pageNow = @floor($pos / $session_max_rows) + 1;
|
||||
$nbTotalPage = @ceil($foreignData['the_total'] / $session_max_rows);
|
||||
|
||||
if ($foreignData['the_total'] > $GLOBALS['cfg']['MaxRows']) {
|
||||
$gotopage = PMA_Util::pageselector(
|
||||
'pos',
|
||||
$session_max_rows,
|
||||
$pageNow,
|
||||
$nbTotalPage,
|
||||
200,
|
||||
5,
|
||||
5,
|
||||
20,
|
||||
10,
|
||||
__('Page number:')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// When coming from Table/Zoom search
|
||||
if (isset($_REQUEST['fromsearch'])) {
|
||||
// In table or zoom search, input fields are named "criteriaValues"
|
||||
$element_name = " var field = 'criteriaValues';\n";
|
||||
} else {
|
||||
// In insert/edit, input fields are named "fields"
|
||||
$element_name = " var field = 'fields';\n";
|
||||
}
|
||||
|
||||
if (isset($rownumber)) {
|
||||
$element_name .= " var element_name = field + '[multi_edit]["
|
||||
. htmlspecialchars($rownumber) . "][' + fieldmd5 + ']';\n"
|
||||
. " var null_name = field_null + '[multi_edit]["
|
||||
. htmlspecialchars($rownumber) . "][' + fieldmd5 + ']';\n";
|
||||
} else {
|
||||
$element_name .= "var element_name = field + '[]'";
|
||||
}
|
||||
$error = PMA_jsFormat(
|
||||
__(
|
||||
'The target browser window could not be updated. '
|
||||
. 'Maybe you have closed the parent window, or '
|
||||
. 'your browser\'s security settings are '
|
||||
. 'configured to block cross-window updates.'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
if (! isset($fieldkey) || ! is_numeric($fieldkey)) {
|
||||
$fieldkey = 0;
|
||||
}
|
||||
|
||||
$code = <<<EOC
|
||||
self.focus();
|
||||
function formupdate(fieldmd5, key) {
|
||||
var \$inline = window.opener.jQuery('.browse_foreign_clicked');
|
||||
if (\$inline.length != 0) {
|
||||
\$inline.removeClass('browse_foreign_clicked')
|
||||
// for grid editing,
|
||||
// puts new value in the previous element which is
|
||||
// a span with class curr_value, and trigger .change()
|
||||
.prev('.curr_value').text(key).change();
|
||||
// for zoom-search editing, puts new value in the previous
|
||||
// element which is an input field
|
||||
\$inline.prev('input[type=text]').val(key);
|
||||
self.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (opener && opener.document && opener.document.insertForm) {
|
||||
var field = 'fields';
|
||||
var field_null = 'fields_null';
|
||||
|
||||
$element_name
|
||||
|
||||
var element_name_alt = field + '[$fieldkey]';
|
||||
|
||||
if (opener.document.insertForm.elements[element_name]) {
|
||||
// Edit/Insert form
|
||||
opener.document.insertForm.elements[element_name].value = key;
|
||||
if (opener.document.insertForm.elements[null_name]) {
|
||||
opener.document.insertForm.elements[null_name].checked = false;
|
||||
}
|
||||
self.close();
|
||||
return false;
|
||||
} else if (opener.document.insertForm.elements[element_name_alt]) {
|
||||
// Search form
|
||||
opener.document.insertForm.elements[element_name_alt].value = key;
|
||||
self.close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
alert('$error');
|
||||
}
|
||||
EOC;
|
||||
|
||||
$header->getScripts()->addCode($code);
|
||||
|
||||
// HTML output
|
||||
$output = '<form action="browse_foreigners.php" method="post">'
|
||||
. '<fieldset>'
|
||||
. PMA_generate_common_hidden_inputs($db, $table)
|
||||
. '<input type="hidden" name="field" value="' . htmlspecialchars($field) . '" />'
|
||||
. '<input type="hidden" name="fieldkey" value="'
|
||||
. (isset($fieldkey) ? htmlspecialchars($fieldkey) : '') . '" />';
|
||||
|
||||
if (isset($rownumber)) {
|
||||
$output .= '<input type="hidden" name="rownumber" value="'
|
||||
. htmlspecialchars($rownumber) . '" />';
|
||||
}
|
||||
$output .= '<span class="formelement">'
|
||||
. '<label for="input_foreign_filter">' . __('Search') . ':' . '</label>'
|
||||
. '<input type="text" name="foreign_filter" id="input_foreign_filter" value="'
|
||||
. (isset($foreign_filter) ? htmlspecialchars($foreign_filter) : '') . '" />'
|
||||
. '<input type="submit" name="submit_foreign_filter" value="'
|
||||
. __('Go') . '" />'
|
||||
. '</span>'
|
||||
. '<span class="formelement">' . $gotopage . '</span>'
|
||||
. '<span class="formelement">' . $showall . '</span>'
|
||||
. '</fieldset>'
|
||||
. '</form>';
|
||||
|
||||
$output .= '<table width="100%">';
|
||||
|
||||
if (is_array($foreignData['disp_row'])) {
|
||||
$header = '<tr>
|
||||
<th>' . __('Keyname') . '</th>
|
||||
<th>' . __('Description') . '</th>
|
||||
<td width="20%"></td>
|
||||
<th>' . __('Description') . '</th>
|
||||
<th>' . __('Keyname') . '</th>
|
||||
</tr>';
|
||||
|
||||
$output .= '<thead>' . $header . '</thead>' . "\n"
|
||||
. '<tfoot>' . $header . '</tfoot>' . "\n"
|
||||
. '<tbody>' . "\n";
|
||||
|
||||
$values = array();
|
||||
$keys = array();
|
||||
foreach ($foreignData['disp_row'] as $relrow) {
|
||||
if ($foreignData['foreign_display'] != false) {
|
||||
$values[] = $relrow[$foreignData['foreign_display']];
|
||||
} else {
|
||||
$values[] = '';
|
||||
}
|
||||
|
||||
$keys[] = $relrow[$foreignData['foreign_field']];
|
||||
}
|
||||
|
||||
asort($keys);
|
||||
|
||||
$hcount = 0;
|
||||
$odd_row = true;
|
||||
$val_ordered_current_row = 0;
|
||||
$val_ordered_current_equals_data = false;
|
||||
$key_ordered_current_equals_data = false;
|
||||
foreach ($keys as $key_ordered_current_row => $value) {
|
||||
$hcount++;
|
||||
|
||||
if ($cfg['RepeatCells'] > 0 && $hcount > $cfg['RepeatCells']) {
|
||||
$output .= $header;
|
||||
$hcount = 0;
|
||||
$odd_row = true;
|
||||
}
|
||||
|
||||
$key_ordered_current_key = $keys[$key_ordered_current_row];
|
||||
$key_ordered_current_val = $values[$key_ordered_current_row];
|
||||
|
||||
$val_ordered_current_key = $keys[$val_ordered_current_row];
|
||||
$val_ordered_current_val = $values[$val_ordered_current_row];
|
||||
|
||||
$val_ordered_current_row++;
|
||||
|
||||
if (PMA_strlen($val_ordered_current_val) <= $cfg['LimitChars']) {
|
||||
$val_ordered_current_val = htmlspecialchars(
|
||||
$val_ordered_current_val
|
||||
);
|
||||
$val_ordered_current_val_title = '';
|
||||
} else {
|
||||
$val_ordered_current_val_title = htmlspecialchars(
|
||||
$val_ordered_current_val
|
||||
);
|
||||
$val_ordered_current_val = htmlspecialchars(
|
||||
PMA_substr($val_ordered_current_val, 0, $cfg['LimitChars'])
|
||||
. '...'
|
||||
);
|
||||
}
|
||||
if (PMA_strlen($key_ordered_current_val) <= $cfg['LimitChars']) {
|
||||
$key_ordered_current_val = htmlspecialchars(
|
||||
$key_ordered_current_val
|
||||
);
|
||||
$key_ordered_current_val_title = '';
|
||||
} else {
|
||||
$key_ordered_current_val_title = htmlspecialchars(
|
||||
$key_ordered_current_val
|
||||
);
|
||||
$key_ordered_current_val = htmlspecialchars(
|
||||
PMA_substr(
|
||||
$key_ordered_current_val, 0, $cfg['LimitChars']
|
||||
) . '...'
|
||||
);
|
||||
}
|
||||
|
||||
if (! empty($data)) {
|
||||
$val_ordered_current_equals_data = $val_ordered_current_key == $data;
|
||||
$key_ordered_current_equals_data = $key_ordered_current_key == $data;
|
||||
}
|
||||
|
||||
$output .= '<tr class="noclick ' . ($odd_row ? 'odd' : 'even') . '">';
|
||||
$odd_row = ! $odd_row;
|
||||
|
||||
$output .= '<td class="nowrap">'
|
||||
. ($key_ordered_current_equals_data ? '<strong>' : '')
|
||||
. '<a href="#" title="' . __('Use this value')
|
||||
. ($key_ordered_current_val_title != ''
|
||||
? ': ' . $key_ordered_current_val_title
|
||||
: '') . '"'
|
||||
. ' onclick="formupdate(\'' . md5($field) . '\', \''
|
||||
. PMA_jsFormat($key_ordered_current_key, false) . '\'); return false;">'
|
||||
. htmlspecialchars($key_ordered_current_key)
|
||||
. '</a>' . ($key_ordered_current_equals_data ? '</strong>' : '')
|
||||
. '</td>';
|
||||
|
||||
$output .= '<td>'
|
||||
. ($key_ordered_current_equals_data ? '<strong>' : '')
|
||||
. '<a href="#" title="' . __('Use this value')
|
||||
. ($key_ordered_current_val_title != '' ? ': '
|
||||
. $key_ordered_current_val_title : '') . '" onclick="formupdate(\''
|
||||
. md5($field) . '\', \''
|
||||
. PMA_jsFormat($key_ordered_current_key, false)
|
||||
. '\'); return false;">'
|
||||
. $key_ordered_current_val . '</a>'
|
||||
. ($key_ordered_current_equals_data ? '</strong>' : '')
|
||||
. '</td>';
|
||||
|
||||
$output .= '<td width="20%">'
|
||||
. '<img src="' . $GLOBALS['pmaThemeImage'] . 'spacer.png" alt=""'
|
||||
. ' width="1" height="1" /></td>';
|
||||
|
||||
$output .= '<td>'
|
||||
. ($val_ordered_current_equals_data ? '<strong>' : '')
|
||||
. '<a href="#" title="' . __('Use this value')
|
||||
. ($val_ordered_current_val_title != '' ? ': '
|
||||
. $val_ordered_current_val_title : '') . '" onclick="formupdate(\''
|
||||
. md5($field) . '\', \''
|
||||
. PMA_jsFormat($val_ordered_current_key, false)
|
||||
. '\'); return false;">'
|
||||
. $val_ordered_current_val . '</a>'
|
||||
. ($val_ordered_current_equals_data ? '</strong>' : '')
|
||||
. '</td>';
|
||||
|
||||
$output .= '<td class="nowrap">'
|
||||
. ($val_ordered_current_equals_data ? '<strong>' : '')
|
||||
. '<a href="#" title="' . __('Use this value')
|
||||
. ($val_ordered_current_val_title != ''
|
||||
? ': ' . $val_ordered_current_val_title : '')
|
||||
. '" onclick="formupdate(\'' . md5($field) . '\', \''
|
||||
. PMA_jsFormat($val_ordered_current_key, false) . '\'); return false;">'
|
||||
. htmlspecialchars($val_ordered_current_key)
|
||||
. '</a>' . ($val_ordered_current_equals_data ? '</strong>' : '')
|
||||
. '</td>';
|
||||
$output .= '</tr>';
|
||||
} // end while
|
||||
}
|
||||
|
||||
$output .= '</tbody>'
|
||||
. '</table>';
|
||||
|
||||
$response->addHtml($output);
|
||||
?>
|
153
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/changelog.php
vendored
Normal file
153
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/changelog.php
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Simple script to set correct charset for changelog
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets core libraries and defines some variables
|
||||
*/
|
||||
require 'libraries/common.inc.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->disable();
|
||||
|
||||
$filename = CHANGELOG_FILE;
|
||||
|
||||
/**
|
||||
* Read changelog.
|
||||
*/
|
||||
// Check if the file is available, some distributions remove these.
|
||||
if (is_readable($filename)) {
|
||||
|
||||
// Test if the if is in a compressed format
|
||||
if (substr($filename, -3) == '.gz') {
|
||||
ob_start();
|
||||
readgzfile($filename);
|
||||
$changelog = ob_get_contents();
|
||||
ob_end_clean();
|
||||
} else {
|
||||
$changelog = file_get_contents($filename);
|
||||
}
|
||||
} else {
|
||||
printf(
|
||||
__('The %s file is not available on this system, please visit www.phpmyadmin.net for more information.'),
|
||||
$filename
|
||||
);
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whole changelog in variable.
|
||||
*/
|
||||
$changelog = htmlspecialchars($changelog);
|
||||
|
||||
$tracker_url = 'https://sourceforge.net/support/tracker.php?aid=\\1';
|
||||
$tracker_url_bug = 'https://sourceforge.net/p/phpmyadmin/bugs/\\1/';
|
||||
$tracker_url_rfe = 'https://sourceforge.net/p/phpmyadmin/feature-requests/\\1/';
|
||||
$tracker_url_patch = 'https://sourceforge.net/p/phpmyadmin/patches/\\1/';
|
||||
$github_url = 'https://github.com/phpmyadmin/phpmyadmin/';
|
||||
|
||||
$replaces = array(
|
||||
'@(http://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@'
|
||||
=> '<a href="./url.php?url=\\1">\\1</a>',
|
||||
|
||||
// sourceforge users
|
||||
'/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*)@users.sourceforge.net>/i'
|
||||
=> '\\1 <a href="./url.php?url=https://sourceforge.net/users/\\3/">\\2</a>',
|
||||
'/thanks to ([^\(\r\n]+) \(([-\w]+)\)/i'
|
||||
=> 'thanks to <a href="./url.php?url=https://sourceforge.net/users/\\2/">\\1</a>',
|
||||
'/thanks to ([^\(\r\n]+) -\s+([-\w]+)/i'
|
||||
=> 'thanks to <a href="./url.php?url=https://sourceforge.net/users/\\2/">\\1</a>',
|
||||
|
||||
// mail address
|
||||
'/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*@.*)>/i'
|
||||
=> '\\1 <a href="mailto:\\3">\\2</a>',
|
||||
|
||||
// linking patches
|
||||
'/patch\s*#?([0-9]{6,})/i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url . '">patch #\\1</a>',
|
||||
|
||||
// linking RFE
|
||||
'/(?:rfe|feature)\s*#?([0-9]{6,})/i'
|
||||
=> '<a href="./url.php?url=https://sourceforge.net/support/tracker.php?aid=\\1">RFE #\\1</a>',
|
||||
|
||||
// linking files
|
||||
'/(\s+)([\\/a-z_0-9\.]+\.(?:php3?|html|pl|js|sh))/i'
|
||||
=> '\\1<a href="./url.php?url=' . $github_url . 'commits/HEAD/\\2">\\2</a>',
|
||||
|
||||
// FAQ entries
|
||||
'/FAQ ([0-9]+)\.([0-9a-z]+)/i'
|
||||
=> '<a href="./url.php?url=https://docs.phpmyadmin.net/en/latest/faq.html#faq\\1-\\2">FAQ \\1.\\2</a>',
|
||||
|
||||
// linking bugs
|
||||
'/bug\s*#?([0-9]{6,})/i'
|
||||
=> '<a href="./url.php?url=https://sourceforge.net/support/tracker.php?aid=\\1">bug #\\1</a>',
|
||||
|
||||
// all other 6+ digit numbers are treated as bugs
|
||||
'/(?<!bug|RFE|patch) #?([0-9]{6,})/i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url . '">bug #\\1</a>',
|
||||
|
||||
// transitioned SF.net project bug/rfe/patch links
|
||||
// by the time we reach 6-digit numbers, we can probably retire the above links
|
||||
'/patch\s*#?([0-9]{4,5}) /i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url_patch . '">patch #\\1</a> ',
|
||||
'/(?:rfe|feature)\s*#?([0-9]{4,5}) /i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url_rfe . '">RFE #\\1</a> ',
|
||||
'/bug\s*#?([0-9]{4,5}) /i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url_bug . '">bug #\\1</a> ',
|
||||
'/(?<!bug|RFE|patch) #?([0-9]{4,5}) /i'
|
||||
=> '<a href="./url.php?url=' . $tracker_url_bug . '">bug #\\1</a> ',
|
||||
|
||||
// CVE/CAN entries
|
||||
'/((CAN|CVE)-[0-9]+-[0-9]+)/'
|
||||
=> '<a href="./url.php?url=http://cve.mitre.org/cgi-bin/cvename.cgi?name=\\1">\\1</a>',
|
||||
|
||||
// PMASAentries
|
||||
'/(PMASA-[0-9]+-[0-9]+)/'
|
||||
=> '<a href="./url.php?url=https://www.phpmyadmin.net/security/\\1/">\\1</a>',
|
||||
|
||||
// Highlight releases (with links)
|
||||
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.0 (\([0-9-]+\))/'
|
||||
=> '<a name="\\1_\\2_\\3"></a>'
|
||||
. '<a href="./url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3">'
|
||||
. '\\1.\\2.\\3.0 \\4</a>',
|
||||
'/([0-9]+)\.([0-9]+)\.([0-9]+)\.([1-9][0-9]*) (\([0-9-]+\))/'
|
||||
=> '<a name="\\1_\\2_\\3_\\4"></a>'
|
||||
. '<a href="./url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3_\\4">'
|
||||
. '\\1.\\2.\\3.\\4 \\5</a>',
|
||||
|
||||
// Highlight releases (not linkable)
|
||||
'/( ### )(.*)/'
|
||||
=> '\\1<b>\\2</b>',
|
||||
|
||||
);
|
||||
|
||||
header('Content-type: text/html; charset=utf-8');
|
||||
?>
|
||||
<!DOCTYPE HTML>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon" />
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
||||
<title>phpMyAdmin - ChangeLog</title>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>phpMyAdmin - ChangeLog</h1>
|
||||
<?php
|
||||
echo '<pre>';
|
||||
echo preg_replace(array_keys($replaces), $replaces, $changelog);
|
||||
echo '</pre>';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var links = document.getElementsByTagName("a");
|
||||
for(var i = 0; i < links.length; i++) {
|
||||
links[i].target = "_blank";
|
||||
links[i].rel = "noopener noreferrer";
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
15
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/chk_rel.php
vendored
Normal file
15
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/chk_rel.php
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Displays status of phpMyAdmin configuration storage
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
require_once 'libraries/common.inc.php';
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->addHTML(
|
||||
PMA_getRelationsParamDiagnostic(PMA_getRelationsParam())
|
||||
);
|
||||
|
||||
?>
|
29
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/composer.json
vendored
Normal file
29
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/composer.json
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "phpmyadmin/phpmyadmin",
|
||||
"type": "application",
|
||||
"description": "MySQL web administration tool",
|
||||
"keywords": ["phpmyadmin","mysql","web"],
|
||||
"homepage": "https://www.phpmyadmin.net/",
|
||||
"license": "GPL-2.0+",
|
||||
"authors": [
|
||||
{
|
||||
"name": "The phpMyAdmin Team",
|
||||
"email": "phpmyadmin-devel@lists.sourceforge.net",
|
||||
"homepage": "https://www.phpmyadmin.net/team/"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"forum": "https://sourceforge.net/p/phpmyadmin/discussion/Help",
|
||||
"issues": "https://sourceforge.net/p/phpmyadmin/bugs/",
|
||||
"wiki": "https://wiki.phpmyadmin.net/",
|
||||
"source": "https://github.com/phpmyadmin/phpmyadmin"
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"satooshi/php-coveralls": ">=0.6",
|
||||
"phpunit/phpunit": "<4.2",
|
||||
"phpunit/phpunit-selenium": ">=1.2"
|
||||
}
|
||||
}
|
139
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/config.inc.php
vendored
Normal file
139
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/config.inc.php
vendored
Normal file
@ -0,0 +1,139 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* phpMyAdmin sample configuration, you can use it as base for
|
||||
* manual configuration. For easier setup you can use setup/
|
||||
*
|
||||
* All directives are explained in documentation in the doc/ folder
|
||||
* or at <https://docs.phpmyadmin.net/>.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is needed for cookie based authentication to encrypt password in
|
||||
* cookie. Needs to be 32 chars long.
|
||||
*/
|
||||
$cfg['blowfish_secret'] = 'GObO60^(04#^5637%fdUGo(*6$%6#dy4'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
|
||||
|
||||
/**
|
||||
* Servers configuration
|
||||
*/
|
||||
$i = 0;
|
||||
|
||||
/**
|
||||
* First server
|
||||
*/
|
||||
$i++;
|
||||
/* Authentication type */
|
||||
$cfg['Servers'][$i]['auth_type'] = 'cookie';
|
||||
/* Server parameters */
|
||||
$cfg['Servers'][$i]['host'] = 'mysql';
|
||||
$cfg['Servers'][$i]['connect_type'] = 'tcp';
|
||||
$cfg['Servers'][$i]['compress'] = false;
|
||||
$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
|
||||
/* Select mysql if your server does not have mysqli */
|
||||
$cfg['Servers'][$i]['extension'] = 'mysqli';
|
||||
|
||||
/**
|
||||
* phpMyAdmin configuration storage settings.
|
||||
*/
|
||||
|
||||
/* User used to manipulate with storage */
|
||||
// $cfg['Servers'][$i]['controlhost'] = '';
|
||||
// $cfg['Servers'][$i]['controluser'] = 'pma';
|
||||
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
|
||||
|
||||
/* Storage database and tables */
|
||||
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
|
||||
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
|
||||
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
|
||||
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
|
||||
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
|
||||
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
|
||||
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
|
||||
// $cfg['Servers'][$i]['history'] = 'pma__history';
|
||||
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
|
||||
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
|
||||
// $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
|
||||
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
|
||||
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
|
||||
|
||||
/**
|
||||
* End of servers configuration
|
||||
*/
|
||||
|
||||
/**
|
||||
* Directories for saving/loading files from server
|
||||
*/
|
||||
$cfg['UploadDir'] = '';
|
||||
$cfg['SaveDir'] = '';
|
||||
|
||||
/**
|
||||
* Defines whether a user should be displayed a "show all (records)"
|
||||
* button in browse mode or not.
|
||||
* default = false
|
||||
*/
|
||||
//$cfg['ShowAll'] = true;
|
||||
|
||||
/**
|
||||
* Number of rows displayed when browsing a result set. If the result
|
||||
* set contains more rows, "Previous" and "Next".
|
||||
* Possible values: 25, 50, 100, 250, 500
|
||||
* default = 25
|
||||
*/
|
||||
//$cfg['MaxRows'] = 50;
|
||||
|
||||
/**
|
||||
* Disallow editing of binary fields
|
||||
* valid values are:
|
||||
* false allow editing
|
||||
* 'blob' allow editing except for BLOB fields
|
||||
* 'noblob' disallow editing except for BLOB fields
|
||||
* 'all' disallow editing
|
||||
* default = 'blob'
|
||||
*/
|
||||
//$cfg['ProtectBinary'] = false;
|
||||
|
||||
/**
|
||||
* Default language to use, if not browser-defined or user-defined
|
||||
* (you find all languages in the locale folder)
|
||||
* uncomment the desired line:
|
||||
* default = 'en'
|
||||
*/
|
||||
//$cfg['DefaultLang'] = 'en';
|
||||
//$cfg['DefaultLang'] = 'de';
|
||||
|
||||
/**
|
||||
* default display direction (horizontal|vertical|horizontalflipped)
|
||||
*/
|
||||
//$cfg['DefaultDisplay'] = 'vertical';
|
||||
|
||||
|
||||
/**
|
||||
* How many columns should be used for table display of a database?
|
||||
* (a value larger than 1 results in some information being hidden)
|
||||
* default = 1
|
||||
*/
|
||||
//$cfg['PropertiesNumColumns'] = 2;
|
||||
|
||||
/**
|
||||
* Set to true if you want DB-based query history.If false, this utilizes
|
||||
* JS-routines to display query history (lost by window close)
|
||||
*
|
||||
* This requires configuration storage enabled, see above.
|
||||
* default = false
|
||||
*/
|
||||
//$cfg['QueryHistoryDB'] = true;
|
||||
|
||||
/**
|
||||
* When using DB-based query history, how many entries should be kept?
|
||||
* default = 25
|
||||
*/
|
||||
//$cfg['QueryHistoryMax'] = 100;
|
||||
|
||||
/*
|
||||
* You can find more configuration options in the documentation
|
||||
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
|
||||
*/
|
||||
?>
|
139
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/config.sample.inc.php
vendored
Normal file
139
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/config.sample.inc.php
vendored
Normal file
@ -0,0 +1,139 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* phpMyAdmin sample configuration, you can use it as base for
|
||||
* manual configuration. For easier setup you can use setup/
|
||||
*
|
||||
* All directives are explained in documentation in the doc/ folder
|
||||
* or at <https://docs.phpmyadmin.net/>.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is needed for cookie based authentication to encrypt password in
|
||||
* cookie. Needs to be 32 chars long.
|
||||
*/
|
||||
$cfg['blowfish_secret'] = 'a8b7c6d'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
|
||||
|
||||
/*
|
||||
* Servers configuration
|
||||
*/
|
||||
$i = 0;
|
||||
|
||||
/*
|
||||
* First server
|
||||
*/
|
||||
$i++;
|
||||
/* Authentication type */
|
||||
$cfg['Servers'][$i]['auth_type'] = 'cookie';
|
||||
/* Server parameters */
|
||||
$cfg['Servers'][$i]['host'] = 'localhost';
|
||||
$cfg['Servers'][$i]['connect_type'] = 'tcp';
|
||||
$cfg['Servers'][$i]['compress'] = false;
|
||||
/* Select mysql if your server does not have mysqli */
|
||||
$cfg['Servers'][$i]['extension'] = 'mysqli';
|
||||
$cfg['Servers'][$i]['AllowNoPassword'] = false;
|
||||
|
||||
/*
|
||||
* phpMyAdmin configuration storage settings.
|
||||
*/
|
||||
|
||||
/* User used to manipulate with storage */
|
||||
// $cfg['Servers'][$i]['controlhost'] = '';
|
||||
// $cfg['Servers'][$i]['controluser'] = 'pma';
|
||||
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
|
||||
|
||||
/* Storage database and tables */
|
||||
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
|
||||
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
|
||||
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
|
||||
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
|
||||
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
|
||||
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
|
||||
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
|
||||
// $cfg['Servers'][$i]['history'] = 'pma__history';
|
||||
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
|
||||
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
|
||||
// $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
|
||||
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
|
||||
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
|
||||
|
||||
/*
|
||||
* End of servers configuration
|
||||
*/
|
||||
|
||||
/*
|
||||
* Directories for saving/loading files from server
|
||||
*/
|
||||
$cfg['UploadDir'] = '';
|
||||
$cfg['SaveDir'] = '';
|
||||
|
||||
/**
|
||||
* Defines whether a user should be displayed a "show all (records)"
|
||||
* button in browse mode or not.
|
||||
* default = false
|
||||
*/
|
||||
//$cfg['ShowAll'] = true;
|
||||
|
||||
/**
|
||||
* Number of rows displayed when browsing a result set. If the result
|
||||
* set contains more rows, "Previous" and "Next".
|
||||
* default = 30
|
||||
*/
|
||||
//$cfg['MaxRows'] = 50;
|
||||
|
||||
/**
|
||||
* disallow editing of binary fields
|
||||
* valid values are:
|
||||
* false allow editing
|
||||
* 'blob' allow editing except for BLOB fields
|
||||
* 'noblob' disallow editing except for BLOB fields
|
||||
* 'all' disallow editing
|
||||
* default = blob
|
||||
*/
|
||||
//$cfg['ProtectBinary'] = 'false';
|
||||
|
||||
/**
|
||||
* Default language to use, if not browser-defined or user-defined
|
||||
* (you find all languages in the locale folder)
|
||||
* uncomment the desired line:
|
||||
* default = 'en'
|
||||
*/
|
||||
//$cfg['DefaultLang'] = 'en';
|
||||
//$cfg['DefaultLang'] = 'de';
|
||||
|
||||
/**
|
||||
* default display direction (horizontal|vertical|horizontalflipped)
|
||||
*/
|
||||
//$cfg['DefaultDisplay'] = 'vertical';
|
||||
|
||||
|
||||
/**
|
||||
* How many columns should be used for table display of a database?
|
||||
* (a value larger than 1 results in some information being hidden)
|
||||
* default = 1
|
||||
*/
|
||||
//$cfg['PropertiesNumColumns'] = 2;
|
||||
|
||||
/**
|
||||
* Set to true if you want DB-based query history.If false, this utilizes
|
||||
* JS-routines to display query history (lost by window close)
|
||||
*
|
||||
* This requires configuration storage enabled, see above.
|
||||
* default = false
|
||||
*/
|
||||
//$cfg['QueryHistoryDB'] = true;
|
||||
|
||||
/**
|
||||
* When using DB-based query history, how many entries should be kept?
|
||||
*
|
||||
* default = 25
|
||||
*/
|
||||
//$cfg['QueryHistoryMax'] = 100;
|
||||
|
||||
/*
|
||||
* You can find more configuration options in the documentation
|
||||
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
|
||||
*/
|
||||
?>
|
148
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_create.php
vendored
Normal file
148
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_create.php
vendored
Normal file
@ -0,0 +1,148 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets some core libraries
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
require_once 'libraries/mysql_charsets.lib.php';
|
||||
if (! PMA_DRIZZLE) {
|
||||
include_once 'libraries/replication.inc.php';
|
||||
}
|
||||
require 'libraries/build_html_for_db.lib.php';
|
||||
|
||||
/**
|
||||
* Sets globals from $_POST
|
||||
*/
|
||||
$post_params = array(
|
||||
'db_collation',
|
||||
'new_db'
|
||||
);
|
||||
foreach ($post_params as $one_post_param) {
|
||||
if (isset($_POST[$one_post_param])) {
|
||||
$GLOBALS[$one_post_param] = $_POST[$one_post_param];
|
||||
}
|
||||
}
|
||||
|
||||
PMA_Util::checkParameters(array('new_db'));
|
||||
|
||||
/**
|
||||
* Defines the url to return to in case of error in a sql statement
|
||||
*/
|
||||
$err_url = 'index.php?' . PMA_generate_common_url();
|
||||
|
||||
/**
|
||||
* Builds and executes the db creation sql query
|
||||
*/
|
||||
$sql_query = 'CREATE DATABASE ' . PMA_Util::backquote($new_db);
|
||||
if (! empty($db_collation)) {
|
||||
list($db_charset) = explode('_', $db_collation);
|
||||
if (in_array($db_charset, $mysql_charsets)
|
||||
&& in_array($db_collation, $mysql_collations[$db_charset])
|
||||
) {
|
||||
$sql_query .= ' DEFAULT' . PMA_generateCharsetQueryPart($db_collation);
|
||||
}
|
||||
$db_collation_for_ajax = $db_collation;
|
||||
unset($db_charset, $db_collation);
|
||||
}
|
||||
$sql_query .= ';';
|
||||
|
||||
$result = PMA_DBI_try_query($sql_query);
|
||||
|
||||
if (! $result) {
|
||||
$message = PMA_Message::rawError(PMA_DBI_getError());
|
||||
// avoid displaying the not-created db name in header or navi panel
|
||||
$GLOBALS['db'] = '';
|
||||
$GLOBALS['table'] = '';
|
||||
|
||||
/**
|
||||
* If in an Ajax request, just display the message with {@link PMA_Response}
|
||||
*/
|
||||
if ($GLOBALS['is_ajax_request'] == true) {
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->isSuccess(false);
|
||||
$response->addJSON('message', $message);
|
||||
} else {
|
||||
include_once 'index.php';
|
||||
}
|
||||
} else {
|
||||
$message = PMA_Message::success(__('Database %1$s has been created.'));
|
||||
$message->addParam($new_db);
|
||||
$GLOBALS['db'] = $new_db;
|
||||
|
||||
/**
|
||||
* If in an Ajax request, build the output and send it
|
||||
*/
|
||||
if ($GLOBALS['is_ajax_request'] == true) {
|
||||
//Construct the html for the new database, so that it can be appended to
|
||||
// the list of databases on server_databases.php
|
||||
|
||||
/**
|
||||
* Build the array to be passed to {@link PMA_generate_common_url}
|
||||
* to generate the links
|
||||
*
|
||||
* @global array $GLOBALS['db_url_params']
|
||||
* @name $db_url_params
|
||||
*/
|
||||
$db_url_params['db'] = $new_db;
|
||||
|
||||
$is_superuser = PMA_isSuperuser();
|
||||
$column_order = PMA_getColumnOrder();
|
||||
$url_query = PMA_generate_common_url($new_db);
|
||||
|
||||
/**
|
||||
* String that will contain the output HTML
|
||||
* @name $new_db_string
|
||||
*/
|
||||
$new_db_string = '<tr>';
|
||||
|
||||
if (empty($db_collation_for_ajax)) {
|
||||
$db_collation_for_ajax = PMA_getServerCollation();
|
||||
}
|
||||
|
||||
// $dbstats comes from the create table dialog
|
||||
if (! empty($dbstats)) {
|
||||
$current = array(
|
||||
'SCHEMA_NAME' => $new_db,
|
||||
'DEFAULT_COLLATION_NAME' => $db_collation_for_ajax,
|
||||
'SCHEMA_TABLES' => '0',
|
||||
'SCHEMA_TABLE_ROWS' => '0',
|
||||
'SCHEMA_DATA_LENGTH' => '0',
|
||||
'SCHEMA_MAX_DATA_LENGTH' => '0',
|
||||
'SCHEMA_INDEX_LENGTH' => '0',
|
||||
'SCHEMA_LENGTH' => '0',
|
||||
'SCHEMA_DATA_FREE' => '0'
|
||||
);
|
||||
} else {
|
||||
$current = array(
|
||||
'SCHEMA_NAME' => $new_db
|
||||
);
|
||||
}
|
||||
|
||||
list($column_order, $generated_html) = PMA_buildHtmlForDb(
|
||||
$current, $is_superuser, $url_query,
|
||||
$column_order, $replication_types, $replication_info
|
||||
);
|
||||
$new_db_string .= $generated_html;
|
||||
|
||||
$new_db_string .= '</tr>';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->addJSON('message', $message);
|
||||
$response->addJSON('new_db_string', $new_db_string);
|
||||
$response->addJSON(
|
||||
'sql_query',
|
||||
PMA_Util::getMessage(
|
||||
null, $sql_query, 'success'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
include_once '' . $cfg['DefaultTabDatabase'];
|
||||
}
|
||||
}
|
||||
?>
|
291
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_datadict.php
vendored
Normal file
291
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_datadict.php
vendored
Normal file
@ -0,0 +1,291 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets the variables sent or posted to this script, then displays headers
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
if (! isset($selected_tbl)) {
|
||||
include 'libraries/db_common.inc.php';
|
||||
include 'libraries/db_info.inc.php';
|
||||
}
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$header->enablePrintView();
|
||||
|
||||
/**
|
||||
* Gets the relations settings
|
||||
*/
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
require_once 'libraries/Index.class.php';
|
||||
|
||||
/**
|
||||
* Check parameters
|
||||
*/
|
||||
PMA_Util::checkParameters(array('db'));
|
||||
|
||||
/**
|
||||
* Defines the url to return to in case of error in a sql statement
|
||||
*/
|
||||
if (strlen($table)) {
|
||||
$err_url = 'tbl_sql.php?' . PMA_generate_common_url($db, $table);
|
||||
} else {
|
||||
$err_url = 'db_sql.php?' . PMA_generate_common_url($db);
|
||||
}
|
||||
|
||||
if ($cfgRelation['commwork']) {
|
||||
$comment = PMA_getDbComment($db);
|
||||
|
||||
/**
|
||||
* Displays DB comment
|
||||
*/
|
||||
if ($comment) {
|
||||
echo '<p>' . __('Database comment: ')
|
||||
. '<i>' . htmlspecialchars($comment) . '</i></p>';
|
||||
} // end if
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects the database and gets tables names
|
||||
*/
|
||||
PMA_DBI_select_db($db);
|
||||
$tables = PMA_DBI_get_tables($db);
|
||||
|
||||
$count = 0;
|
||||
foreach ($tables as $table) {
|
||||
$comments = PMA_getComments($db, $table);
|
||||
|
||||
echo '<div>' . "\n";
|
||||
|
||||
echo '<h2>' . htmlspecialchars($table) . '</h2>' . "\n";
|
||||
|
||||
/**
|
||||
* Gets table informations
|
||||
*/
|
||||
$show_comment = PMA_Table::sGetStatusInfo($db, $table, 'TABLE_COMMENT');
|
||||
|
||||
/**
|
||||
* Gets table keys and retains them
|
||||
*/
|
||||
|
||||
PMA_DBI_select_db($db);
|
||||
$indexes = PMA_DBI_get_table_indexes($db, $table);
|
||||
$primary = '';
|
||||
$indexes = array();
|
||||
$lastIndex = '';
|
||||
$indexes_info = array();
|
||||
$indexes_data = array();
|
||||
$pk_array = array(); // will be use to emphasis prim. keys in the table
|
||||
// view
|
||||
foreach ($indexes as $row) {
|
||||
// Backups the list of primary keys
|
||||
if ($row['Key_name'] == 'PRIMARY') {
|
||||
$primary .= $row['Column_name'] . ', ';
|
||||
$pk_array[$row['Column_name']] = 1;
|
||||
}
|
||||
// Retains keys informations
|
||||
if ($row['Key_name'] != $lastIndex) {
|
||||
$indexes[] = $row['Key_name'];
|
||||
$lastIndex = $row['Key_name'];
|
||||
}
|
||||
$indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index'];
|
||||
$indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique'];
|
||||
if (isset($row['Cardinality'])) {
|
||||
$indexes_info[$row['Key_name']]['Cardinality'] = $row['Cardinality'];
|
||||
}
|
||||
// I don't know what does following column mean....
|
||||
// $indexes_info[$row['Key_name']]['Packed'] = $row['Packed'];
|
||||
|
||||
$indexes_info[$row['Key_name']]['Comment'] = $row['Comment'];
|
||||
|
||||
$indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name'] = $row['Column_name'];
|
||||
if (isset($row['Sub_part'])) {
|
||||
$indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part'] = $row['Sub_part'];
|
||||
}
|
||||
|
||||
} // end while
|
||||
|
||||
/**
|
||||
* Gets columns properties
|
||||
*/
|
||||
$columns = PMA_DBI_get_columns($db, $table);
|
||||
$fields_cnt = count($columns);
|
||||
|
||||
if (PMA_MYSQL_INT_VERSION < 50025) {
|
||||
// We need this to correctly learn if a TIMESTAMP is NOT NULL, since
|
||||
// SHOW FULL COLUMNS or INFORMATION_SCHEMA incorrectly says NULL
|
||||
// and SHOW CREATE TABLE says NOT NULL
|
||||
// http://bugs.mysql.com/20910.
|
||||
|
||||
$show_create_table_query = 'SHOW CREATE TABLE '
|
||||
. PMA_Util::backquote($db) . '.'
|
||||
. PMA_Util::backquote($table);
|
||||
$show_create_table = PMA_DBI_fetch_value(
|
||||
$show_create_table_query, 0, 1
|
||||
);
|
||||
$analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table));
|
||||
}
|
||||
|
||||
// Check if we can use Relations
|
||||
if (!empty($cfgRelation['relation'])) {
|
||||
// Find which tables are related with the current one and write it in
|
||||
// an array
|
||||
$res_rel = PMA_getForeigners($db, $table);
|
||||
|
||||
if (count($res_rel) > 0) {
|
||||
$have_rel = true;
|
||||
} else {
|
||||
$have_rel = false;
|
||||
}
|
||||
} else {
|
||||
$have_rel = false;
|
||||
} // end if
|
||||
|
||||
|
||||
/**
|
||||
* Displays the comments of the table if MySQL >= 3.23
|
||||
*/
|
||||
if (!empty($show_comment)) {
|
||||
echo __('Table comments') . ': ' . htmlspecialchars($show_comment) . '<br /><br />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the table structure
|
||||
*/
|
||||
?>
|
||||
|
||||
<table width="100%" class="print">
|
||||
<tr><th width="50"><?php echo __('Column'); ?></th>
|
||||
<th width="80"><?php echo __('Type'); ?></th>
|
||||
<?php /* <th width="50"><?php echo __('Attributes'); ?></th>*/ ?>
|
||||
<th width="40"><?php echo __('Null'); ?></th>
|
||||
<th width="70"><?php echo __('Default'); ?></th>
|
||||
<?php /* <th width="50"><?php echo __('Extra'); ?></th>*/ ?>
|
||||
<?php
|
||||
if ($have_rel) {
|
||||
echo ' <th>' . __('Links to') . '</th>' . "\n";
|
||||
}
|
||||
echo ' <th>' . __('Comments') . '</th>' . "\n";
|
||||
if ($cfgRelation['mimework']) {
|
||||
echo ' <th>MIME</th>' . "\n";
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
<?php
|
||||
$odd_row = true;
|
||||
foreach ($columns as $row) {
|
||||
|
||||
if ($row['Null'] == '') {
|
||||
$row['Null'] = 'NO';
|
||||
}
|
||||
$extracted_columnspec
|
||||
= PMA_Util::extractColumnSpec($row['Type']);
|
||||
|
||||
// reformat mysql query output
|
||||
// set or enum types: slashes single quotes inside options
|
||||
if ('set' == $extracted_columnspec['type'] || 'enum' == $extracted_columnspec['type']) {
|
||||
$type_nowrap = '';
|
||||
|
||||
} else {
|
||||
$type_nowrap = ' class="nowrap"';
|
||||
}
|
||||
$type = htmlspecialchars($extracted_columnspec['print_type']);
|
||||
$attribute = $extracted_columnspec['attribute'];
|
||||
if (! isset($row['Default'])) {
|
||||
if ($row['Null'] != 'NO') {
|
||||
$row['Default'] = '<i>NULL</i>';
|
||||
}
|
||||
} else {
|
||||
$row['Default'] = htmlspecialchars($row['Default']);
|
||||
}
|
||||
$field_name = $row['Field'];
|
||||
|
||||
if (PMA_MYSQL_INT_VERSION < 50025
|
||||
&& ! empty($analyzed_sql[0]['create_table_fields'][$field_name]['type'])
|
||||
&& $analyzed_sql[0]['create_table_fields'][$field_name]['type'] == 'TIMESTAMP'
|
||||
&& $analyzed_sql[0]['create_table_fields'][$field_name]['timestamp_not_null']
|
||||
) {
|
||||
// here, we have a TIMESTAMP that SHOW FULL COLUMNS reports as having the
|
||||
// NULL attribute, but SHOW CREATE TABLE says the contrary. Believe
|
||||
// the latter.
|
||||
/**
|
||||
* @todo merge this logic with the one in tbl_structure.php
|
||||
* or move it in a function similar to PMA_DBI_get_columns_full()
|
||||
* but based on SHOW CREATE TABLE because information_schema
|
||||
* cannot be trusted in this case (MySQL bug)
|
||||
*/
|
||||
$row['Null'] = 'NO';
|
||||
}
|
||||
?>
|
||||
<tr class="<?php echo $odd_row ? 'odd' : 'even'; $odd_row = ! $odd_row; ?>">
|
||||
<td class="nowrap">
|
||||
<?php
|
||||
if (isset($pk_array[$row['Field']])) {
|
||||
echo '<u>' . htmlspecialchars($field_name) . '</u>';
|
||||
} else {
|
||||
echo htmlspecialchars($field_name);
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td<?php echo $type_nowrap; ?> lang="en" dir="ltr"><?php echo $type; ?></td>
|
||||
<?php /* <td<?php echo $type_nowrap; ?>><?php echo $attribute; ?></td>*/ ?>
|
||||
<td><?php echo (($row['Null'] == 'NO') ? __('No') : __('Yes')); ?></td>
|
||||
<td class="nowrap"><?php
|
||||
if (isset($row['Default'])) {
|
||||
echo $row['Default'];
|
||||
}
|
||||
?></td>
|
||||
<?php /* <td<?php echo $type_nowrap; ?>><?php echo $row['Extra']; ?></td>*/ ?>
|
||||
<?php
|
||||
if ($have_rel) {
|
||||
echo ' <td>';
|
||||
if (isset($res_rel[$field_name])) {
|
||||
echo htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field']);
|
||||
}
|
||||
echo '</td>' . "\n";
|
||||
}
|
||||
echo ' <td>';
|
||||
if (isset($comments[$field_name])) {
|
||||
echo htmlspecialchars($comments[$field_name]);
|
||||
}
|
||||
echo '</td>' . "\n";
|
||||
if ($cfgRelation['mimework']) {
|
||||
$mime_map = PMA_getMIME($db, $table, true);
|
||||
|
||||
echo ' <td>';
|
||||
if (isset($mime_map[$field_name])) {
|
||||
echo htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype']));
|
||||
}
|
||||
echo '</td>' . "\n";
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
<?php
|
||||
} // end foreach
|
||||
$count++;
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
// display indexes information
|
||||
if (count(PMA_Index::getFromTable($table, $db)) > 0) {
|
||||
echo PMA_Index::getView($table, $db, true);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
} //ends main while
|
||||
|
||||
/**
|
||||
* Displays the footer
|
||||
*/
|
||||
echo PMA_Util::getButton();
|
||||
|
||||
?>
|
26
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_events.php
vendored
Normal file
26
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_events.php
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Events management.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include required files
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/Util.class.php';
|
||||
|
||||
/**
|
||||
* Include all other files
|
||||
*/
|
||||
require_once 'libraries/rte/rte_events.lib.php';
|
||||
|
||||
/**
|
||||
* Do the magic
|
||||
*/
|
||||
$_PMA_RTE = 'EVN';
|
||||
require_once 'libraries/rte/rte_main.inc.php';
|
||||
|
||||
?>
|
90
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_export.php
vendored
Normal file
90
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_export.php
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* dumps a database
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets some core libraries
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('export.js');
|
||||
|
||||
// $sub_part is also used in db_info.inc.php to see if we are coming from
|
||||
// db_export.php, in which case we don't obey $cfg['MaxTableList']
|
||||
$sub_part = '_export';
|
||||
require_once 'libraries/db_common.inc.php';
|
||||
$url_query .= '&goto=db_export.php';
|
||||
require_once 'libraries/db_info.inc.php';
|
||||
|
||||
/**
|
||||
* Displays the form
|
||||
*/
|
||||
$export_page_title = __('View dump (schema) of database');
|
||||
|
||||
// exit if no tables in db found
|
||||
if ($num_tables < 1) {
|
||||
PMA_Message::error(__('No tables found in database.'))->display();
|
||||
exit;
|
||||
} // end if
|
||||
|
||||
$multi_values = '<div>';
|
||||
$multi_values .= '<a href="#"';
|
||||
$multi_values .= ' onclick="setSelectOptions(\'dump\', \'table_select[]\', true); return false;">';
|
||||
$multi_values .= __('Select All');
|
||||
$multi_values .= '</a>';
|
||||
$multi_values .= ' / ';
|
||||
$multi_values .= '<a href="#"';
|
||||
$multi_values .= ' onclick="setSelectOptions(\'dump\', \'table_select[]\', false); return false;">';
|
||||
$multi_values .= __('Unselect All');
|
||||
$multi_values .= '</a><br />';
|
||||
|
||||
$multi_values .= '<select name="table_select[]" id="table_select" size="10" multiple="multiple">';
|
||||
$multi_values .= "\n";
|
||||
|
||||
if (!empty($selected_tbl) && empty($table_select)) {
|
||||
$table_select = $selected_tbl;
|
||||
}
|
||||
|
||||
// Check if the selected tables are defined in $_GET
|
||||
// (from clicking Back button on export.php)
|
||||
if (isset($_GET['table_select'])) {
|
||||
$_GET['table_select'] = urldecode($_GET['table_select']);
|
||||
$_GET['table_select'] = explode(",", $_GET['table_select']);
|
||||
}
|
||||
|
||||
foreach ($tables as $each_table) {
|
||||
if (isset($_GET['table_select'])) {
|
||||
if (in_array($each_table['Name'], $_GET['table_select'])) {
|
||||
$is_selected = ' selected="selected"';
|
||||
} else {
|
||||
$is_selected = '';
|
||||
}
|
||||
} elseif (isset($table_select)) {
|
||||
if (in_array($each_table['Name'], $table_select)) {
|
||||
$is_selected = ' selected="selected"';
|
||||
} else {
|
||||
$is_selected = '';
|
||||
}
|
||||
} else {
|
||||
$is_selected = ' selected="selected"';
|
||||
}
|
||||
$table_html = htmlspecialchars($each_table['Name']);
|
||||
$multi_values .= ' <option value="' . $table_html . '"'
|
||||
. $is_selected . '>'
|
||||
. str_replace(' ', ' ', $table_html) . '</option>' . "\n";
|
||||
} // end for
|
||||
|
||||
$multi_values .= "\n";
|
||||
$multi_values .= '</select></div>';
|
||||
|
||||
$export_type = 'database';
|
||||
require_once 'libraries/display_export.lib.php';
|
||||
|
||||
?>
|
28
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_import.php
vendored
Normal file
28
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_import.php
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('import.js');
|
||||
|
||||
/**
|
||||
* Gets tables informations and displays top links
|
||||
*/
|
||||
require 'libraries/db_common.inc.php';
|
||||
require 'libraries/db_info.inc.php';
|
||||
|
||||
$import_type = 'database';
|
||||
require 'libraries/display_import.lib.php';
|
||||
|
||||
?>
|
||||
|
294
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_operations.php
vendored
Normal file
294
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_operations.php
vendored
Normal file
@ -0,0 +1,294 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* handles miscellaneous db operations:
|
||||
* - move/rename
|
||||
* - copy
|
||||
* - changing collation
|
||||
* - changing comment
|
||||
* - adding tables
|
||||
* - viewing PDF schemas
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* requirements
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/mysql_charsets.lib.php';
|
||||
|
||||
/**
|
||||
* functions implementation for this script
|
||||
*/
|
||||
require_once 'libraries/operations.lib.php';
|
||||
|
||||
// add a javascript file for jQuery functions to handle Ajax actions
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('db_operations.js');
|
||||
|
||||
/**
|
||||
* Rename/move or copy database
|
||||
*/
|
||||
if (strlen($db)
|
||||
&& (! empty($_REQUEST['db_rename']) || ! empty($_REQUEST['db_copy']))
|
||||
) {
|
||||
if (! empty($_REQUEST['db_rename'])) {
|
||||
$move = true;
|
||||
} else {
|
||||
$move = false;
|
||||
}
|
||||
|
||||
if (! isset($_REQUEST['newname']) || ! strlen($_REQUEST['newname'])) {
|
||||
$message = PMA_Message::error(__('The database name is empty!'));
|
||||
} else {
|
||||
$sql_query = ''; // in case target db exists
|
||||
$_error = false;
|
||||
if ($move
|
||||
|| (isset($_REQUEST['create_database_before_copying'])
|
||||
&& $_REQUEST['create_database_before_copying'])
|
||||
) {
|
||||
$sql_query = PMA_getSqlQueryAndCreateDbBeforeCopy();
|
||||
}
|
||||
|
||||
// here I don't use DELIMITER because it's not part of the
|
||||
// language; I have to send each statement one by one
|
||||
|
||||
// to avoid selecting alternatively the current and new db
|
||||
// we would need to modify the CREATE definitions to qualify
|
||||
// the db name
|
||||
PMA_runProcedureAndFunctionDefinitions($db);
|
||||
|
||||
// go back to current db, just in case
|
||||
PMA_DBI_select_db($db);
|
||||
|
||||
$tables_full = PMA_DBI_get_tables_full($db);
|
||||
|
||||
include_once "libraries/plugin_interface.lib.php";
|
||||
// remove all foreign key constraints, otherwise we can get errors
|
||||
$export_sql_plugin = PMA_getPlugin(
|
||||
"export",
|
||||
"sql",
|
||||
'libraries/plugins/export/',
|
||||
array(
|
||||
'single_table' => isset($single_table),
|
||||
'export_type' => 'database'
|
||||
)
|
||||
);
|
||||
$GLOBALS['sql_constraints_query_full_db']
|
||||
= PMA_getSqlConstraintsQueryForFullDb(
|
||||
$tables_full, $export_sql_plugin, $move, $db
|
||||
);
|
||||
|
||||
$views = PMA_getViewsAndCreateSqlViewStandIn(
|
||||
$tables_full, $export_sql_plugin, $db
|
||||
);
|
||||
|
||||
list($sql_query, $_error) = PMA_getSqlQueryForCopyTable(
|
||||
$tables_full, $sql_query, $move, $db
|
||||
);
|
||||
|
||||
// handle the views
|
||||
if (! $_error) {
|
||||
$_error = PMA_handleTheViews($views, $move, $db);
|
||||
}
|
||||
unset($views);
|
||||
|
||||
// now that all tables exist, create all the accumulated constraints
|
||||
if (! $_error && count($GLOBALS['sql_constraints_query_full_db']) > 0) {
|
||||
PMA_createAllAccumulatedConstraints();
|
||||
}
|
||||
|
||||
if (! PMA_DRIZZLE && PMA_MYSQL_INT_VERSION >= 50100) {
|
||||
// here DELIMITER is not used because it's not part of the
|
||||
// language; each statement is sent one by one
|
||||
|
||||
PMA_runEventDefinitionsForDb($db);
|
||||
}
|
||||
|
||||
// go back to current db, just in case
|
||||
PMA_DBI_select_db($db);
|
||||
|
||||
// Duplicate the bookmarks for this db (done once for each db)
|
||||
PMA_duplicateBookmarks($_error, $db);
|
||||
|
||||
if (! $_error && $move) {
|
||||
/**
|
||||
* cleanup pmadb stuff for this db
|
||||
*/
|
||||
include_once 'libraries/relation_cleanup.lib.php';
|
||||
PMA_relationsCleanupDatabase($db);
|
||||
|
||||
// if someday the RENAME DATABASE reappears, do not DROP
|
||||
$local_query = 'DROP DATABASE ' . PMA_Util::backquote($db) . ';';
|
||||
$sql_query .= "\n" . $local_query;
|
||||
PMA_DBI_query($local_query);
|
||||
|
||||
$message = PMA_Message::success(__('Database %1$s has been renamed to %2$s'));
|
||||
$message->addParam($db);
|
||||
$message->addParam($_REQUEST['newname']);
|
||||
} elseif (! $_error) {
|
||||
$message = PMA_Message::success(__('Database %1$s has been copied to %2$s'));
|
||||
$message->addParam($db);
|
||||
$message->addParam($_REQUEST['newname']);
|
||||
}
|
||||
$reload = true;
|
||||
|
||||
/* Change database to be used */
|
||||
if (! $_error && $move) {
|
||||
$db = $_REQUEST['newname'];
|
||||
} elseif (! $_error) {
|
||||
if (isset($_REQUEST['switch_to_new'])
|
||||
&& $_REQUEST['switch_to_new'] == 'true'
|
||||
) {
|
||||
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', 'true');
|
||||
$db = $_REQUEST['newname'];
|
||||
} else {
|
||||
$GLOBALS['PMA_Config']->setCookie('pma_switch_to_new', '');
|
||||
}
|
||||
}
|
||||
|
||||
if ($_error && ! isset($message)) {
|
||||
$message = PMA_Message::error();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Database has been successfully renamed/moved. If in an Ajax request,
|
||||
* generate the output with {@link PMA_Response} and exit
|
||||
*/
|
||||
if ($GLOBALS['is_ajax_request'] == true) {
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->isSuccess($message->isSuccess());
|
||||
$response->addJSON('message', $message);
|
||||
$response->addJSON('newname', $_REQUEST['newname']);
|
||||
$response->addJSON(
|
||||
'sql_query',
|
||||
PMA_Util::getMessage(null, $sql_query)
|
||||
);
|
||||
$response->addJSON('db', $db);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings for relations stuff
|
||||
*/
|
||||
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
|
||||
/**
|
||||
* Check if comments were updated
|
||||
* (must be done before displaying the menu tabs)
|
||||
*/
|
||||
if (isset($_REQUEST['comment'])) {
|
||||
PMA_setDbComment($db, $_REQUEST['comment']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the tables list if the user where not redirected to this script
|
||||
* because there is no table in the database ($is_info is true)
|
||||
*/
|
||||
if (empty($is_info)) {
|
||||
include 'libraries/db_common.inc.php';
|
||||
$url_query .= '&goto=db_operations.php';
|
||||
|
||||
// Gets the database structure
|
||||
$sub_part = '_structure';
|
||||
include 'libraries/db_info.inc.php';
|
||||
echo "\n";
|
||||
|
||||
if (isset($message)) {
|
||||
echo PMA_Util::getMessage($message, $sql_query);
|
||||
unset($message);
|
||||
}
|
||||
}
|
||||
|
||||
$_REQUEST['db_collation'] = PMA_getDbCollation($db);
|
||||
$is_information_schema = PMA_is_system_schema($db);
|
||||
|
||||
if (!$is_information_schema) {
|
||||
if ($cfgRelation['commwork']) {
|
||||
/**
|
||||
* database comment
|
||||
*/
|
||||
$response->addHTML(PMA_getHtmlForDatabaseComment($db));
|
||||
}
|
||||
|
||||
$response->addHTML('<div class="operations_half_width">');
|
||||
ob_start();
|
||||
include 'libraries/display_create_table.lib.php';
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
$response->addHTML($content);
|
||||
$response->addHTML('</div>');
|
||||
|
||||
/**
|
||||
* rename database
|
||||
*/
|
||||
if ($db != 'mysql') {
|
||||
$response->addHTML(PMA_getHtmlForRenameDatabase($db));
|
||||
}
|
||||
|
||||
// Drop link if allowed
|
||||
// Don't even try to drop information_schema.
|
||||
// You won't be able to. Believe me. You won't.
|
||||
// Don't allow to easily drop mysql database, RFE #1327514.
|
||||
if (($is_superuser || $GLOBALS['cfg']['AllowUserDropDatabase'])
|
||||
&& ! $db_is_information_schema
|
||||
&& (PMA_DRIZZLE || $db != 'mysql')
|
||||
) {
|
||||
$response->addHTML(PMA_getHtmlForDropDatabaseLink($db));
|
||||
}
|
||||
/**
|
||||
* Copy database
|
||||
*/
|
||||
$response->addHTML(PMA_getHtmlForCopyDatabase($db));
|
||||
|
||||
/**
|
||||
* Change database charset
|
||||
*/
|
||||
$response->addHTML(PMA_getHtmlForChangeDatabaseCharset($db, $table));
|
||||
|
||||
if ($num_tables > 0
|
||||
&& ! $cfgRelation['allworks']
|
||||
&& $cfg['PmaNoRelation_DisableWarning'] == false
|
||||
) {
|
||||
$message = PMA_Message::notice(
|
||||
__('The phpMyAdmin configuration storage has been deactivated. To find out why click %shere%s.')
|
||||
);
|
||||
$message->addParam(
|
||||
'<a href="' . $cfg['PmaAbsoluteUri'] . 'chk_rel.php?' . $url_query . '">',
|
||||
false
|
||||
);
|
||||
$message->addParam('</a>', false);
|
||||
/* Show error if user has configured something, notice elsewhere */
|
||||
if (!empty($cfg['Servers'][$server]['pmadb'])) {
|
||||
$message->isError(true);
|
||||
}
|
||||
$response->addHTML('<div class="operations_full_width">');
|
||||
$response->addHTML($message->getDisplay());
|
||||
$response->addHTML('</div>');
|
||||
} // end if
|
||||
} // end if (!$is_information_schema)
|
||||
|
||||
|
||||
// not sure about displaying the PDF dialog in case db is information_schema
|
||||
if ($cfgRelation['pdfwork'] && $num_tables > 0) {
|
||||
// We only show this if we find something in the new pdf_pages table
|
||||
$test_query = '
|
||||
SELECT *
|
||||
FROM ' . PMA_Util::backquote($GLOBALS['cfgRelation']['db'])
|
||||
. '.' . PMA_Util::backquote($cfgRelation['pdf_pages']) . '
|
||||
WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
|
||||
$test_rs = PMA_queryAsControlUser($test_query, null, PMA_DBI_QUERY_STORE);
|
||||
|
||||
/*
|
||||
* Export Relational Schema View
|
||||
*/
|
||||
$response->addHTML(PMA_getHtmlForExportRelationalSchemaView($url_query));
|
||||
} // end if
|
||||
|
||||
?>
|
252
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_printview.php
vendored
Normal file
252
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_printview.php
vendored
Normal file
@ -0,0 +1,252 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$header->enablePrintView();
|
||||
|
||||
PMA_Util::checkParameters(array('db'));
|
||||
|
||||
/**
|
||||
* Defines the url to return to in case of error in a sql statement
|
||||
*/
|
||||
$err_url = 'db_sql.php?' . PMA_generate_common_url($db);
|
||||
|
||||
/**
|
||||
* Settings for relations stuff
|
||||
*/
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
|
||||
/**
|
||||
* Gets the list of the table in the current db and informations about these
|
||||
* tables if possible
|
||||
*
|
||||
* @todo merge this speedup _optionaly_ into PMA_DBI_get_tables_full()
|
||||
*
|
||||
// speedup view on locked tables
|
||||
// Special speedup for newer MySQL Versions (in 4.0 format changed)
|
||||
if ($cfg['SkipLockedTables'] == true) {
|
||||
$result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_Util::backquote($db) . ';');
|
||||
// Blending out tables in use
|
||||
if ($result != false && PMA_DBI_num_rows($result) > 0) {
|
||||
while ($tmp = PMA_DBI_fetch_row($result)) {
|
||||
// if in use memorize tablename
|
||||
if (preg_match('@in_use=[1-9]+@i', $tmp[0])) {
|
||||
$sot_cache[$tmp[0]] = true;
|
||||
}
|
||||
}
|
||||
PMA_DBI_free_result($result);
|
||||
|
||||
if (isset($sot_cache)) {
|
||||
$result = PMA_DBI_query('SHOW TABLES FROM ' . PMA_Util::backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
|
||||
if ($result != false && PMA_DBI_num_rows($result) > 0) {
|
||||
while ($tmp = PMA_DBI_fetch_row($result)) {
|
||||
if (! isset($sot_cache[$tmp[0]])) {
|
||||
$sts_result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_Util::backquote($db) . ' LIKE \'' . sqlAddSlashes($tmp[0], true) . '\';');
|
||||
$sts_tmp = PMA_DBI_fetch_assoc($sts_result);
|
||||
$tables[] = $sts_tmp;
|
||||
} else { // table in use
|
||||
$tables[] = array('Name' => $tmp[0]);
|
||||
}
|
||||
}
|
||||
PMA_DBI_free_result($result);
|
||||
$sot_ready = true;
|
||||
}
|
||||
}
|
||||
unset($tmp, $result);
|
||||
}
|
||||
}
|
||||
|
||||
if (! isset($sot_ready)) {
|
||||
$result = PMA_DBI_query('SHOW TABLE STATUS FROM ' . PMA_Util::backquote($db) . ';');
|
||||
if (PMA_DBI_num_rows($result) > 0) {
|
||||
while ($sts_tmp = PMA_DBI_fetch_assoc($result)) {
|
||||
$tables[] = $sts_tmp;
|
||||
}
|
||||
PMA_DBI_free_result($result);
|
||||
unset($res);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* If there is at least one table, displays the printer friendly view, else
|
||||
* an error message
|
||||
*/
|
||||
$tables = PMA_DBI_get_tables_full($db);
|
||||
$num_tables = count($tables);
|
||||
|
||||
echo '<br />';
|
||||
|
||||
// 1. No table
|
||||
if ($num_tables == 0) {
|
||||
echo __('No tables found in database.');
|
||||
} else {
|
||||
// 2. Shows table information
|
||||
?>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Table'); ?></th>
|
||||
<th><?php echo __('Rows'); ?></th>
|
||||
<th><?php echo __('Type'); ?></th>
|
||||
<?php
|
||||
if ($cfg['ShowStats']) {
|
||||
echo '<th>' . __('Size') . '</th>';
|
||||
}
|
||||
?>
|
||||
<th><?php echo __('Comments'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$sum_entries = $sum_size = 0;
|
||||
$odd_row = true;
|
||||
foreach ($tables as $sts_data) {
|
||||
if (PMA_Table::isMerge($db, $sts_data['TABLE_NAME'])
|
||||
|| strtoupper($sts_data['ENGINE']) == 'FEDERATED'
|
||||
) {
|
||||
$merged_size = true;
|
||||
} else {
|
||||
$merged_size = false;
|
||||
}
|
||||
$sum_entries += $sts_data['TABLE_ROWS'];
|
||||
?>
|
||||
<tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
|
||||
<th>
|
||||
<?php echo htmlspecialchars($sts_data['TABLE_NAME']); ?>
|
||||
</th>
|
||||
<?php
|
||||
|
||||
if (isset($sts_data['TABLE_ROWS'])) {
|
||||
?>
|
||||
<td class="right">
|
||||
<?php
|
||||
if ($merged_size) {
|
||||
echo '<i>' . PMA_Util::formatNumber($sts_data['TABLE_ROWS'], 0) . '</i>' . "\n";
|
||||
} else {
|
||||
echo PMA_Util::formatNumber($sts_data['TABLE_ROWS'], 0) . "\n";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td class="nowrap">
|
||||
<?php echo $sts_data['ENGINE']; ?>
|
||||
</td>
|
||||
<?php
|
||||
if ($cfg['ShowStats']) {
|
||||
$tblsize = $sts_data['Data_length'] + $sts_data['Index_length'];
|
||||
$sum_size += $tblsize;
|
||||
list($formated_size, $unit)
|
||||
= PMA_Util::formatByteDown($tblsize, 3, 1);
|
||||
?>
|
||||
<td class="right nowrap">
|
||||
<?php echo $formated_size . ' ' . $unit; ?>
|
||||
</td>
|
||||
<?php
|
||||
} // end if
|
||||
} else {
|
||||
?>
|
||||
<td colspan="3" class="center">
|
||||
<?php echo __('in use'); ?>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<td>
|
||||
<?php
|
||||
if (! empty($sts_data['Comment'])) {
|
||||
echo htmlspecialchars($sts_data['Comment']);
|
||||
$needs_break = '<br />';
|
||||
} else {
|
||||
$needs_break = '';
|
||||
}
|
||||
|
||||
if (! empty($sts_data['Create_time'])
|
||||
|| ! empty($sts_data['Update_time'])
|
||||
|| ! empty($sts_data['Check_time'])
|
||||
) {
|
||||
echo $needs_break;
|
||||
?>
|
||||
<table width="100%">
|
||||
<?php
|
||||
|
||||
if (! empty($sts_data['Create_time'])) {
|
||||
?>
|
||||
<tr>
|
||||
<td class="right"><?php echo __('Creation') . ': '; ?></td>
|
||||
<td class="right"><?php echo PMA_Util::localisedDate(strtotime($sts_data['Create_time'])); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
if (! empty($sts_data['Update_time'])) {
|
||||
?>
|
||||
<tr>
|
||||
<td class="right"><?php echo __('Last update') . ': '; ?></td>
|
||||
<td class="right"><?php echo PMA_Util::localisedDate(strtotime($sts_data['Update_time'])); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
if (! empty($sts_data['Check_time'])) {
|
||||
?>
|
||||
<tr>
|
||||
<td class="right"><?php echo __('Last check') . ': '; ?></td>
|
||||
<td class="right"><?php echo PMA_Util::localisedDate(strtotime($sts_data['Check_time'])); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<th class="center">
|
||||
<?php echo sprintf(_ngettext('%s table', '%s tables', $num_tables), PMA_Util::formatNumber($num_tables, 0)); ?>
|
||||
</th>
|
||||
<th class="right nowrap">
|
||||
<?php echo PMA_Util::formatNumber($sum_entries, 0); ?>
|
||||
</th>
|
||||
<th class="center">
|
||||
--
|
||||
</th>
|
||||
<?php
|
||||
if ($cfg['ShowStats']) {
|
||||
list($sum_formated, $unit)
|
||||
= PMA_Util::formatByteDown($sum_size, 3, 1);
|
||||
?>
|
||||
<th class="right nowrap">
|
||||
<?php echo $sum_formated . ' ' . $unit; ?>
|
||||
</th>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<th></th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the footer
|
||||
*/
|
||||
echo PMA_Util::getButton();
|
||||
|
||||
echo "<div id='PMA_disable_floating_menubar'></div>\n";
|
||||
?>
|
68
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_qbe.php
vendored
Normal file
68
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_qbe.php
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* query by example the whole database
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* requirements
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/DBQbe.class.php';
|
||||
$response = PMA_Response::getInstance();
|
||||
|
||||
// Gets the relation settings
|
||||
$cfgRelation = PMA_getRelationsParam();
|
||||
|
||||
/**
|
||||
* A query has been submitted -> (maybe) execute it
|
||||
*/
|
||||
$message_to_display = false;
|
||||
if (isset($_REQUEST['submit_sql']) && ! empty($sql_query)) {
|
||||
if (! preg_match('@^SELECT@i', $sql_query)) {
|
||||
$message_to_display = true;
|
||||
} else {
|
||||
$goto = 'db_sql.php';
|
||||
include 'sql.php';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$sub_part = '_qbe';
|
||||
require 'libraries/db_common.inc.php';
|
||||
$url_query .= '&goto=db_qbe.php';
|
||||
$url_params['goto'] = 'db_qbe.php';
|
||||
require 'libraries/db_info.inc.php';
|
||||
|
||||
if ($message_to_display) {
|
||||
PMA_Message::error(__('You have to choose at least one column to display'))->display();
|
||||
}
|
||||
unset($message_to_display);
|
||||
|
||||
// create new qbe search instance
|
||||
$db_qbe = new PMA_DBQbe($GLOBALS['db']);
|
||||
|
||||
/**
|
||||
* Displays the Query by example form
|
||||
*/
|
||||
if ($cfgRelation['designerwork']) {
|
||||
$url = 'pmd_general.php' . PMA_generate_common_url(
|
||||
array_merge(
|
||||
$url_params,
|
||||
array('query' => 1)
|
||||
)
|
||||
);
|
||||
$response->addHTML(
|
||||
PMA_Message::notice(
|
||||
sprintf(
|
||||
__('Switch to %svisual builder%s'),
|
||||
'<a href="' . $url . '">',
|
||||
'</a>'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
$response->addHTML($db_qbe->getSelectionForm($cfgRelation));
|
||||
?>
|
27
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_routines.php
vendored
Normal file
27
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_routines.php
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Routines management.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include required files
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/Util.class.php';
|
||||
require_once 'libraries/mysql_charsets.lib.php';
|
||||
|
||||
/**
|
||||
* Include all other files
|
||||
*/
|
||||
require_once 'libraries/rte/rte_routines.lib.php';
|
||||
|
||||
/**
|
||||
* Do the magic
|
||||
*/
|
||||
$_PMA_RTE = 'RTN';
|
||||
require_once 'libraries/rte/rte_main.inc.php';
|
||||
|
||||
?>
|
57
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_search.php
vendored
Normal file
57
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_search.php
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* searchs the entire database
|
||||
*
|
||||
* @todo make use of UNION when searching multiple tables
|
||||
* @todo display executed query, optional?
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Gets some core libraries
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/DbSearch.class.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('db_search.js');
|
||||
$scripts->addFile('sql.js');
|
||||
$scripts->addFile('makegrid.js');
|
||||
$scripts->addFile('jquery/jquery-ui-timepicker-addon.js');
|
||||
|
||||
require 'libraries/db_common.inc.php';
|
||||
|
||||
// If config variable $GLOBALS['cfg']['Usedbsearch'] is on false : exit.
|
||||
if (! $GLOBALS['cfg']['UseDbSearch']) {
|
||||
PMA_Util::mysqlDie(
|
||||
__('Access denied'), '', false, $err_url
|
||||
);
|
||||
} // end if
|
||||
$url_query .= '&goto=db_search.php';
|
||||
$url_params['goto'] = 'db_search.php';
|
||||
|
||||
// Create a database search instance
|
||||
$db_search = new PMA_DbSearch($GLOBALS['db']);
|
||||
|
||||
// Display top links if we are not in an Ajax request
|
||||
if ( $GLOBALS['is_ajax_request'] != true) {
|
||||
include 'libraries/db_info.inc.php';
|
||||
}
|
||||
$response->addHTML('<div id="searchresults">');
|
||||
|
||||
// Main search form has been submitted, get results
|
||||
if (isset($_REQUEST['submit_search'])) {
|
||||
$response->addHTML($db_search->getSearchResults());
|
||||
}
|
||||
|
||||
// If we are in an Ajax request, we need to exit after displaying all the HTML
|
||||
if ($GLOBALS['is_ajax_request'] == true && empty($_REQUEST['ajax_page_request'])) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Display the search form
|
||||
$response->addHTML($db_search->getSelectionForm($url_params));
|
||||
?>
|
65
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_sql.php
vendored
Normal file
65
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_sql.php
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
/**
|
||||
* Runs common work
|
||||
*/
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('functions.js');
|
||||
$scripts->addFile('makegrid.js');
|
||||
$scripts->addFile('sql.js');
|
||||
|
||||
require 'libraries/db_common.inc.php';
|
||||
require_once 'libraries/sql_query_form.lib.php';
|
||||
|
||||
// After a syntax error, we return to this script
|
||||
// with the typed query in the textarea.
|
||||
$goto = 'db_sql.php';
|
||||
$back = 'db_sql.php';
|
||||
|
||||
/**
|
||||
* Sets globals from $_GET
|
||||
*/
|
||||
|
||||
$get_params = array(
|
||||
'db_query_force'
|
||||
);
|
||||
|
||||
foreach ($get_params as $one_get_param) {
|
||||
if (isset($_GET[$one_get_param])) {
|
||||
$GLOBALS[$one_get_param] = $_GET[$one_get_param];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets informations about the database and, if it is empty, move to the
|
||||
* "db_structure.php" script where table can be created
|
||||
*/
|
||||
require 'libraries/db_info.inc.php';
|
||||
if ($num_tables == 0 && empty($db_query_force)) {
|
||||
$sub_part = '';
|
||||
$is_info = true;
|
||||
include 'db_structure.php';
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Query box, bookmark, insert data from textfile
|
||||
*/
|
||||
PMA_sqlQueryForm(
|
||||
true, false,
|
||||
isset($_REQUEST['delimiter']) ? htmlspecialchars($_REQUEST['delimiter']) : ';'
|
||||
);
|
||||
|
||||
?>
|
335
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_structure.php
vendored
Normal file
335
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_structure.php
vendored
Normal file
@ -0,0 +1,335 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
/**
|
||||
* Function implementations for this script
|
||||
*/
|
||||
require_once 'libraries/structure.lib.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('db_structure.js');
|
||||
$scripts->addFile('tbl_change.js');
|
||||
$scripts->addFile('jquery/jquery-ui-timepicker-addon.js');
|
||||
|
||||
$post_params = array(
|
||||
'error',
|
||||
'is_info',
|
||||
'message',
|
||||
'mult_btn',
|
||||
'selected_tbl',
|
||||
'submit_mult'
|
||||
);
|
||||
foreach ($post_params as $one_post_param) {
|
||||
if (isset($_POST[$one_post_param])) {
|
||||
$GLOBALS[$one_post_param] = $_POST[$one_post_param];
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Prepares the tables list if the user where not redirected to this script
|
||||
* because there is no table in the database ($is_info is true)
|
||||
*/
|
||||
if (empty($_POST['is_info'])) {
|
||||
// Drops/deletes/etc. multiple tables if required
|
||||
if ((!empty($_POST['submit_mult']) && isset($_POST['selected_tbl']))
|
||||
|| isset($_POST['mult_btn'])
|
||||
) {
|
||||
$action = 'db_structure.php';
|
||||
$err_url = 'db_structure.php?'. PMA_generate_common_url($db);
|
||||
|
||||
// see bug #2794840; in this case, code path is:
|
||||
// db_structure.php -> libraries/mult_submits.inc.php -> sql.php
|
||||
// -> db_structure.php and if we got an error on the multi submit,
|
||||
// we must display it here and not call again mult_submits.inc.php
|
||||
if (! isset($_POST['error']) || false === $_POST['error']) {
|
||||
include 'libraries/mult_submits.inc.php';
|
||||
}
|
||||
if (empty($_POST['message'])) {
|
||||
$_POST['message'] = PMA_Message::success();
|
||||
}
|
||||
}
|
||||
include 'libraries/db_common.inc.php';
|
||||
$url_query .= '&goto=db_structure.php';
|
||||
|
||||
// Gets the database structure
|
||||
$sub_part = '_structure';
|
||||
include 'libraries/db_info.inc.php';
|
||||
|
||||
if (!PMA_DRIZZLE) {
|
||||
include_once 'libraries/replication.inc.php';
|
||||
} else {
|
||||
$server_slave_status = false;
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'libraries/bookmark.lib.php';
|
||||
|
||||
require_once 'libraries/mysql_charsets.lib.php';
|
||||
$db_collation = PMA_getDbCollation($db);
|
||||
|
||||
$titles = PMA_Util::buildActionTitles();
|
||||
|
||||
// 1. No tables
|
||||
|
||||
if ($num_tables == 0) {
|
||||
$response->addHTML(
|
||||
'<p>' . __('No tables found in database') . '</p>' . "\n"
|
||||
);
|
||||
if (empty($db_is_information_schema)) {
|
||||
ob_start();
|
||||
include 'libraries/display_create_table.lib.php';
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
$response->addHTML($content);
|
||||
unset($content);
|
||||
} // end if (Create Table dialog)
|
||||
exit;
|
||||
}
|
||||
|
||||
// else
|
||||
// 2. Shows table informations
|
||||
|
||||
/**
|
||||
* Displays the tables list
|
||||
*/
|
||||
$response->addHTML('<div id="tableslistcontainer">');
|
||||
$_url_params = array(
|
||||
'pos' => $pos,
|
||||
'db' => $db);
|
||||
|
||||
// Add the sort options if they exists
|
||||
if (isset($_REQUEST['sort'])) {
|
||||
$_url_params['sort'] = $_REQUEST['sort'];
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['sort_order'])) {
|
||||
$_url_params['sort_order'] = $_REQUEST['sort_order'];
|
||||
}
|
||||
|
||||
$response->addHTML(
|
||||
PMA_Util::getListNavigator(
|
||||
$total_num_tables, $pos, $_url_params, 'db_structure.php',
|
||||
'frame_content', $GLOBALS['cfg']['MaxTableList']
|
||||
)
|
||||
);
|
||||
|
||||
// tables form
|
||||
$response->addHTML(
|
||||
'<form method="post" action="db_structure.php" '
|
||||
. 'name="tablesForm" id="tablesForm">'
|
||||
);
|
||||
|
||||
$response->addHTML(PMA_generate_common_hidden_inputs($db));
|
||||
|
||||
$response->addHTML(
|
||||
PMA_TableHeader($db_is_information_schema, $server_slave_status)
|
||||
);
|
||||
|
||||
$i = $sum_entries = 0;
|
||||
$overhead_check = '';
|
||||
$create_time_all = '';
|
||||
$update_time_all = '';
|
||||
$check_time_all = '';
|
||||
$num_columns = $cfg['PropertiesNumColumns'] > 1
|
||||
? ceil($num_tables / $cfg['PropertiesNumColumns']) + 1
|
||||
: 0;
|
||||
$row_count = 0;
|
||||
$sum_size = (double) 0;
|
||||
$overhead_size = (double) 0;
|
||||
|
||||
$hidden_fields = array();
|
||||
$odd_row = true;
|
||||
$sum_row_count_pre = '';
|
||||
|
||||
foreach ($tables as $keyname => $current_table) {
|
||||
// Get valid statistics whatever is the table type
|
||||
|
||||
$drop_query = '';
|
||||
$drop_message = '';
|
||||
$overhead = '';
|
||||
|
||||
$table_is_view = false;
|
||||
$table_encoded = urlencode($current_table['TABLE_NAME']);
|
||||
// Sets parameters for links
|
||||
$tbl_url_query = $url_query . '&table=' . $table_encoded;
|
||||
// do not list the previous table's size info for a view
|
||||
|
||||
list($current_table, $formatted_size, $unit, $formatted_overhead,
|
||||
$overhead_unit, $overhead_size, $table_is_view, $sum_size)
|
||||
= PMA_getStuffForEngineTypeTable(
|
||||
$current_table, $db_is_information_schema,
|
||||
$is_show_stats, $table_is_view, $sum_size, $overhead_size
|
||||
);
|
||||
|
||||
if (! PMA_Table::isMerge($db, $current_table['TABLE_NAME'])) {
|
||||
$sum_entries += $current_table['TABLE_ROWS'];
|
||||
}
|
||||
|
||||
if (isset($current_table['Collation'])) {
|
||||
$collation = '<dfn title="'
|
||||
. PMA_getCollationDescr($current_table['Collation']) . '">'
|
||||
. $current_table['Collation'] . '</dfn>';
|
||||
} else {
|
||||
$collation = '---';
|
||||
}
|
||||
|
||||
if ($is_show_stats) {
|
||||
if ($formatted_overhead != '') {
|
||||
$overhead = '<a href="tbl_structure.php?'
|
||||
. $tbl_url_query . '#showusage">'
|
||||
. '<span>' . $formatted_overhead . '</span>'
|
||||
. '<span class="unit">' . $overhead_unit . '</span>'
|
||||
. '</a>' . "\n";
|
||||
$overhead_check .=
|
||||
"markAllRows('row_tbl_" . ($i + 1) . "');";
|
||||
} else {
|
||||
$overhead = '-';
|
||||
}
|
||||
} // end if
|
||||
|
||||
unset($showtable);
|
||||
|
||||
if ($GLOBALS['cfg']['ShowDbStructureCreation']) {
|
||||
list($create_time, $create_time_all) = PMA_getTimeForCreateUpdateCheck(
|
||||
$current_table, 'Create_time', $create_time_all
|
||||
);
|
||||
}
|
||||
|
||||
if ($GLOBALS['cfg']['ShowDbStructureLastUpdate']) {
|
||||
// $showtable might already be set from ShowDbStructureCreation, see above
|
||||
list($update_time, $update_time_all) = PMA_getTimeForCreateUpdateCheck(
|
||||
$current_table, 'Update_time', $update_time_all
|
||||
);
|
||||
}
|
||||
|
||||
if ($GLOBALS['cfg']['ShowDbStructureLastCheck']) {
|
||||
// $showtable might already be set from ShowDbStructureCreation, see above
|
||||
list($check_time, $check_time_all) = PMA_getTimeForCreateUpdateCheck(
|
||||
$current_table, 'Check_time', $check_time_all
|
||||
);
|
||||
}
|
||||
|
||||
list($alias, $truename) = PMA_getAliasAndTrueName(
|
||||
$tooltip_aliasname, $current_table, $tooltip_truename
|
||||
);
|
||||
|
||||
$i++;
|
||||
|
||||
$row_count++;
|
||||
if ($table_is_view) {
|
||||
$hidden_fields[] = '<input type="hidden" name="views[]" value="'
|
||||
. htmlspecialchars($current_table['TABLE_NAME']) . '" />';
|
||||
}
|
||||
|
||||
/*
|
||||
* Always activate links for Browse, Search and Empty, even if
|
||||
* the icons are greyed, because
|
||||
* 1. for views, we don't know the number of rows at this point
|
||||
* 2. for tables, another source could have populated them since the
|
||||
* page was generated
|
||||
*
|
||||
* I could have used the PHP ternary conditional operator but I find
|
||||
* the code easier to read without this operator.
|
||||
*/
|
||||
list($browse_table, $search_table, $browse_table_label, $empty_table,
|
||||
$tracking_icon) = PMA_getHtmlForActionLinks(
|
||||
$current_table, $table_is_view, $tbl_url_query,
|
||||
$titles, $truename, $db_is_information_schema, $url_query
|
||||
);
|
||||
|
||||
if (! $db_is_information_schema) {
|
||||
list($drop_query, $drop_message)
|
||||
= PMA_getTableDropQueryAndMessage($table_is_view, $current_table);
|
||||
}
|
||||
|
||||
if ($num_columns > 0
|
||||
&& $num_tables > $num_columns
|
||||
&& ($row_count % $num_columns) == 0
|
||||
) {
|
||||
$row_count = 1;
|
||||
$odd_row = true;
|
||||
|
||||
$response->addHTML(
|
||||
'</tr></tbody></table>'
|
||||
);
|
||||
|
||||
$response->addHTML(PMA_TableHeader(false, $server_slave_status));
|
||||
}
|
||||
|
||||
list($do, $ignored) = PMA_getServerSlaveStatus(
|
||||
$server_slave_status, $truename
|
||||
);
|
||||
|
||||
list($html_output, $odd_row) = PMA_getHtmlForStructureTableRow(
|
||||
$i, $odd_row, $table_is_view, $current_table,
|
||||
$browse_table_label, $tracking_icon, $server_slave_status,
|
||||
$browse_table, $tbl_url_query, $search_table, $db_is_information_schema,
|
||||
$titles, $empty_table, $drop_query, $drop_message, $collation,
|
||||
$formatted_size, $unit, $overhead,
|
||||
(isset ($create_time) ? $create_time : ''),
|
||||
(isset ($update_time) ? $update_time : ''),
|
||||
(isset ($check_time) ? $check_time : ''),
|
||||
$is_show_stats, $ignored, $do, $colspan_for_structure
|
||||
);
|
||||
$response->addHTML($html_output);
|
||||
|
||||
} // end foreach
|
||||
|
||||
// Show Summary
|
||||
$response->addHTML('</tbody>');
|
||||
$response->addHTML(
|
||||
PMA_getHtmlBodyForTableSummary(
|
||||
$num_tables, $server_slave_status, $db_is_information_schema, $sum_entries,
|
||||
$db_collation, $is_show_stats, $sum_size, $overhead_size, $create_time_all,
|
||||
$update_time_all, $check_time_all, $sum_row_count_pre
|
||||
)
|
||||
);
|
||||
$response->addHTML('</table>');
|
||||
//check all
|
||||
$response->addHTML(
|
||||
PMA_getHtmlForCheckAllTables(
|
||||
$pmaThemeImage, $text_dir, $overhead_check,
|
||||
$db_is_information_schema, $hidden_fields
|
||||
)
|
||||
);
|
||||
$response->addHTML('</form>'); //end of form
|
||||
|
||||
// display again the table list navigator
|
||||
$response->addHTML(
|
||||
PMA_Util::getListNavigator(
|
||||
$total_num_tables, $pos, $_url_params, 'db_structure.php',
|
||||
'frame_content', $GLOBALS['cfg']['MaxTableList']
|
||||
)
|
||||
);
|
||||
|
||||
$response->addHTML('</div><hr />');
|
||||
|
||||
/**
|
||||
* Work on the database
|
||||
*/
|
||||
/* DATABASE WORK */
|
||||
/* Printable view of a table */
|
||||
$response->addHTML(
|
||||
PMA_getHtmlForTablePrintViewLink($url_query)
|
||||
. PMA_getHtmlForDataDictionaryLink($url_query)
|
||||
);
|
||||
|
||||
if (empty($db_is_information_schema)) {
|
||||
ob_start();
|
||||
include 'libraries/display_create_table.lib.php';
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
$response->addHTML($content);
|
||||
} // end if (Create Table dialog)
|
||||
|
||||
?>
|
249
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_tracking.php
vendored
Normal file
249
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_tracking.php
vendored
Normal file
@ -0,0 +1,249 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Run common work
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
//Get some js files needed for Ajax requests
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('db_structure.js');
|
||||
|
||||
/**
|
||||
* If we are not in an Ajax request, then do the common work and show the links etc.
|
||||
*/
|
||||
require 'libraries/db_common.inc.php';
|
||||
$url_query .= '&goto=tbl_tracking.php&back=db_tracking.php';
|
||||
|
||||
// Get the database structure
|
||||
$sub_part = '_structure';
|
||||
require 'libraries/db_info.inc.php';
|
||||
|
||||
// Work to do?
|
||||
// (here, do not use $_REQUEST['db] as it can be crafted)
|
||||
if (isset($_REQUEST['delete_tracking']) && isset($_REQUEST['table'])) {
|
||||
PMA_Tracker::deleteTracking($GLOBALS['db'], $_REQUEST['table']);
|
||||
|
||||
/**
|
||||
* If in an Ajax request, generate the success message and use
|
||||
* {@link PMA_Response()} to send the output
|
||||
*/
|
||||
if ($GLOBALS['is_ajax_request'] == true) {
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->addJSON('message', PMA_Message::success());
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Get tracked data about the database
|
||||
$data = PMA_Tracker::getTrackedData($_REQUEST['db'], '', '1');
|
||||
|
||||
// No tables present and no log exist
|
||||
if ($num_tables == 0 && count($data['ddlog']) == 0) {
|
||||
echo '<p>' . __('No tables found in database.') . '</p>' . "\n";
|
||||
|
||||
if (empty($db_is_information_schema)) {
|
||||
include 'libraries/display_create_table.lib.php';
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// Prepare statement to get HEAD version
|
||||
$all_tables_query = ' SELECT table_name, MAX(version) as version FROM ' .
|
||||
PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
|
||||
PMA_Util::backquote($GLOBALS['cfg']['Server']['tracking']) .
|
||||
' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($_REQUEST['db']) . '\' ' .
|
||||
' GROUP BY table_name' .
|
||||
' ORDER BY table_name ASC';
|
||||
|
||||
$all_tables_result = PMA_queryAsControlUser($all_tables_query);
|
||||
|
||||
// If a HEAD version exists
|
||||
if (PMA_DBI_num_rows($all_tables_result) > 0) {
|
||||
?>
|
||||
<div id="tracked_tables">
|
||||
<h3><?php echo __('Tracked tables');?></h3>
|
||||
|
||||
<table id="versions" class="data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo __('Database');?></th>
|
||||
<th><?php echo __('Table');?></th>
|
||||
<th><?php echo __('Last version');?></th>
|
||||
<th><?php echo __('Created');?></th>
|
||||
<th><?php echo __('Updated');?></th>
|
||||
<th><?php echo __('Status');?></th>
|
||||
<th><?php echo __('Action');?></th>
|
||||
<th><?php echo __('Show');?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
|
||||
// Print out information about versions
|
||||
|
||||
$drop_image_or_text = '';
|
||||
if (in_array(
|
||||
$GLOBALS['cfg']['ActionLinksMode'],
|
||||
array('icons', 'both')
|
||||
)
|
||||
) {
|
||||
$drop_image_or_text .= PMA_Util::getImage(
|
||||
'b_drop.png',
|
||||
__('Delete tracking data for this table')
|
||||
);
|
||||
}
|
||||
if (in_array(
|
||||
$GLOBALS['cfg']['ActionLinksMode'],
|
||||
array('text', 'both')
|
||||
)
|
||||
) {
|
||||
$drop_image_or_text .= __('Drop');
|
||||
}
|
||||
|
||||
$style = 'odd';
|
||||
while ($one_result = PMA_DBI_fetch_array($all_tables_result)) {
|
||||
list($table_name, $version_number) = $one_result;
|
||||
$table_query = ' SELECT * FROM ' .
|
||||
PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . '.' .
|
||||
PMA_Util::backquote($GLOBALS['cfg']['Server']['tracking']) .
|
||||
' WHERE `db_name` = \'' . PMA_Util::sqlAddSlashes($_REQUEST['db'])
|
||||
. '\' AND `table_name` = \'' . PMA_Util::sqlAddSlashes($table_name)
|
||||
. '\' AND `version` = \'' . $version_number . '\'';
|
||||
|
||||
$table_result = PMA_queryAsControlUser($table_query);
|
||||
$version_data = PMA_DBI_fetch_array($table_result);
|
||||
|
||||
if ($version_data['tracking_active'] == 1) {
|
||||
$version_status = __('active');
|
||||
} else {
|
||||
$version_status = __('not active');
|
||||
}
|
||||
$tmp_link = 'tbl_tracking.php?' . $url_query . '&table='
|
||||
. htmlspecialchars($version_data['table_name']);
|
||||
$delete_link = 'db_tracking.php?' . $url_query . '&table='
|
||||
. htmlspecialchars($version_data['table_name'])
|
||||
. '&delete_tracking=true&';
|
||||
?>
|
||||
<tr class="noclick <?php echo $style;?>">
|
||||
<td><?php echo htmlspecialchars($version_data['db_name']);?></td>
|
||||
<td><?php echo htmlspecialchars($version_data['table_name']);?></td>
|
||||
<td><?php echo $version_data['version'];?></td>
|
||||
<td><?php echo $version_data['date_created'];?></td>
|
||||
<td><?php echo $version_data['date_updated'];?></td>
|
||||
<td><?php echo $version_status;?></td>
|
||||
<td><a class="drop_tracking_anchor ajax" href="<?php echo $delete_link;?>" ><?php echo $drop_image_or_text; ?></a></td>
|
||||
<td> <a href="<?php echo $tmp_link; ?>"><?php echo __('Versions');?></a>
|
||||
| <a href="<?php echo $tmp_link; ?>&report=true&version=<?php echo $version_data['version'];?>"><?php echo __('Tracking report');?></a>
|
||||
| <a href="<?php echo $tmp_link; ?>&snapshot=true&version=<?php echo $version_data['version'];?>"><?php echo __('Structure snapshot');?></a></td>
|
||||
</tr>
|
||||
<?php
|
||||
if ($style == 'even') {
|
||||
$style = 'odd';
|
||||
} else {
|
||||
$style = 'even';
|
||||
}
|
||||
}
|
||||
unset($tmp_link);
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
$sep = $GLOBALS['cfg']['NavigationTreeTableSeparator'];
|
||||
|
||||
// Get list of tables
|
||||
$table_list = PMA_Util::getTableList($GLOBALS['db']);
|
||||
|
||||
// For each table try to get the tracking version
|
||||
foreach ($table_list as $key => $value) {
|
||||
// If $value is a table group.
|
||||
if (array_key_exists(('is' . $sep . 'group'), $value)
|
||||
&& $value['is' . $sep . 'group']
|
||||
) {
|
||||
foreach ($value as $temp_table) {
|
||||
// If $temp_table is a table with the value for 'Name' is set,
|
||||
// rather than a propery of the table group.
|
||||
if (is_array($temp_table)
|
||||
&& array_key_exists('Name', $temp_table)
|
||||
) {
|
||||
$tracking_version = PMA_Tracker::getVersion(
|
||||
$GLOBALS['db'],
|
||||
$temp_table['Name']
|
||||
);
|
||||
if ($tracking_version == -1) {
|
||||
$my_tables[] = $temp_table['Name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { // If $value is a table.
|
||||
if (PMA_Tracker::getVersion($GLOBALS['db'], $value['Name']) == -1) {
|
||||
$my_tables[] = $value['Name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If untracked tables exist
|
||||
if (isset($my_tables)) {
|
||||
?>
|
||||
<h3><?php echo __('Untracked tables');?></h3>
|
||||
|
||||
<table id="noversions" class="data">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 300px"><?php echo __('Table');?></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
// Print out list of untracked tables
|
||||
|
||||
$style = 'odd';
|
||||
|
||||
foreach ($my_tables as $key => $tablename) {
|
||||
if (PMA_Tracker::getVersion($GLOBALS['db'], $tablename) == -1) {
|
||||
$my_link = '<a href="tbl_tracking.php?' . $url_query
|
||||
. '&table=' . htmlspecialchars($tablename) .'">';
|
||||
$my_link .= PMA_Util::getIcon('eye.png', __('Track table'));
|
||||
$my_link .= '</a>';
|
||||
?>
|
||||
<tr class="noclick <?php echo $style;?>">
|
||||
<td><?php echo htmlspecialchars($tablename);?></td>
|
||||
<td><?php echo $my_link;?></td>
|
||||
</tr>
|
||||
<?php
|
||||
if ($style == 'even') {
|
||||
$style = 'odd';
|
||||
} else {
|
||||
$style = 'even';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
}
|
||||
// If available print out database log
|
||||
if (count($data['ddlog']) > 0) {
|
||||
$log = '';
|
||||
foreach ($data['ddlog'] as $entry) {
|
||||
$log .= '# ' . $entry['date'] . ' ' . $entry['username'] . "\n"
|
||||
. $entry['statement'] . "\n";
|
||||
}
|
||||
echo PMA_Util::getMessage(__('Database Log'), $log);
|
||||
}
|
||||
|
||||
?>
|
25
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_triggers.php
vendored
Normal file
25
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/db_triggers.php
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Triggers management.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Include required files
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
|
||||
/**
|
||||
* Include all other files
|
||||
*/
|
||||
require_once 'libraries/rte/rte_triggers.lib.php';
|
||||
|
||||
/**
|
||||
* Do the magic
|
||||
*/
|
||||
$_PMA_RTE = 'TRI';
|
||||
require_once 'libraries/rte/rte_main.inc.php';
|
||||
|
||||
?>
|
2769
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/doc/html/_sources/config.txt
vendored
Normal file
2769
.devilbox/www/htdocs/vendor/phpmyadmin-4.0/doc/html/_sources/config.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user