Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a90a38f096 | ||
|
|
68f8836cfb | ||
|
|
1e41f6a8ff | ||
|
|
875a326344 | ||
|
|
7f9664af0a | ||
|
|
8755c8ece7 | ||
|
|
66358414f2 | ||
|
|
bc68c4bc70 | ||
|
|
82279c376b | ||
|
|
8b096e770c | ||
|
|
6bf57bd4c6 | ||
|
|
ea55f3880e | ||
|
|
19e0ea60a7 | ||
|
|
7831d9dfb6 | ||
|
|
907db24187 | ||
|
|
5a424d5977 | ||
|
|
6c4353fffe | ||
|
|
fd1ec11ad1 | ||
|
|
9f89455b3c | ||
|
|
7d8e2e4fdd | ||
|
|
0aa4ae0b96 | ||
|
|
04620f2475 | ||
|
|
6cfb34ab22 | ||
|
|
e46af305a9 | ||
|
|
2fe00e5e96 | ||
|
|
2c7f9bd449 | ||
|
|
d1ee1eb4e1 | ||
|
|
f9dd7644cc | ||
|
|
3f94d86db4 | ||
|
|
9882234645 | ||
|
|
838f1a0678 | ||
|
|
c111b2beaf | ||
|
|
ebad7240cc | ||
|
|
8ed85a5fb4 | ||
|
|
3beaf71e16 | ||
|
|
38f1e838a5 | ||
|
|
0f4ec77ac0 | ||
|
|
28d079e83f | ||
|
|
5970f2a577 | ||
|
|
9dea1a40db | ||
|
|
dbe131633a | ||
|
|
277ce801e6 | ||
|
|
7e5e973d09 | ||
|
|
36fff814bf | ||
|
|
94cb7f7956 | ||
|
|
edbefc256b | ||
|
|
8af8e13686 | ||
|
|
3d2d3b9948 | ||
|
|
91f60763d8 | ||
|
|
54401165e8 | ||
|
|
b99efb8fc8 | ||
|
|
ad102421cb | ||
|
|
9be00683d9 | ||
|
|
e76f36a1be | ||
|
|
70b62a6c6a | ||
|
|
61b3fe4ebd | ||
|
|
30a93dbef7 | ||
|
|
b6956bd6fd | ||
|
|
7a4b7e23c5 | ||
|
|
b34a7610f5 | ||
|
|
cf680e43d8 | ||
|
|
3a311906bf | ||
|
|
d9789a636e | ||
|
|
cd8a9078d5 | ||
|
|
121d369ab8 | ||
|
|
1a0eb48b97 | ||
|
|
14e863930c | ||
|
|
6f5775381a | ||
|
|
ee9f85628d | ||
|
|
3000fc0b35 | ||
|
|
bab7fa1f39 | ||
|
|
0d19b01229 | ||
|
|
2b2d558c87 | ||
|
|
94f25f73fa | ||
|
|
5bd16c0e77 | ||
|
|
7bb40dd882 | ||
|
|
bb99c050b6 | ||
|
|
31cdf10011 | ||
|
|
02c29c137c | ||
|
|
e9afe3fdae | ||
|
|
ce9517885b | ||
|
|
6a41d655de | ||
|
|
9b8588df79 | ||
|
|
df97fa71a0 | ||
|
|
b9f1b4e170 | ||
|
|
d89acfd01d | ||
|
|
3ea7b8e03e | ||
|
|
59881232bf | ||
|
|
0575cdab18 | ||
|
|
7f6b5d1b58 | ||
|
|
f365e8abe1 | ||
|
|
b7edd3fa26 | ||
|
|
367a210996 | ||
|
|
c2a4a39ea0 | ||
|
|
e056323677 | ||
|
|
b8759e4acd | ||
|
|
e6a3df6f08 | ||
|
|
617dfbf0e2 | ||
|
|
e4c9bf5ba4 | ||
|
|
910091b6c6 | ||
|
|
92b8ce3a89 | ||
|
|
8a276fc073 | ||
|
|
baa2e890ba | ||
|
|
a9f4aee93f | ||
|
|
144926774d | ||
|
|
3ee82c38d5 | ||
|
|
c9e85d3159 | ||
|
|
d755a42530 | ||
|
|
674a7f3f57 | ||
|
|
f70df1fff2 | ||
|
|
2553e6464b | ||
|
|
746e04cf23 | ||
|
|
cecc163230 | ||
|
|
edef3b961a | ||
|
|
254583a135 | ||
|
|
435da08a02 | ||
|
|
945c060b67 | ||
|
|
83fd4bf68a | ||
|
|
f11c4531e9 | ||
|
|
f36c24e5d0 | ||
|
|
23a91b346d | ||
|
|
08b8d1e3e2 | ||
|
|
c2a2a11be3 | ||
|
|
54abbddbe5 | ||
|
|
c6425adffc | ||
|
|
20f658ffbb | ||
|
|
ed957cf6b3 | ||
|
|
8eb465d26f | ||
|
|
6ff06d4609 | ||
|
|
c817b1edb7 | ||
|
|
f7c6a52f6d | ||
|
|
ce03af265e | ||
|
|
5ba87d9933 | ||
|
|
db32bcfc06 | ||
|
|
11038348a3 | ||
|
|
3e343bdf66 | ||
|
|
e131563c8f | ||
|
|
0094cc9afe | ||
|
|
5fde923aa0 | ||
|
|
ac780beb2c | ||
|
|
4d4c781a8e | ||
|
|
85ace455da | ||
|
|
8e09983805 | ||
|
|
1e3a4f2657 | ||
|
|
0991adb756 | ||
|
|
0693fde962 | ||
|
|
c1008c87a7 | ||
|
|
7fb5f92200 | ||
|
|
02e4ec4584 | ||
|
|
50c8207fed | ||
|
|
3e707708ec | ||
|
|
6dbfa73461 | ||
|
|
727eeb74fe | ||
|
|
76ecc6efe8 | ||
|
|
ecc7690046 | ||
|
|
f4b0737178 | ||
|
|
e99c7a81db | ||
|
|
ce0a6dc3af | ||
|
|
1f5e3e0daa | ||
|
|
b69720836b | ||
|
|
468cca81d1 | ||
|
|
f3e428ea1e | ||
|
|
5c866ae133 | ||
|
|
9b422b38c5 | ||
|
|
2401620dc6 | ||
|
|
f6056b2d37 | ||
|
|
2457b96f7d | ||
|
|
a560fc353c | ||
|
|
9655c53a3b | ||
|
|
e2c67e854f | ||
|
|
3b382c0642 | ||
|
|
3e7617e825 | ||
|
|
a4ffdb0316 | ||
|
|
4515f11169 | ||
|
|
ec32f64bc4 | ||
|
|
15bd8b9632 | ||
|
|
ef013e0827 | ||
|
|
08fc272f1b | ||
|
|
c23f6c0161 | ||
|
|
c1eab8e3c7 | ||
|
|
fbe30c7ad6 | ||
|
|
b3773217e9 | ||
|
|
acc3ede87d | ||
|
|
70f6d92e87 | ||
|
|
a79def43c5 | ||
|
|
042695af55 | ||
|
|
b5592b8466 | ||
|
|
85f9523b30 | ||
|
|
cb327e902f | ||
|
|
8c1d6266af | ||
|
|
30009dba6f | ||
|
|
2a9e72da41 | ||
|
|
e724ef7291 | ||
|
|
24e7e8823e | ||
|
|
dfc2c110d6 | ||
|
|
42fb4b71a6 | ||
|
|
f0134b610b | ||
|
|
c2cf34392a | ||
|
|
32235cfd9d | ||
|
|
6457eded48 | ||
|
|
5cc41e8455 | ||
|
|
20dc859436 | ||
|
|
cb51396c80 | ||
|
|
f5ec4d60c0 | ||
|
|
2a6e2c0450 | ||
|
|
de00b4e9d3 | ||
|
|
8c67945c64 | ||
|
|
e22b4ec085 | ||
|
|
71efd5c97f | ||
|
|
e5889df761 | ||
|
|
624e3d74a6 | ||
|
|
b4a83c1969 | ||
|
|
ee35ce9839 | ||
|
|
30815f71e0 | ||
|
|
949a73b468 | ||
|
|
24d57cdd4b | ||
|
|
191f3d2f97 | ||
|
|
4973714e2f | ||
|
|
7a8a4fe71d | ||
|
|
2e36c0a662 | ||
|
|
71b403bbe1 | ||
|
|
c5d22ace25 | ||
|
|
81671abd01 | ||
|
|
70bfeefb3b | ||
|
|
da1b302a34 | ||
|
|
e8b83f3a33 | ||
|
|
3f7068541f | ||
|
|
c6bdc172ee | ||
|
|
c3cf74f0c5 | ||
|
|
52db203ecd | ||
|
|
6e05353f31 | ||
|
|
2fdc93b3fd | ||
|
|
907dcd829a | ||
|
|
b2ef314960 | ||
|
|
6af75013d4 | ||
|
|
7f6a9a090a | ||
|
|
fd381a9a93 | ||
|
|
1825830c3d | ||
|
|
e29ea66e41 | ||
|
|
3047e09f88 | ||
|
|
d7e218350c | ||
|
|
990af076af | ||
|
|
569dfb5502 | ||
|
|
b1f0342921 | ||
|
|
a14689f66b | ||
|
|
63f9e4c8df | ||
|
|
ee702ff641 | ||
|
|
6b43e67c40 | ||
|
|
9a870506ab | ||
|
|
008ae978dd | ||
|
|
20b1d8c7e5 | ||
|
|
1e011ba56d | ||
|
|
a73e48c3e2 | ||
|
|
1a142e5250 | ||
|
|
c9a4697473 | ||
|
|
4b38d93aa9 | ||
|
|
5d2851de36 | ||
|
|
e9fd9f03fd | ||
|
|
f6e6a73b4d | ||
|
|
3674acc4f1 | ||
|
|
4913da0a1d | ||
|
|
18ef4b0767 | ||
|
|
ab5365423b | ||
|
|
e5aedd5cb1 | ||
|
|
60ea7fde8a | ||
|
|
7db9a33cef | ||
|
|
88c95375f0 | ||
|
|
d0e368fe2a | ||
|
|
d2785543b4 | ||
|
|
9df86d771e | ||
|
|
714d64afb6 | ||
|
|
f3abd57925 | ||
|
|
e9023340dd | ||
|
|
43f4b2c5fb | ||
|
|
5185f0c12a | ||
|
|
cd72e1c06b | ||
|
|
f5f4925d4e | ||
|
|
92210edc16 | ||
|
|
bd3fd20630 | ||
|
|
5111f026e6 | ||
|
|
6797c85480 | ||
|
|
6327e2a5dc | ||
|
|
2c9ff2bb52 | ||
|
|
604f007a30 | ||
|
|
cc2b5c246d | ||
|
|
38596ca77f | ||
|
|
c337bfdf88 | ||
|
|
c0a2a13efe | ||
|
|
cb5603008a | ||
|
|
35c2bac898 | ||
|
|
9d147b5e6c | ||
|
|
fb3f11a93f | ||
|
|
aabc82ee6c | ||
|
|
40aff270cd | ||
|
|
8629b0418d | ||
|
|
af4e5ae9de | ||
|
|
851a21a3c1 | ||
|
|
1f951556fc | ||
|
|
d5b7dd165d | ||
|
|
beb7a86f2a | ||
|
|
87446cfcb3 | ||
|
|
943e9994c8 | ||
|
|
bd57ac57a5 | ||
|
|
db3519a559 | ||
|
|
33e9d1e1d0 | ||
|
|
32d09cff7d | ||
|
|
976c9d0f9b | ||
|
|
b261465599 | ||
|
|
67a0d97f60 | ||
|
|
5ebd5632c4 | ||
|
|
141c9f8986 | ||
|
|
dbb6ab7fdf | ||
|
|
8cf09955fc | ||
|
|
19cde16194 | ||
|
|
6a7659b59e | ||
|
|
31349a62b6 | ||
|
|
d8995d15f7 | ||
|
|
2f822d4ee4 | ||
|
|
02cfe7a453 | ||
|
|
8ea57846fa | ||
|
|
f704fd7ea4 | ||
|
|
bb3167d5c4 | ||
|
|
235f196152 | ||
|
|
adbc9b1a22 | ||
|
|
cd445a2acd | ||
|
|
210ee5285c | ||
|
|
644250f3f3 | ||
|
|
34c633ebb9 | ||
|
|
c5da8c4a5a | ||
|
|
6aeb32bf3f | ||
|
|
531817f553 | ||
|
|
80d72627b0 | ||
|
|
37e45d81be | ||
|
|
7324ab1060 | ||
|
|
2c866ef2bb | ||
|
|
9ed1ecfcb4 | ||
|
|
e93cc1c920 | ||
|
|
d77231ae1a | ||
|
|
5bd41ba2f4 | ||
|
|
b29af7898a | ||
|
|
03e129618d | ||
|
|
f0ae5ffeef | ||
|
|
a80e634776 | ||
|
|
96612f11e1 | ||
|
|
c465c860ca | ||
|
|
db1d1d26fc | ||
|
|
6a2cbbe075 | ||
|
|
7d132fdbfa | ||
|
|
0b66b11ae0 | ||
|
|
8566183f0d | ||
|
|
f755f96cb1 | ||
|
|
341f599840 | ||
|
|
c1842b0155 | ||
|
|
8bbf5bcc1c | ||
|
|
1febdfd7a8 | ||
|
|
481174b1d2 | ||
|
|
724a15866c | ||
|
|
f1c56fe70c | ||
|
|
e016679e67 | ||
|
|
5073f57167 | ||
|
|
e8dede3910 | ||
|
|
47433e4b42 | ||
|
|
0618fd53dc | ||
|
|
799e0ee367 | ||
|
|
c29dfab48f | ||
|
|
44fc7a257b | ||
|
|
dc8fbb05ef | ||
|
|
41ee457cc7 | ||
|
|
b14facc9dc | ||
|
|
6e24064711 | ||
|
|
66d2401494 | ||
|
|
93d0220517 | ||
|
|
311867f730 | ||
|
|
b38cbf8ae5 | ||
|
|
ba186254fd | ||
|
|
517e5d117b | ||
|
|
20302f8312 | ||
|
|
b5ccb5448b | ||
|
|
7d3b6d12c0 | ||
|
|
fc2fb92d7b | ||
|
|
795b5bdf55 | ||
|
|
e2aec15879 | ||
|
|
3741c53e8b | ||
|
|
5b6d99a126 | ||
|
|
688bc53da9 | ||
|
|
b456c0feae | ||
|
|
69e068f80b | ||
|
|
d11f67ba2e | ||
|
|
921fa1ec08 | ||
|
|
0a4a9e3f47 | ||
|
|
5cf2074338 | ||
|
|
0bad4aa1c0 | ||
|
|
dfd0c5f758 | ||
|
|
0bf1f545c1 | ||
|
|
85d00b6aca | ||
|
|
b90672ae0e | ||
|
|
ccd04e73b1 | ||
|
|
5321ce17d4 | ||
|
|
9337c6d7aa | ||
|
|
3b0744dcd3 | ||
|
|
36e88a6a2d | ||
|
|
58902f97c4 | ||
|
|
e1ef69a0c4 | ||
|
|
46fa0f3cd0 | ||
|
|
1d3edaf62e | ||
|
|
adeb007cb0 | ||
|
|
45e6bcf26f | ||
|
|
5ba1a602fe | ||
|
|
7d4d645935 | ||
|
|
23f56520e2 | ||
|
|
ee8e184c10 | ||
|
|
db83fba992 | ||
|
|
c103b9e6f3 | ||
|
|
a757c437e2 | ||
|
|
49a07c4ea0 | ||
|
|
41a2f6803d | ||
|
|
d7e3d03c73 | ||
|
|
4c999721bb | ||
|
|
f5ad535387 | ||
|
|
f79ca0f232 | ||
|
|
8da71f60ed | ||
|
|
ecd4a337ff | ||
|
|
04d8d9b704 | ||
|
|
01bc89dd04 | ||
|
|
4d619286c3 | ||
|
|
22a3c1c4db | ||
|
|
b61dced93b | ||
|
|
346a049c18 | ||
|
|
bc65502fe9 | ||
|
|
aa1c155123 | ||
|
|
b2bfe11743 | ||
|
|
164944dd0c | ||
|
|
9356fdfaa8 | ||
|
|
27cd6e6e5b | ||
|
|
f74e8f7250 | ||
|
|
aa140eb846 | ||
|
|
54aa905699 | ||
|
|
2fc315c51e | ||
|
|
45244de78e | ||
|
|
99137d8fef | ||
|
|
0735847508 | ||
|
|
e8ea8c8da3 | ||
|
|
d50d618e01 | ||
|
|
02310f2319 | ||
|
|
f23f0d259c | ||
|
|
327369a761 | ||
|
|
c56498a529 | ||
|
|
16114cb3bd | ||
|
|
808ac0f0e6 | ||
|
|
b4b24aadfd | ||
|
|
cbe9c53262 | ||
|
|
4c2591af36 | ||
|
|
1b8069eec8 | ||
|
|
52a03dadbe | ||
|
|
4d9e6be394 | ||
|
|
cc91e49f7b | ||
|
|
605933c516 | ||
|
|
7ed4c7fac9 | ||
|
|
7224f97781 | ||
|
|
1a2f4251ed | ||
|
|
ab30d5981d | ||
|
|
458aecdf7b | ||
|
|
78bcc97591 | ||
|
|
029444f7be | ||
|
|
d3fdc11e56 | ||
|
|
b5dd51a579 | ||
|
|
1e13e8f8a3 | ||
|
|
c9b8d1a11a | ||
|
|
5932aefdb0 | ||
|
|
53e921dc7f | ||
|
|
0835753299 | ||
|
|
d701f840db | ||
|
|
08f7c21fc2 | ||
|
|
5dfdcb1d85 | ||
|
|
049b5d8039 | ||
|
|
3923dc9a33 | ||
|
|
b6d84674f6 | ||
|
|
9cb8f73738 | ||
|
|
cb1b15dbcc | ||
|
|
6020933f6d | ||
|
|
ae583aea1e | ||
|
|
8cd37c5c61 | ||
|
|
36427eb4b7 | ||
|
|
1e6f22ce59 | ||
|
|
8584d710c0 | ||
|
|
90440786b8 | ||
|
|
f97a26c6cb | ||
|
|
8d342c099e | ||
|
|
bed3d9982c | ||
|
|
588a1a7c9d | ||
|
|
e28acc8495 | ||
|
|
3ee5fa6d86 | ||
|
|
2717346e9d | ||
|
|
31d5e384e2 | ||
|
|
13cf64cf2e | ||
|
|
4bd82f7b01 | ||
|
|
efe7855776 | ||
|
|
dca1e67105 | ||
|
|
6695abda2f | ||
|
|
ae3601af92 | ||
|
|
b25ec93d14 | ||
|
|
bd557fbdb4 | ||
|
|
4b8485b087 | ||
|
|
89dd109a18 | ||
|
|
846c4500f7 | ||
|
|
445da5447d | ||
|
|
78afba5c29 | ||
|
|
46c6001c9d | ||
|
|
3b365d330a | ||
|
|
a9bdc255df | ||
|
|
4fb32fad37 | ||
|
|
b34d31f6a7 | ||
|
|
78d87038aa | ||
|
|
be27a72d86 | ||
|
|
aa86158caf | ||
|
|
de00ac1622 | ||
|
|
ed41272e81 | ||
|
|
7af0db9631 | ||
|
|
799ba3bc46 | ||
|
|
60f378839c | ||
|
|
72fa34a5cf | ||
|
|
e7521f0246 | ||
|
|
bb4dff1caa | ||
|
|
7312385dd6 | ||
|
|
8bd4f8b23c | ||
|
|
e80f294e80 | ||
|
|
b57e70ad30 | ||
|
|
9ac651afd5 | ||
|
|
00a8dee744 | ||
|
|
63270d9a4e | ||
|
|
f1242397be | ||
|
|
7957f8553c | ||
|
|
c4967cf252 | ||
|
|
af3da468ee | ||
|
|
a722af88e0 | ||
|
|
525117f3fd | ||
|
|
f35bf05726 | ||
|
|
01902c981c | ||
|
|
72489b0979 | ||
|
|
fa793a828b | ||
|
|
d2a1501e82 | ||
|
|
892c67bae5 | ||
|
|
fe35a8c782 | ||
|
|
b608efa5da | ||
|
|
8c0b7e45de | ||
|
|
3b7e42c280 | ||
|
|
c6199fa00d | ||
|
|
e3db3728f9 | ||
|
|
f3cd3a4e24 | ||
|
|
634d85c763 | ||
|
|
18e09702f3 | ||
|
|
4ee0fd5c54 | ||
|
|
a752574f66 | ||
|
|
f2d574fab5 | ||
|
|
2cf6a67a53 | ||
|
|
3857ab22d3 | ||
|
|
de8af9c9f1 | ||
|
|
cc12f9863e | ||
|
|
a5f671fa76 | ||
|
|
c6fe8397a7 | ||
|
|
d3154bd94f | ||
|
|
3639509a69 | ||
|
|
4c8349fbb5 | ||
|
|
fcf518353c | ||
|
|
e7c1835b19 | ||
|
|
5f12b870e6 | ||
|
|
9ef65f3f25 | ||
|
|
c6552d0b60 | ||
|
|
78fa0cb41b | ||
|
|
d98c8242af | ||
|
|
4ae4cc2169 | ||
|
|
9ac6bdbeaa | ||
|
|
8fc6f81f8d | ||
|
|
9a4363a6a5 | ||
|
|
50c42776e7 | ||
|
|
fb8b63cffa | ||
|
|
36e6d53374 | ||
|
|
9cc14af668 | ||
|
|
46f484461f | ||
|
|
7863d42834 | ||
|
|
743c206bc7 | ||
|
|
9691405fd4 | ||
|
|
12f9a05106 | ||
|
|
be8c7e3ee5 | ||
|
|
f3b6f58344 | ||
|
|
f65540dd19 | ||
|
|
6fb06a0564 | ||
|
|
acbd99f2ed | ||
|
|
541cb5244d | ||
|
|
9214b4a5da | ||
|
|
9cbff6835b | ||
|
|
8818f7b7e5 | ||
|
|
8fc0bc98f3 | ||
|
|
021048d95e | ||
|
|
aa46c9fb27 | ||
|
|
3fe9bfc719 | ||
|
|
4ca027de06 | ||
|
|
bc79530c52 | ||
|
|
aecc1adbaf | ||
|
|
582de7c18c | ||
|
|
f6a1fa94d3 | ||
|
|
51c3f8a378 | ||
|
|
05b40efddf | ||
|
|
7f379482a8 | ||
|
|
06eb66840a | ||
|
|
5dad177d3e | ||
|
|
5077a3d43f | ||
|
|
dae6437421 | ||
|
|
68c08ba9eb | ||
|
|
71b15b08eb | ||
|
|
afd6447581 | ||
|
|
e923fb045e | ||
|
|
5cb4415032 | ||
|
|
7b1a7fd20e | ||
|
|
38bda21f84 | ||
|
|
3997bebb76 | ||
|
|
9a4b3034ea | ||
|
|
f26a418a87 | ||
|
|
729e7ef6d5 | ||
|
|
09f0530d57 | ||
|
|
6ef722e7ea | ||
|
|
c7c112ee71 | ||
|
|
42682120ef | ||
|
|
6bb27c3b24 | ||
|
|
dd95b638e8 | ||
|
|
cb6fe2d32c | ||
|
|
a6bd17fa01 | ||
|
|
4ddc6294e1 | ||
|
|
916f079ecc | ||
|
|
426004e795 | ||
|
|
09f68b767c | ||
|
|
c3a7da959e | ||
|
|
5068b081c9 | ||
|
|
19054ea5f2 | ||
|
|
1ecc87ab26 | ||
|
|
b7e947b915 | ||
|
|
3eed685906 | ||
|
|
80a52d8c3c | ||
|
|
ec8f2368da | ||
|
|
b89592b84f | ||
|
|
2d5f24b4de | ||
|
|
a82579dc60 | ||
|
|
4d4113fccc | ||
|
|
1cc13235cf | ||
|
|
a1e11d9521 | ||
|
|
e72c78cd7f | ||
|
|
37e3424782 | ||
|
|
768ef23f29 | ||
|
|
64cf90313d | ||
|
|
ca7b488f4d | ||
|
|
bcab73a2f5 | ||
|
|
86a7dfeba5 | ||
|
|
84e4f6fee8 | ||
|
|
4d115fd895 | ||
|
|
3100f342c3 | ||
|
|
41d9638ce6 | ||
|
|
83eab8e5c5 | ||
|
|
8d2d10b15a | ||
|
|
eb30cf84b4 | ||
|
|
b5abe21889 | ||
|
|
0b4fe3148f | ||
|
|
e4c2841444 | ||
|
|
941e2ee411 | ||
|
|
8705232ea3 | ||
|
|
3c104111a0 | ||
|
|
02f7e386a4 | ||
|
|
a006bbed98 | ||
|
|
12b298abd6 | ||
|
|
0018ffb5bb | ||
|
|
6a939480c9 | ||
|
|
2221d27722 | ||
|
|
25af73bee8 | ||
|
|
5d8ae712b5 | ||
|
|
7bdec88efc | ||
|
|
52dbc4b6e7 | ||
|
|
5d1545dd2a | ||
|
|
bfb97db2a5 | ||
|
|
99165f3c82 | ||
|
|
3a8f88b703 | ||
|
|
1950db98ab | ||
|
|
4875dcede0 | ||
|
|
5c58ba44bc | ||
|
|
683cc32a3b | ||
|
|
55e1580363 | ||
|
|
e50144581b | ||
|
|
19e7535a5b | ||
|
|
414b954b92 | ||
|
|
9d8a776bd9 | ||
|
|
264866ab93 | ||
|
|
04cabd15eb | ||
|
|
85930d5564 | ||
|
|
b24a38e42d | ||
|
|
8cb15160ac | ||
|
|
011947daf2 | ||
|
|
0c79231eb9 | ||
|
|
251a01d7ac | ||
|
|
fd7ee9be7a | ||
|
|
6fa9594fef | ||
|
|
51527db42e | ||
|
|
8437058227 | ||
|
|
c885670079 | ||
|
|
1f33d7db0c | ||
|
|
9823909cfd | ||
|
|
e3a242ae56 | ||
|
|
967cfae906 | ||
|
|
2a36ba7d3c | ||
|
|
c73870c129 | ||
|
|
9de6eea4f0 | ||
|
|
fde5420caa | ||
|
|
dbe7b35e38 | ||
|
|
0e5af5accf | ||
|
|
dc1eff24e8 | ||
|
|
697c4b851f | ||
|
|
e0d0a98fdb | ||
|
|
9337df512f | ||
|
|
e1537e3ef6 | ||
|
|
8f67e4d9fe | ||
|
|
164426f88c | ||
|
|
022b78581f | ||
|
|
313de4c467 | ||
|
|
d2b947bedd | ||
|
|
bcaa1ad81d | ||
|
|
c8add75f7c | ||
|
|
99af60cfa3 | ||
|
|
559faf745a | ||
|
|
31a69933e0 | ||
|
|
8f9d9b057a | ||
|
|
765fcbe5da | ||
|
|
f18614588a | ||
|
|
61c2fd4c51 | ||
|
|
9a16993762 | ||
|
|
2adccca817 | ||
|
|
1c90e83ae1 | ||
|
|
091ffc65bd | ||
|
|
7320b911d6 | ||
|
|
452d3e0af6 | ||
|
|
5c10516850 | ||
|
|
a6a537b638 | ||
|
|
6824dbb59a | ||
|
|
43cfe73582 | ||
|
|
4a14538564 | ||
|
|
83799ee4c8 | ||
|
|
ec9d28df7a | ||
|
|
e9c3399d32 | ||
|
|
241613d5cf | ||
|
|
e29e972bf1 | ||
|
|
1c2c443d6d | ||
|
|
14db33addb | ||
|
|
adbc1eace3 | ||
|
|
4191b9f92e | ||
|
|
e422a93883 | ||
|
|
cf396c364b | ||
|
|
38f209a57d | ||
|
|
a9ff55017b | ||
|
|
3e49c0c7f9 | ||
|
|
f733f8c5d9 | ||
|
|
9388ad70b3 | ||
|
|
8ad850072a | ||
|
|
535c8ec92f | ||
|
|
ec075413b3 | ||
|
|
aa2beb7027 | ||
|
|
278c8ac541 | ||
|
|
93419222d3 | ||
|
|
80cf22c97c | ||
|
|
b43149f9d3 | ||
|
|
bc97db94e5 | ||
|
|
24d43d3924 | ||
|
|
3193d8a0cb | ||
|
|
2e06869ae3 | ||
|
|
e645c539a0 | ||
|
|
15b224917a | ||
|
|
67530cc3a5 | ||
|
|
bc6ec9a3d0 | ||
|
|
664a0d9adf | ||
|
|
cb9b2bb73d | ||
|
|
0b6a3930fc | ||
|
|
eeac9dbaf1 | ||
|
|
de1753aebe | ||
|
|
b23b5fa2f1 | ||
|
|
7a81263b34 | ||
|
|
936019736b | ||
|
|
3b163d66f9 | ||
|
|
a2f4c098e3 | ||
|
|
282387cc17 | ||
|
|
d09b992df5 | ||
|
|
5b4bf11250 | ||
|
|
1bb3328a0a | ||
|
|
a046070f8a | ||
|
|
b8a14c1dfa | ||
|
|
87014a0c5c | ||
|
|
f5583edec7 | ||
|
|
344a61d5a5 | ||
|
|
a50f7ce802 | ||
|
|
b6bfef3b65 | ||
|
|
7d7c853045 | ||
|
|
7d95cbad71 | ||
|
|
2fc1c05d6f | ||
|
|
2f51cee555 | ||
|
|
43f89063e0 | ||
|
|
edc67d6aa5 | ||
|
|
7a72955ec8 | ||
|
|
9bfb92cf74 | ||
|
|
fde7a4bc1f | ||
|
|
99ee16b438 | ||
|
|
7eaec845fc | ||
|
|
dea015592f | ||
|
|
8914eeeaf8 | ||
|
|
8a407bebbb | ||
|
|
b52c9d7fa3 | ||
|
|
15ce2ae731 | ||
|
|
2e296abd93 | ||
|
|
a6b62c89a2 | ||
|
|
45d6fa2047 | ||
|
|
7492d404c0 | ||
|
|
13cdf776f5 | ||
|
|
f65314bd94 | ||
|
|
53636a3453 | ||
|
|
23fb25fc17 | ||
|
|
b03949626e | ||
|
|
55408ece40 | ||
|
|
d0391b5f29 | ||
|
|
afc4e4536f | ||
|
|
83fe14288a | ||
|
|
5ce0ad1221 | ||
|
|
9593cf952d | ||
|
|
0e313d792a | ||
|
|
0dcb83a5a5 | ||
|
|
e377355ef1 | ||
|
|
55799985e9 | ||
|
|
ae7dba63b2 | ||
|
|
f1c33e30a2 | ||
|
|
2d769a83ce | ||
|
|
2065819ab9 | ||
|
|
36b0ad66cf | ||
|
|
eeef799bf7 | ||
|
|
1c9f0f6018 | ||
|
|
e61c402067 | ||
|
|
a09ad95cc0 | ||
|
|
a9ba11f35f | ||
|
|
4df8f09549 | ||
|
|
c197036c1f | ||
|
|
d9aa817221 | ||
|
|
c2f6a8fc22 | ||
|
|
d96fda1575 | ||
|
|
5242f3918e | ||
|
|
3128f8d336 | ||
|
|
19c3297538 | ||
|
|
f1c4018d8f | ||
|
|
e4a4b91dce | ||
|
|
50bf45770a | ||
|
|
1e84bc6f1d | ||
|
|
e9e1f9713f | ||
|
|
9c0d1000a1 | ||
|
|
fc974bf9d4 | ||
|
|
bcc013bdcf | ||
|
|
41a3385e99 | ||
|
|
99163201c6 | ||
|
|
0093e835f4 | ||
|
|
92a746de78 | ||
|
|
58dec25bbb | ||
|
|
021d3d4147 | ||
|
|
34977008e6 | ||
|
|
b7464f45ad | ||
|
|
f84de48e15 | ||
|
|
4ddd09df85 | ||
|
|
b52d3dd331 | ||
|
|
51ac32547f | ||
|
|
2e4aaf2f3b | ||
|
|
6c34162bb0 | ||
|
|
4ec7219318 | ||
|
|
cdef10dcef | ||
|
|
00ac8deba3 | ||
|
|
bcc275e244 | ||
|
|
899cd74b01 | ||
|
|
9595e64334 | ||
|
|
bc2108dd5a | ||
|
|
7bd358b53b | ||
|
|
e738eed8d7 | ||
|
|
dd43ca449e | ||
|
|
51a65f746b | ||
|
|
cb32063b68 | ||
|
|
f160a9091a | ||
|
|
6927401c1d | ||
|
|
384e4243bc | ||
|
|
95267cb88b | ||
|
|
e9d3de1859 | ||
|
|
038ebeb0f8 | ||
|
|
1099680118 | ||
|
|
c9455d27da | ||
|
|
f13edd77c9 | ||
|
|
cabbaa0acd | ||
|
|
6eec6985c2 | ||
|
|
052597513d | ||
|
|
04624beeaa | ||
|
|
3c3bfc2b8f | ||
|
|
2fbd3e66fa | ||
|
|
791457e0fe | ||
|
|
22519cd731 | ||
|
|
bf0eb143a6 | ||
|
|
08fe7ee42a | ||
|
|
848e0ae505 | ||
|
|
2e8c7a9acd | ||
|
|
f868b4bebb | ||
|
|
4b259031f3 | ||
|
|
1764aa3b3a | ||
|
|
b97d07df3d | ||
|
|
e34d535b61 | ||
|
|
e1d4956175 | ||
|
|
738bc9e968 | ||
|
|
15b2813abc | ||
|
|
c0fa8cefd1 | ||
|
|
50c98dab19 | ||
|
|
2421a655cf | ||
|
|
0c35a1fa24 | ||
|
|
17812bf744 | ||
|
|
463d81a27c | ||
|
|
c37c1fbb2c | ||
|
|
343de88d62 | ||
|
|
f368d7cb9d | ||
|
|
db07567e64 | ||
|
|
8a81b42e0c | ||
|
|
7952268226 | ||
|
|
2d13c3b4b4 | ||
|
|
ab37de4292 | ||
|
|
c45cb58dbc | ||
|
|
1a70218a74 | ||
|
|
1ec3ad24ef | ||
|
|
b0a2e0ce33 | ||
|
|
ddd1726bf1 | ||
|
|
ebb6a1c63a | ||
|
|
817bfebb71 | ||
|
|
94822deddc | ||
|
|
cc7e1a4b2f | ||
|
|
defd0bd38a | ||
|
|
80b4ca0841 | ||
|
|
f9c087e93a | ||
|
|
c9e0ea7566 | ||
|
|
5f69257625 | ||
|
|
acb22024a9 | ||
|
|
f12e63436a | ||
|
|
c7d457d373 | ||
|
|
08b6b901a9 | ||
|
|
f6df7c905b | ||
|
|
df9a0086d5 | ||
|
|
07176252c8 | ||
|
|
0541ec9947 | ||
|
|
abc9d205a5 | ||
|
|
31e24fa77b | ||
|
|
44976c8eb9 | ||
|
|
d61e6dd01d | ||
|
|
89b146a2c4 | ||
|
|
f32379d492 | ||
|
|
1872296417 | ||
|
|
bc1cfad1c2 | ||
|
|
7bd383b7cf | ||
|
|
aa66a87579 | ||
|
|
847df782b5 | ||
|
|
95d697a99a | ||
|
|
a7604e02c4 | ||
|
|
f15e41f8d9 | ||
|
|
920d7d4f07 | ||
|
|
5ac03ea3b9 | ||
|
|
ca51542b16 | ||
|
|
a770007e4d | ||
|
|
9624eeb11a | ||
|
|
7c7d329541 | ||
|
|
2c223a90e6 | ||
|
|
619e5c223c | ||
|
|
a320e22d19 | ||
|
|
3e62a88f97 | ||
|
|
fa5cee60d5 | ||
|
|
b0b305f4af | ||
|
|
98bd098999 | ||
|
|
12d37186a3 | ||
|
|
294d8ad651 | ||
|
|
efb8f08c74 | ||
|
|
08f2f09f52 | ||
|
|
347f9c1562 | ||
|
|
40c25713ac | ||
|
|
c4113e661d | ||
|
|
0463ecc23f | ||
|
|
496cdba896 | ||
|
|
da37d92265 | ||
|
|
ca8f21c2bc | ||
|
|
8a312b393f | ||
|
|
5baa2b884a | ||
|
|
15cb9221dc | ||
|
|
43b36716ae | ||
|
|
e926288f3e | ||
|
|
33df7f0d41 | ||
|
|
1c552404c0 | ||
|
|
cd6cb1f36c | ||
|
|
257343852f | ||
|
|
3cf14ad066 | ||
|
|
d404a7cdcb | ||
|
|
1d536974ab | ||
|
|
c9cd0307c6 | ||
|
|
2ec3b1d0f2 | ||
|
|
e4a17902fd | ||
|
|
752ccd8502 | ||
|
|
2e474b8dd6 | ||
|
|
f72db5731e | ||
|
|
17c6458f0b | ||
|
|
77d92f5c23 | ||
|
|
9f308f6aae | ||
|
|
ad149439ba | ||
|
|
520ed9204c | ||
|
|
b34c61f00d | ||
|
|
f87c10686f | ||
|
|
47c41077d5 | ||
|
|
2a6f46e820 | ||
|
|
3c0982974b | ||
|
|
eeac929ca6 | ||
|
|
b6f76f8885 | ||
|
|
26d41b11f3 | ||
|
|
013f47ada2 | ||
|
|
8b50062f86 | ||
|
|
2178764db1 | ||
|
|
57dd91955b | ||
|
|
bf74f24eb2 | ||
|
|
46700f351c | ||
|
|
9132316971 | ||
|
|
514a663b1d | ||
|
|
facdfd564f | ||
|
|
d6a46b86e2 | ||
|
|
771ecba016 | ||
|
|
b675b02604 | ||
|
|
8b30857701 | ||
|
|
2bdee0f848 | ||
|
|
80af2a0f8c | ||
|
|
9a11d40a6a | ||
|
|
91274eb7c1 | ||
|
|
9bc3eb1faf | ||
|
|
d3b1c4c053 | ||
|
|
a66d998810 | ||
|
|
96a1cf8bc5 | ||
|
|
29d16b90d9 | ||
|
|
28165a06f6 | ||
|
|
adaca820b5 | ||
|
|
26d976b684 | ||
|
|
e46cdb41fc | ||
|
|
2c6e901eb6 | ||
|
|
244b33600f | ||
|
|
cb0f0f195d | ||
|
|
4c44421169 | ||
|
|
702a75dd67 | ||
|
|
a502508d73 | ||
|
|
559d9b573c | ||
|
|
d7009ba6f3 | ||
|
|
6c6785442d | ||
|
|
372ba9104e | ||
|
|
963d43a336 | ||
|
|
546da0d579 | ||
|
|
85a8051e66 | ||
|
|
0cdaa1fd2d | ||
|
|
4261c92f61 | ||
|
|
7e7e9c17b7 | ||
|
|
d51ed5166c | ||
|
|
b3b295f721 | ||
|
|
bf16687aa6 | ||
|
|
4a61fe197c | ||
|
|
c99e22cec0 | ||
|
|
6c71fcdc3b | ||
|
|
1ad8cbda8a | ||
|
|
80ed9701e4 | ||
|
|
dda4b73f26 | ||
|
|
67c5ca876a | ||
|
|
a69ce967dc | ||
|
|
24130959c9 | ||
|
|
491f012828 | ||
|
|
4ed1743a71 | ||
|
|
7f669023f6 | ||
|
|
098bdf7156 | ||
|
|
d55e23081a | ||
|
|
58ebc6b7fd | ||
|
|
6965be7ba2 | ||
|
|
6030e21aad | ||
|
|
14bd0f1eaa | ||
|
|
12380f1274 | ||
|
|
b2251d9ea8 | ||
|
|
a8735faf63 | ||
|
|
5ea604d500 | ||
|
|
f9daab0dbe | ||
|
|
e1bd079043 | ||
|
|
eb434eaf3d | ||
|
|
22536144e7 | ||
|
|
d425dd635c | ||
|
|
025f321977 | ||
|
|
d6c4f4f98d | ||
|
|
9f109f203e | ||
|
|
ee269c66ad | ||
|
|
b5bf60cbce | ||
|
|
7d8a0f7b91 | ||
|
|
148b2c74af | ||
|
|
2d8473e34d | ||
|
|
ec341bda32 | ||
|
|
eb703318ce | ||
|
|
947571dcf3 | ||
|
|
2169008082 | ||
|
|
6ede63da73 | ||
|
|
59d7b90a41 | ||
|
|
744d4983e5 | ||
|
|
f0c280256e | ||
|
|
e679e91687 | ||
|
|
16fa0eb1e1 | ||
|
|
fb5261a24c | ||
|
|
c51012c131 | ||
|
|
1bb1129194 | ||
|
|
1d5746f2ad | ||
|
|
6a27505c1f | ||
|
|
5e462f6816 | ||
|
|
8e7805d105 | ||
|
|
07f50b56fc | ||
|
|
146cfe99fc | ||
|
|
4486f779ae | ||
|
|
6f7c354c19 | ||
|
|
3ab3b6ed27 | ||
|
|
c752fffe88 | ||
|
|
d5fcfc5220 | ||
|
|
3b40214552 | ||
|
|
c371b2266d | ||
|
|
6ddf735857 | ||
|
|
47b2db40fb | ||
|
|
c10dab1bea | ||
|
|
fe6f0cfb67 | ||
|
|
2d074b3886 | ||
|
|
151cd706b2 | ||
|
|
a2cbf6090c | ||
|
|
180b3e9aa0 | ||
|
|
a21aee9ca5 | ||
|
|
ace271e6bf | ||
|
|
7171188068 | ||
|
|
0f6f5d4059 | ||
|
|
760fb35f3a | ||
|
|
d08bd4aa6f | ||
|
|
3f8720c57e | ||
|
|
5da57d0e6b | ||
|
|
7a517cd5d6 | ||
|
|
460ec2444b | ||
|
|
fbab970c4b | ||
|
|
61c78397cc | ||
|
|
28fe25f56f | ||
|
|
aa01000991 | ||
|
|
85840f77ec | ||
|
|
6a344d1438 | ||
|
|
a2e6ba132d | ||
|
|
1822ff7295 | ||
|
|
e1fb2464c7 | ||
|
|
1c67cf8ef3 | ||
|
|
0ad6b58a9f | ||
|
|
955071e5f8 | ||
|
|
4231fc8aa4 | ||
|
|
64372b20d4 | ||
|
|
ef709c75eb | ||
|
|
bb5b2d0336 | ||
|
|
a5149bf17d | ||
|
|
abf9c3b769 | ||
|
|
92b6c975bd | ||
|
|
f6dc1ec7a8 | ||
|
|
b50980e880 | ||
|
|
206cff9d34 | ||
|
|
14fe0a4e03 | ||
|
|
ab26411136 | ||
|
|
cf1fddd832 | ||
|
|
ab2c38e882 | ||
|
|
f3c8c35f39 | ||
|
|
e50ce4f158 | ||
|
|
212d86b347 | ||
|
|
4a5312221c | ||
|
|
5277e4b17b | ||
|
|
ad5a5327d6 | ||
|
|
49fc96a22a | ||
|
|
d7deeb04e0 | ||
|
|
a941936907 | ||
|
|
808908717d | ||
|
|
6e80e62585 | ||
|
|
d2f2f1193c | ||
|
|
3dcef5a235 | ||
|
|
2541a70ab7 | ||
|
|
003a3ccd18 | ||
|
|
a45caca7ee | ||
|
|
6b7142565e | ||
|
|
fb8b3283ec | ||
|
|
e92e852145 | ||
|
|
c05d81cf29 | ||
|
|
43d018f11e | ||
|
|
f67669969e | ||
|
|
7698589c56 | ||
|
|
2e7f04b877 | ||
|
|
2be3d0511c | ||
|
|
081ad552a0 | ||
|
|
dadb15eb63 | ||
|
|
c306a8ae4f | ||
|
|
7bfc0bb91b | ||
|
|
8854b106d9 | ||
|
|
80acfb73f0 | ||
|
|
2137529555 | ||
|
|
01bcac7f0a | ||
|
|
5bbf616997 | ||
|
|
627ccfdb9c | ||
|
|
4a27575731 | ||
|
|
0aae98108b | ||
|
|
d432e749bb | ||
|
|
36f915ae20 | ||
|
|
7036efc269 | ||
|
|
d46988592d | ||
|
|
8d1e7cb4fb | ||
|
|
3e732b63b5 | ||
|
|
9249afe585 | ||
|
|
4f53a0a3f4 | ||
|
|
2ebbb01854 | ||
|
|
036e0f072c | ||
|
|
00b7a3dc87 | ||
|
|
88961b00ce | ||
|
|
1c61678ebc | ||
|
|
2d07809a88 | ||
|
|
111222720a | ||
|
|
30d133e4ff | ||
|
|
2c6931107f | ||
|
|
2e2983095b | ||
|
|
d4ad2cbe37 | ||
|
|
28e6de04c6 | ||
|
|
4210b25657 | ||
|
|
e93e829fb6 | ||
|
|
41b1abedc9 | ||
|
|
a1aa2b61f6 | ||
|
|
fa3d93dac2 | ||
|
|
b60a509ae6 | ||
|
|
526e250898 | ||
|
|
f820932e1f | ||
|
|
38d0d5ab7f | ||
|
|
582e1146d0 | ||
|
|
a689502c11 | ||
|
|
89c55c1704 | ||
|
|
f282d39646 | ||
|
|
393bd4900a | ||
|
|
07ee026220 | ||
|
|
c07c00659f | ||
|
|
c74c7cd726 | ||
|
|
cb3e4a55cd | ||
|
|
7c6335fb47 | ||
|
|
dbe8c45fa5 | ||
|
|
11dc677020 | ||
|
|
450682f810 | ||
|
|
5a670fa304 | ||
|
|
effc8231ac | ||
|
|
dcf57f6567 | ||
|
|
9e32d84dff | ||
|
|
6fd275c5af | ||
|
|
ad198c40e8 | ||
|
|
c36313ce5a | ||
|
|
9d6eda165a | ||
|
|
3816645aae | ||
|
|
d77bf259aa | ||
|
|
000c7376a0 | ||
|
|
23fb89c6e3 | ||
|
|
b42ef72337 | ||
|
|
19ad51dc91 | ||
|
|
cac8c45c51 | ||
|
|
c1bdc13a7a | ||
|
|
c357423681 | ||
|
|
d50ab5353d | ||
|
|
d000bb120b | ||
|
|
c128a86bf3 | ||
|
|
35a7ab09c1 | ||
|
|
5b13693601 | ||
|
|
848e9ff54f | ||
|
|
37b09e63bf | ||
|
|
fee3813b50 | ||
|
|
2a9f144e0d | ||
|
|
9e4b6c635a | ||
|
|
d0d8e3d2b7 | ||
|
|
223c271399 | ||
|
|
5fa4af1c9c | ||
|
|
b38aa084d9 | ||
|
|
6c88914bf0 | ||
|
|
a25042b2a4 | ||
|
|
cc1a955a7f | ||
|
|
0edefbe3f9 | ||
|
|
2bbbfe4553 | ||
|
|
24a0148ebc | ||
|
|
34f04e76ec | ||
|
|
f95cae2ee5 | ||
|
|
65c7ed8095 | ||
|
|
03260932ee | ||
|
|
372793cb7a | ||
|
|
b9961bf8be | ||
|
|
1a0364ee62 | ||
|
|
d2a0b54dfc | ||
|
|
6a3b81499a | ||
|
|
70560cd537 | ||
|
|
77680ff29f | ||
|
|
76c6970e4f | ||
|
|
5de52ec045 | ||
|
|
278fcebe02 | ||
|
|
ed2404ce57 | ||
|
|
fa7b2b4fe3 | ||
|
|
278da2459f | ||
|
|
204a3fd83c | ||
|
|
745802eaea | ||
|
|
cba59f0b70 | ||
|
|
0473e9f081 | ||
|
|
6a83623170 | ||
|
|
a1b226f8a3 | ||
|
|
f74603dcef | ||
|
|
9c2b3b1c46 | ||
|
|
d9dfdbf474 | ||
|
|
a442437201 | ||
|
|
f0bc1d5586 | ||
|
|
904baa3db2 | ||
|
|
73524bd7b4 | ||
|
|
6d4ddc7ee3 | ||
|
|
a451a124f6 | ||
|
|
fae4241fb7 | ||
|
|
f5e13b38cd | ||
|
|
207f458186 | ||
|
|
6d86f35b02 | ||
|
|
bc8ef2d4c6 | ||
|
|
994f0c5905 | ||
|
|
3ce235581e | ||
|
|
b23cbfea16 | ||
|
|
680990d6d2 | ||
|
|
b64e05b3c7 | ||
|
|
712082dc8f | ||
|
|
8252129dd0 | ||
|
|
65f5262476 | ||
|
|
0fbb63a64c | ||
|
|
f2a5866c52 | ||
|
|
e2f2780a51 | ||
|
|
6f5803bb3c | ||
|
|
1dbaf4b5d6 | ||
|
|
80643e9090 | ||
|
|
aac541afb9 | ||
|
|
8e2fabbfae | ||
|
|
51938f0a2b | ||
|
|
cfd8db6b9e | ||
|
|
1192b139bd | ||
|
|
3caba47f5e | ||
|
|
5b25a05bcc | ||
|
|
88824eb7b9 | ||
|
|
c39eb7f019 | ||
|
|
e0fce28cbe | ||
|
|
a9bdbc6394 | ||
|
|
b9c3c2d186 | ||
|
|
421cff3457 | ||
|
|
f2d63ee9be | ||
|
|
03dd38b040 | ||
|
|
a6d5486554 | ||
|
|
224dc0679a | ||
|
|
a253bea015 | ||
|
|
6500ba3270 | ||
|
|
617008f802 | ||
|
|
300aeca890 | ||
|
|
f5d54b0332 | ||
|
|
ca19758ef1 | ||
|
|
97a86865fb | ||
|
|
7bd9d5cca0 | ||
|
|
f6fd7d0f6e | ||
|
|
b18b19c703 | ||
|
|
0d529803d2 | ||
|
|
fb0b5839b0 | ||
|
|
1668ed095b | ||
|
|
ad3b75ab3c | ||
|
|
dfa4ba9e01 | ||
|
|
ee1923d558 | ||
|
|
c40457c1cf | ||
|
|
6b196d7b04 | ||
|
|
f2d073c8ba | ||
|
|
ad84629fa3 | ||
|
|
d5e3dbc115 | ||
|
|
4be2995c98 | ||
|
|
a43628a0eb | ||
|
|
09215c8b39 | ||
|
|
62f25b27a7 | ||
|
|
a3ea9ebee9 | ||
|
|
23fd497041 | ||
|
|
e969fff0a8 | ||
|
|
a1a70086ac | ||
|
|
c2fcdfc2c7 | ||
|
|
ff707fc932 | ||
|
|
fa6c798f06 | ||
|
|
a817c11590 | ||
|
|
d4da2fbd06 | ||
|
|
5b9661be59 | ||
|
|
6569f03fba | ||
|
|
a6051aa758 | ||
|
|
a31d0d9961 | ||
|
|
2a6e9fc94c | ||
|
|
8969f499be | ||
|
|
1c0d38097f | ||
|
|
3897bff774 | ||
|
|
37922ab699 | ||
|
|
0a1259b3a5 | ||
|
|
effebec8aa | ||
|
|
d9af5216e0 | ||
|
|
d29b3f1e63 | ||
|
|
34b31715dc | ||
|
|
f5bae01550 | ||
|
|
aed9ef05c1 | ||
|
|
5a6b84a924 | ||
|
|
7db2f889b1 | ||
|
|
7ea8bfd3c9 | ||
|
|
99c43b6d58 | ||
|
|
69d6b7a0b5 | ||
|
|
8dddaccde6 | ||
|
|
7753b5e04d | ||
|
|
c987dc857e | ||
|
|
b88c274e72 | ||
|
|
da73358a66 | ||
|
|
b98d72a1e6 | ||
|
|
a31fdfa004 | ||
|
|
d2c6f622a9 | ||
|
|
e85b238ac1 | ||
|
|
f603e4c565 | ||
|
|
b4de497107 | ||
|
|
e9a0e77b90 | ||
|
|
21eaa1962d | ||
|
|
210c8d89c6 | ||
|
|
e25a403bea | ||
|
|
485720dcbf | ||
|
|
4571c91fcd | ||
|
|
0495d3adb0 | ||
|
|
9bcb84097d | ||
|
|
5d332663d6 | ||
|
|
720b70acba | ||
|
|
0b2e174e97 | ||
|
|
eaf88fb55a | ||
|
|
949f1215b6 | ||
|
|
e402036ff7 | ||
|
|
07a482985a | ||
|
|
8e820d3f89 | ||
|
|
700a433ae5 | ||
|
|
fd46aefadd | ||
|
|
2fe494347d | ||
|
|
41d21074b5 | ||
|
|
04c3efa279 |
+1
-1
@@ -6,7 +6,7 @@ sirgle/
|
||||
test.php
|
||||
*.key
|
||||
*.sh
|
||||
cheditor*/
|
||||
cheditor5.*/
|
||||
ckeditor*/
|
||||
log/
|
||||
g5_tree/
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
프로그램 명칭 : 그누보드5 ( GNU Board 5 )
|
||||
|
||||
저작자 : (주)에스아이알소프트 http://sir.co.kr
|
||||
저작자 : (주)에스아이알소프트 http://sir.kr
|
||||
|
||||
라이센스 (License)
|
||||
|
||||
|
||||
@@ -2,4 +2,8 @@
|
||||
define('G5_IS_ADMIN', true);
|
||||
include_once ('../common.php');
|
||||
include_once(G5_ADMIN_PATH.'/admin.lib.php');
|
||||
|
||||
if( isset($token) ){
|
||||
$token = @htmlspecialchars(strip_tags($token), ENT_QUOTES);
|
||||
}
|
||||
?>
|
||||
+13
-4
@@ -176,7 +176,7 @@ function get_theme_config_value($dir, $key='*')
|
||||
$tconfig = array();
|
||||
|
||||
$theme_config_file = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir.'/theme.config.php';
|
||||
if(is_file) {
|
||||
if(is_file($theme_config_file)) {
|
||||
include($theme_config_file);
|
||||
|
||||
if($key == '*') {
|
||||
@@ -363,7 +363,7 @@ function check_admin_token()
|
||||
set_session('ss_admin_token', '');
|
||||
|
||||
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
|
||||
alert('올바른 방법으로 이용해 주십시오.');
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -382,15 +382,24 @@ function admin_referer_check($return=false)
|
||||
}
|
||||
|
||||
$p = @parse_url($referer);
|
||||
|
||||
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
|
||||
$msg = '';
|
||||
|
||||
if($host != $p['host']) {
|
||||
$msg = '올바른 방법으로 이용해 주십시오.';
|
||||
}
|
||||
|
||||
if($return)
|
||||
if( $p['path'] && ! preg_match( '/\/'.preg_quote(G5_ADMIN_DIR).'\//i', $p['path'] ) ){
|
||||
$msg = '올바른 방법으로 이용해 주십시오';
|
||||
}
|
||||
|
||||
if( $msg ){
|
||||
if($return) {
|
||||
return $msg;
|
||||
else
|
||||
} else {
|
||||
alert($msg, G5_URL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
$print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
|
||||
?>
|
||||
|
||||
<noscript>
|
||||
@@ -14,14 +16,14 @@ if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
<footer id="ft">
|
||||
<p>
|
||||
Copyright © <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved.<br>
|
||||
Copyright © <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved. <?php echo $print_version; ?><br>
|
||||
<a href="#">상단으로</a>
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<!-- <p>실행시간 : <?php echo get_microtime() - $begin_time; ?> -->
|
||||
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js"></script>
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script>
|
||||
$(function(){
|
||||
var hide_menu = false;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ $g5['title'] = '게시판 복사';
|
||||
include_once(G5_PATH.'/head.sub.php');
|
||||
?>
|
||||
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js"></script>
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
|
||||
<div class="new_win">
|
||||
<h1><?php echo $g5['title']; ?></h1>
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
$sub_menu = '300100';
|
||||
include_once('./_common.php');
|
||||
|
||||
check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
@@ -21,7 +21,7 @@ if ($file = $_POST['bo_include_head']) {
|
||||
$purl = parse_url($file);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('상단 파일 경로가 php, html 파일이 아닙니다.');
|
||||
alert('상단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
$_POST['bo_include_head'] = $file;
|
||||
}
|
||||
@@ -30,11 +30,19 @@ if ($file = $_POST['bo_include_tail']) {
|
||||
$purl = parse_url($file);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('하단 파일 경로가 php, html 파일이 아닙니다.');
|
||||
alert('하단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
$_POST['bo_include_tail'] = $file;
|
||||
}
|
||||
|
||||
if(!is_include_path_check($_POST['bo_include_head'], 1)) {
|
||||
alert('/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.');
|
||||
}
|
||||
|
||||
if(!is_include_path_check($_POST['bo_include_tail'], 1)) {
|
||||
alert('/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.');
|
||||
}
|
||||
|
||||
$board_path = G5_DATA_PATH.'/file/'.$bo_table;
|
||||
|
||||
// 게시판 디렉토리 생성
|
||||
@@ -184,7 +192,7 @@ if ($w == '') {
|
||||
// 글수 조정
|
||||
/*
|
||||
엔피씨님의 팁으로 교체합니다. 130308
|
||||
http://sir.co.kr/bbs/board.php?bo_table=g5_tiptech&wr_id=27207
|
||||
http://sir.kr/g5_tiptech/27207
|
||||
*/
|
||||
if (isset($_POST['proc_count'])) {
|
||||
// 원글을 얻습니다.
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ $colspan = 15;
|
||||
|
||||
<label for="sfl" class="sound_only">검색대상</label>
|
||||
<select name="sfl" id="sfl">
|
||||
<option value="bo_table"<?php echo get_selected($_GET['sfl'], "bo_subject", true); ?>>TABLE</option>
|
||||
<option value="bo_table"<?php echo get_selected($_GET['sfl'], "bo_table", true); ?>>TABLE</option>
|
||||
<option value="bo_subject"<?php echo get_selected($_GET['sfl'], "bo_subject"); ?>>제목</option>
|
||||
<option value="a.gr_id"<?php echo get_selected($_GET['sfl'], "a.gr_id"); ?>>그룹ID</option>
|
||||
</select>
|
||||
|
||||
@@ -62,7 +62,10 @@ if ($_POST['act_button'] == "선택수정") {
|
||||
|
||||
// include 전에 $bo_table 값을 반드시 넘겨야 함
|
||||
$tmp_bo_table = trim($_POST['board_table'][$k]);
|
||||
include ('./board_delete.inc.php');
|
||||
|
||||
if( preg_match("/^[A-Za-z0-9_]+$/", $tmp_bo_table) ){
|
||||
include ('./board_delete.inc.php');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+7
-7
@@ -736,7 +736,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<select name="cf_cert_hp" id="cf_cert_hp">
|
||||
<?php echo option_selected("", $config['cf_cert_hp'], "사용안함"); ?>
|
||||
<?php echo option_selected("kcb", $config['cf_cert_hp'], "코리아크레딧뷰로(KCB) 휴대폰 본인확인"); ?>
|
||||
<?php echo option_selected("kcp", $config['cf_cert_hp'], "한국사이버결제(KCP) 휴대폰 본인확인"); ?>
|
||||
<?php echo option_selected("kcp", $config['cf_cert_hp'], "NHN KCP 휴대폰 본인확인"); ?>
|
||||
<?php echo option_selected("lg", $config['cf_cert_hp'], "LG유플러스 휴대폰 본인확인"); ?>
|
||||
</select>
|
||||
</td>
|
||||
@@ -745,16 +745,16 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<th scope="row" class="cf_cert_service"><label for="cf_cert_kcb_cd">코리아크레딧뷰로<br>KCB 회원사ID</label></th>
|
||||
<td class="cf_cert_service">
|
||||
<?php echo help('KCB 회원사ID를 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, KCB와 계약체결 후 회원사ID를 발급 받으실 수 있습니다.<br>이용하시려는 서비스에 대한 계약을 아이핀, 휴대폰 본인확인 각각 체결해주셔야 합니다.<br>아이핀 본인확인 테스트의 경우에는 KCB 회원사ID가 필요 없으나,<br>휴대폰 본인확인 테스트의 경우 KCB 에서 따로 발급 받으셔야 합니다.') ?>
|
||||
<input type="text" name="cf_cert_kcb_cd" value="<?php echo $config['cf_cert_kcb_cd'] ?>" id="cf_cert_kcb_cd" class="frm_input" size="20"> <a href="http://sir.co.kr/main/service/b_ipin.php" target="_blank" class="btn_frmline">KCB 아이핀 서비스 신청페이지</a>
|
||||
<a href="http://sir.co.kr/main/service/b_cert.php" target="_blank" class="btn_frmline">KCB 휴대폰 본인확인 서비스 신청페이지</a>
|
||||
<input type="text" name="cf_cert_kcb_cd" value="<?php echo $config['cf_cert_kcb_cd'] ?>" id="cf_cert_kcb_cd" class="frm_input" size="20"> <a href="http://sir.kr/main/service/b_ipin.php" target="_blank" class="btn_frmline">KCB 아이핀 서비스 신청페이지</a>
|
||||
<a href="http://sir.kr/main/service/b_cert.php" target="_blank" class="btn_frmline">KCB 휴대폰 본인확인 서비스 신청페이지</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="cf_cert_service"><label for="cf_cert_kcp_cd">한국사이버결제<br>KCP 사이트코드</label></th>
|
||||
<th scope="row" class="cf_cert_service"><label for="cf_cert_kcp_cd">NHN KCP 사이트코드</label></th>
|
||||
<td class="cf_cert_service">
|
||||
<?php echo help('SM으로 시작하는 5자리 사이트 코드중 뒤의 3자리만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 사이트코드를 발급 받으실 수 있습니다.') ?>
|
||||
<span class="sitecode">SM</span>
|
||||
<input type="text" name="cf_cert_kcp_cd" value="<?php echo $config['cf_cert_kcp_cd'] ?>" id="cf_cert_kcp_cd" class="frm_input" size="3"> <a href="http://sir.co.kr/main/service/p_cert.php" target="_blank" class="btn_frmline">KCP 휴대폰 본인확인 서비스 신청페이지</a>
|
||||
<input type="text" name="cf_cert_kcp_cd" value="<?php echo $config['cf_cert_kcp_cd'] ?>" id="cf_cert_kcp_cd" class="frm_input" size="3"> <a href="http://sir.kr/main/service/p_cert.php" target="_blank" class="btn_frmline">NHN KCP 휴대폰 본인확인 서비스 신청페이지</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -762,7 +762,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<td class="cf_cert_service">
|
||||
<?php echo help('LG유플러스 상점아이디 중 si_를 제외한 나머지 아이디만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 상점아이디를 발급 받으실 수 있습니다.<br><strong>LG유플러스 휴대폰본인확인은 ActiveX 설치가 필요하므로 Internet Explorer 에서만 사용할 수 있습니다.</strong>') ?>
|
||||
<span class="sitecode">si_</span>
|
||||
<input type="text" name="cf_lg_mid" value="<?php echo $config['cf_lg_mid'] ?>" id="cf_lg_mid" class="frm_input" size="20"> <a href="http://sir.co.kr/main/service/lg_cert.php" target="_blank" class="btn_frmline">LG유플러스 본인확인 서비스 신청페이지</a>
|
||||
<input type="text" name="cf_lg_mid" value="<?php echo $config['cf_lg_mid'] ?>" id="cf_lg_mid" class="frm_input" size="20"> <a href="http://sir.kr/main/service/lg_cert.php" target="_blank" class="btn_frmline">LG유플러스 본인확인 서비스 신청페이지</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1099,7 +1099,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
|
||||
<th scope="row">충전 잔액</th>
|
||||
<td colspan="3">
|
||||
<?php echo number_format($userinfo['coin']); ?> 원.
|
||||
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline" onclick="window.open(this.href,'icode_payment', 'scrollbars=1,resizable=1'); return false;">충전하기</a>
|
||||
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
@@ -18,6 +18,34 @@ check_admin_token();
|
||||
if ($co_himg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_h");
|
||||
if ($co_timg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_t");
|
||||
|
||||
$error_msg = '';
|
||||
|
||||
if( $co_include_head ){
|
||||
$purl = parse_url($co_include_head);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('상단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
}
|
||||
|
||||
if( $co_include_tail ){
|
||||
$purl = parse_url($co_include_tail);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('하단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
}
|
||||
|
||||
if( $co_include_head && ! is_include_path_check($co_include_head) ){
|
||||
$co_include_head = '';
|
||||
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.';
|
||||
}
|
||||
|
||||
if( $co_include_tail && ! is_include_path_check($co_include_tail) ){
|
||||
$co_include_tail = '';
|
||||
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
|
||||
}
|
||||
|
||||
$sql_common = " co_include_head = '$co_include_head',
|
||||
co_include_tail = '$co_include_tail',
|
||||
co_html = '$co_html',
|
||||
@@ -74,7 +102,11 @@ if ($w == "" || $w == "u")
|
||||
@chmod($dest_path, G5_FILE_PERMISSION);
|
||||
}
|
||||
|
||||
goto_url("./contentform.php?w=u&co_id=$co_id");
|
||||
if( $error_msg ){
|
||||
alert($error_msg, "./contentform.php?w=u&co_id=$co_id");
|
||||
} else {
|
||||
goto_url("./contentform.php?w=u&co_id=$co_id");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -311,6 +311,7 @@ tfoot td {font-weight:bold;text-align:center}
|
||||
#menu_frm #menu_result {margin:20px 0}
|
||||
|
||||
#menulist .sub_menu_class {padding-left:25px;background:url('../img/sub_menu_ico.gif') 5px 15px no-repeat}
|
||||
.exist_menu_link {font-weight:bold;color:red}
|
||||
|
||||
/* 회원관리 목록 */
|
||||
.mb_leave_msg {color:#b6b6b6}
|
||||
|
||||
@@ -7,6 +7,8 @@ auth_check($auth[$sub_menu], "w");
|
||||
|
||||
$html_title = 'FAQ';
|
||||
|
||||
$fm_id = preg_replace('/[^0-9]/', '', $fm_id);
|
||||
|
||||
if ($w == "u")
|
||||
{
|
||||
$html_title .= ' 수정';
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 18 KiB |
@@ -106,7 +106,7 @@ include_once('./admin.head.php');
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<textarea name="ma_list" style="display:none"><?=$ma_list?></textarea>
|
||||
<textarea name="ma_list" style="display:none"><?php echo $ma_list?></textarea>
|
||||
</div>
|
||||
|
||||
<div class="btn_confirm01 btn_confirm">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$sub_menu = "200100";
|
||||
include_once("./_common.php");
|
||||
|
||||
|
||||
+6
-1
@@ -126,6 +126,11 @@ if(!isset($mb['mb_dupinfo'])) {
|
||||
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_dupinfo` varchar(255) NOT NULL DEFAULT '' AFTER `mb_adult` ", false);
|
||||
}
|
||||
|
||||
// 이메일인증 체크 필드추가
|
||||
if(!isset($mb['mb_email_certify2'])) {
|
||||
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_email_certify2` varchar(255) NOT NULL DEFAULT '' AFTER `mb_email_certify` ", false);
|
||||
}
|
||||
|
||||
if ($mb['mb_intercept_date']) $g5['title'] = "차단된 ";
|
||||
else $g5['title'] .= "";
|
||||
$g5['title'] .= '회원 '.$html_title;
|
||||
@@ -213,7 +218,7 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_zip1">주소</label></th>
|
||||
<th scope="row">주소</th>
|
||||
<td colspan="3" class="td_addr_line">
|
||||
<label for="mb_zip" class="sound_only">우편번호</label>
|
||||
<input type="text" name="mb_zip" value="<?php echo $mb['mb_zip1'].$mb['mb_zip2']; ?>" id="mb_zip" class="frm_input readonly" size="5" maxlength="6">
|
||||
|
||||
@@ -95,6 +95,10 @@ else if ($w == 'u')
|
||||
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level'])
|
||||
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
|
||||
|
||||
if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super' ) {
|
||||
alert('최고관리자의 비밀번호를 수정할수 없습니다.');
|
||||
}
|
||||
|
||||
if ($_POST['mb_id'] == $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level'])
|
||||
alert($mb['mb_id'].' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$sub_menu = "200100";
|
||||
include_once("./_common.php");
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ if (!count($_POST['chk'])) {
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
if ($_POST['act_button'] == "선택수정") {
|
||||
|
||||
for ($i=0; $i<count($_POST['chk']); $i++)
|
||||
|
||||
+49
-3
@@ -8,6 +8,8 @@ if ($is_admin != 'super')
|
||||
$g5['title'] = '메뉴 추가';
|
||||
include_once(G5_PATH.'/head.sub.php');
|
||||
|
||||
$code = isset($code) ? preg_replace('/[^0-9a-zA-Z]/', '', strip_tags($code)) : '';
|
||||
|
||||
// 코드
|
||||
if($new == 'new' || !$code) {
|
||||
$code = base_convert(substr($code,0, 2), 36, 10);
|
||||
@@ -43,13 +45,57 @@ $(function() {
|
||||
"./menu_form_search.php"
|
||||
);
|
||||
|
||||
$("#me_type").on("change", function() {
|
||||
var type = $(this).val();
|
||||
function link_checks_all_chage(){
|
||||
|
||||
var $links = $(opener.document).find("#menulist input[name='me_link[]']"),
|
||||
$o_link = $(".td_mngsmall input[name='link[]']"),
|
||||
hrefs = [],
|
||||
menu_exist = false;
|
||||
|
||||
if( $links.length ){
|
||||
$links.each(function( index ) {
|
||||
hrefs.push( $(this).val() );
|
||||
});
|
||||
|
||||
$o_link.each(function( index ) {
|
||||
if( $.inArray( $(this).val(), hrefs ) != -1 ){
|
||||
$(this).closest("tr").find("td:eq( 0 )").addClass("exist_menu_link");
|
||||
menu_exist = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if( menu_exist ){
|
||||
$(".menu_exists_tip").show();
|
||||
} else {
|
||||
$(".menu_exists_tip").hide();
|
||||
}
|
||||
}
|
||||
|
||||
function menu_result_change( type ){
|
||||
|
||||
var dfd = new $.Deferred();
|
||||
|
||||
$("#menu_result").empty().load(
|
||||
"./menu_form_search.php",
|
||||
{ type : type }
|
||||
{ type : type },
|
||||
function(){
|
||||
dfd.resolve('Finished');
|
||||
}
|
||||
);
|
||||
|
||||
return dfd.promise();
|
||||
}
|
||||
|
||||
$("#me_type").on("change", function() {
|
||||
var type = $(this).val();
|
||||
|
||||
var promise = menu_result_change( type );
|
||||
|
||||
promise.done(function(message) {
|
||||
link_checks_all_chage(type);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(document).on("click", "#add_manual", function() {
|
||||
|
||||
@@ -11,7 +11,7 @@ switch($type) {
|
||||
order by gr_order, gr_id ";
|
||||
break;
|
||||
case 'board':
|
||||
$sql = " select bo_table as id, bo_subject as subject
|
||||
$sql = " select bo_table as id, bo_subject as subject, gr_id
|
||||
from {$g5['board_table']}
|
||||
order by bo_order, bo_table ";
|
||||
break;
|
||||
@@ -32,13 +32,18 @@ if($sql) {
|
||||
|
||||
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
if($i == 0) {
|
||||
|
||||
$bbs_subject_title = ($type == 'board') ? '게시판제목' : '제목';
|
||||
?>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">제목</th>
|
||||
<th scope="col"><?php echo $bbs_subject_title; ?></th>
|
||||
<?php if($type == 'board'){ ?>
|
||||
<th scope="col">게시판 그룹</th>
|
||||
<?php } ?>
|
||||
<th scope="col">선택</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -63,6 +68,12 @@ if($sql) {
|
||||
|
||||
<tr>
|
||||
<td><?php echo $row['subject']; ?></td>
|
||||
<?php
|
||||
if($type == 'board'){
|
||||
$group = get_call_func_cache('get_group', array($row['gr_id']));
|
||||
?>
|
||||
<td><?php echo $group['gr_subject']; ?></td>
|
||||
<?php } ?>
|
||||
<td class="td_mngsmall">
|
||||
<input type="hidden" name="subject[]" value="<?php echo preg_replace('/[\'\"]/', '', $row['subject']); ?>">
|
||||
<input type="hidden" name="link[]" value="<?php echo $link; ?>">
|
||||
@@ -76,6 +87,10 @@ if($sql) {
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="local_desc01 menu_exists_tip" style="display:none">
|
||||
<p>* <strong>빨간색</strong>의 제목은 이미 메뉴에 연결되어 경우 표시됩니다.</p>
|
||||
</div>
|
||||
|
||||
<div class="btn_win02 btn_win">
|
||||
<button type="button" class="btn_cancel" onclick="window.close();">창닫기</button>
|
||||
</div>
|
||||
|
||||
@@ -5,6 +5,8 @@ include_once(G5_EDITOR_LIB);
|
||||
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
$nw_id = preg_replace('/[^0-9]/', '', $nw_id);
|
||||
|
||||
$html_title = "팝업레이어";
|
||||
if ($w == "u")
|
||||
{
|
||||
|
||||
@@ -4,6 +4,8 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
$po_id = isset($po_id) ? (int) $po_id : 0;
|
||||
|
||||
$html_title = '투표';
|
||||
if ($w == '')
|
||||
$html_title .= ' 생성';
|
||||
|
||||
@@ -4,10 +4,10 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
if (empty($fr_date)) $fr_date = G5_TIME_YMD;
|
||||
if (empty($to_date)) $to_date = G5_TIME_YMD;
|
||||
if (empty($fr_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $fr_date) ) $fr_date = G5_TIME_YMD;
|
||||
if (empty($to_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $to_date) ) $to_date = G5_TIME_YMD;
|
||||
|
||||
$qstr = "fr_date={$fr_date}{&to_date}={$to_date}";
|
||||
$qstr = "fr_date={$fr_date}&to_date={$to_date}";
|
||||
|
||||
$sql_common = " from {$g5['popular_table']} a ";
|
||||
$sql_search = " where trim(pp_word) <> '' and pp_date between '{$fr_date}' and '{$to_date}' ";
|
||||
|
||||
@@ -8,6 +8,34 @@ auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$error_msg = '';
|
||||
|
||||
if( $qa_include_head ){
|
||||
$purl = parse_url($qa_include_head);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('상단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
}
|
||||
|
||||
if( $qa_include_tail ){
|
||||
$purl = parse_url($qa_include_tail);
|
||||
$file = $purl['path'];
|
||||
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
|
||||
alert('하단 파일 경로의 확장자는 php, html 만 허용합니다.');
|
||||
}
|
||||
}
|
||||
|
||||
if( $qa_include_head && ! is_include_path_check($qa_include_head, 1) ){
|
||||
$qa_include_head = '';
|
||||
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.';
|
||||
}
|
||||
|
||||
if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){
|
||||
$qa_include_tail = '';
|
||||
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
|
||||
}
|
||||
|
||||
$sql = " update {$g5['qa_config_table']}
|
||||
set qa_title = '{$_POST['qa_title']}',
|
||||
qa_category = '{$_POST['qa_category']}',
|
||||
@@ -29,8 +57,8 @@ $sql = " update {$g5['qa_config_table']}
|
||||
qa_image_width = '{$_POST['qa_image_width']}',
|
||||
qa_upload_size = '{$_POST['qa_upload_size']}',
|
||||
qa_insert_content = '{$_POST['qa_insert_content']}',
|
||||
qa_include_head = '{$_POST['qa_include_head']}',
|
||||
qa_include_tail = '{$_POST['qa_include_tail']}',
|
||||
qa_include_head = '{$qa_include_head}',
|
||||
qa_include_tail = '{$qa_include_tail}',
|
||||
qa_content_head = '{$_POST['qa_content_head']}',
|
||||
qa_content_tail = '{$_POST['qa_content_tail']}',
|
||||
qa_mobile_content_head = '{$_POST['qa_mobile_content_head']}',
|
||||
@@ -47,5 +75,9 @@ $sql = " update {$g5['qa_config_table']}
|
||||
qa_5 = '{$_POST['qa_5']}' ";
|
||||
sql_query($sql);
|
||||
|
||||
goto_url('./qa_config.php');
|
||||
if($error_msg){
|
||||
alert($error_msg, './qa_config.php');
|
||||
} else {
|
||||
goto_url('./qa_config.php');
|
||||
}
|
||||
?>
|
||||
+28
-17
@@ -13,26 +13,37 @@ $g5['title'] = '메일 테스트';
|
||||
include_once('./admin.head.php');
|
||||
|
||||
if (isset($_POST['email'])) {
|
||||
$_POST['email'] = strip_tags($_POST['email']);
|
||||
$email = explode(',', $_POST['email']);
|
||||
for ($i=0; $i<count($email); $i++)
|
||||
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], trim($email[$i]), '[메일검사] 제목', '<span style="font-size:9pt;">[메일검사] 내용<p>이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.<p>'.G5_TIME_YMDHIS.'<p>이 메일 주소로는 회신되지 않습니다.</span>', 1);
|
||||
|
||||
echo '<section>';
|
||||
echo '<h2>결과메세지</h2>';
|
||||
echo '<div class="local_desc01 local_desc"><p>';
|
||||
echo '다음 '.count($email).'개의 메일 주소로 테스트 메일 발송이 완료되었습니다.';
|
||||
echo '</p></div>';
|
||||
echo '<ul>';
|
||||
for ($i=0;$i<count($email);$i++) {
|
||||
echo '<li>'.$email[$i].'</li>';
|
||||
$real_email = array();
|
||||
|
||||
for ($i=0; $i<count($email); $i++){
|
||||
|
||||
if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $email[$i])) continue;
|
||||
|
||||
$real_email[] = $email[$i];
|
||||
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], trim($email[$i]), '[메일검사] 제목', '<span style="font-size:9pt;">[메일검사] 내용<p>이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.<p>'.G5_TIME_YMDHIS.'<p>이 메일 주소로는 회신되지 않습니다.</span>', 1);
|
||||
}
|
||||
|
||||
if( $real_email ){
|
||||
echo '<section>';
|
||||
echo '<h2>결과메세지</h2>';
|
||||
echo '<div class="local_desc01 local_desc"><p>';
|
||||
echo '다음 '.count($real_email).'개의 메일 주소로 테스트 메일 발송이 완료되었습니다.';
|
||||
echo '</p></div>';
|
||||
echo '<ul>';
|
||||
for ($i=0;$i<count($real_email);$i++) {
|
||||
echo '<li>'.$real_email[$i].'</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
echo '<div class="local_desc02 local_desc"><p>';
|
||||
echo '해당 주소로 테스트 메일이 도착했는지 확인해 주십시오.<br>';
|
||||
echo '만약, 테스트 메일이 오지 않는다면 더 다양한 계정의 메일 주소로 메일을 보내 보십시오.<br>';
|
||||
echo '그래도 메일이 하나도 도착하지 않는다면 메일 서버(sendmail server)의 오류일 가능성이 높으니, 웹 서버관리자에게 문의하여 주십시오.<br>';
|
||||
echo '</p></div>';
|
||||
echo '</section>';
|
||||
}
|
||||
echo '</ul>';
|
||||
echo '<div class="local_desc02 local_desc"><p>';
|
||||
echo '해당 주소로 테스트 메일이 도착했는지 확인해 주십시오.<br>';
|
||||
echo '만약, 테스트 메일이 오지 않는다면 더 다양한 계정의 메일 주소로 메일을 보내 보십시오.<br>';
|
||||
echo '그래도 메일이 하나도 도착하지 않는다면 메일 서버(sendmail server)의 오류일 가능성이 높으니, 웹 서버관리자에게 문의하여 주십시오.<br>';
|
||||
echo '</p></div>';
|
||||
echo '</section>';
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
+5
-5
@@ -19,9 +19,9 @@ include_once('./admin.head.php');
|
||||
<p>정보통신망법 23조 2항(주민등록번호의 사용제한)에 따라 기존 주민등록번호 기반의 인증서비스 이용이 불가합니다. 주민등록번호 대체수단으로 최소한의 정보(생년월일, 휴대폰번호, 성별)를 입력받아 본인임을 확인하는 인증수단 입니다</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://sir.co.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 휴대폰 본인확인 신청하기"></a></li>
|
||||
<li><a href="http://sir.co.kr/main/service/lg_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg" alt="LG유플러스 휴대폰대체인증 신청하기"></a></li>
|
||||
<li class="last"><a href="http://sir.co.kr/main/service/b_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_03.jpg" alt="OKname 휴대폰 본인확인 신청하기"></a></li>
|
||||
<li><a href="http://sir.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 휴대폰 본인확인 신청하기"></a></li>
|
||||
<li><a href="http://sir.kr/main/service/lg_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg" alt="LG유플러스 휴대폰대체인증 신청하기"></a></li>
|
||||
<li class="last"><a href="http://sir.kr/main/service/b_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_03.jpg" alt="OKname 휴대폰 본인확인 신청하기"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="sevice_1">
|
||||
@@ -30,7 +30,7 @@ include_once('./admin.head.php');
|
||||
<p>정부가 주관하는 주민등록번호 대체 수단으로 본인의 개인정보를 아이핀 사이트에 한번만 발급해 놓고, 이후부터는 아이디와 패스워드 만으로
|
||||
본인임을 확인하는 인증수단 입니다.</p>
|
||||
|
||||
<h4><a href="http://sir.co.kr/main/service/b_ipin.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_04.jpg" alt="OKname 아이핀 본인확인 신청하기"></a></h4>
|
||||
<h4><a href="http://sir.kr/main/service/b_ipin.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_04.jpg" alt="OKname 아이핀 본인확인 신청하기"></a></h4>
|
||||
</div>
|
||||
<div class="sevice_2">
|
||||
<div class="svc_sms">
|
||||
@@ -40,7 +40,7 @@ include_once('./admin.head.php');
|
||||
</div>
|
||||
<div class="svc_btn"><a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_05.jpg" alt="아이코드 SMS 서비스 신청하기"></a></div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -12,5 +12,11 @@ if (!strstr($_SERVER['SCRIPT_NAME'], 'install.php')) {
|
||||
//$sms5 = sql_fetch("select * from ".$g5['sms5_config_table'] );
|
||||
}
|
||||
|
||||
$sv = isset($_REQUEST['sv']) ? get_search_string($_REQUEST['sv']) : '';
|
||||
|
||||
if( isset($token) ){
|
||||
$token = @htmlspecialchars(strip_tags($token), ENT_QUOTES);
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.G5_SMS5_ADMIN_URL.'/css/sms5.css">', 0);
|
||||
?>
|
||||
@@ -83,7 +83,7 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
|
||||
<th scope="row">충전 잔액</th>
|
||||
<td>
|
||||
<?php echo number_format($userinfo['coin'])?> 원
|
||||
<input type="button" value="충전하기" class="btn_frmline" onclick="window.open('http://icodekorea.com/company/credit_card_input.php?icode_id=<?php echo $config['cf_icode_id']?>&icode_passwd=<?php echo $config['cf_icode_pw']?>','icode_payment','width=650,height=500')">
|
||||
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline">충전하기</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
@@ -10,9 +10,9 @@ if ($w == 'u') // 업데이트
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$fg_no = $_POST['fg_no'][$k];
|
||||
$fg_name = $_POST['fg_name'][$k];
|
||||
$fg_member = $_POST['fg_member'][$k];
|
||||
$fg_no = (int) $_POST['fg_no'][$k];
|
||||
$fg_name = strip_tags($_POST['fg_name'][$k]);
|
||||
$fg_member = strip_tags($_POST['fg_member'][$k]);
|
||||
|
||||
if (!is_numeric($fg_no))
|
||||
alert('그룹 고유번호가 없습니다.');
|
||||
@@ -38,7 +38,7 @@ else if ($w == 'de') // 그룹삭제
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$fg_no = $_POST['fg_no'][$k];
|
||||
$fg_no = (int) $_POST['fg_no'][$k];
|
||||
|
||||
if (!is_numeric($fg_no))
|
||||
alert('그룹 고유번호가 없습니다.');
|
||||
@@ -57,7 +57,7 @@ else if ($w == 'em')
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$fg_no = $_POST['fg_no'][$k];
|
||||
$fg_no = (int) $_POST['fg_no'][$k];
|
||||
|
||||
if ($fg_no == 'no') $fg_no = 0;
|
||||
|
||||
@@ -71,6 +71,8 @@ else if ($w == 'no')
|
||||
{
|
||||
if ($fg_no == 'no') $fg_no = 0;
|
||||
|
||||
$fg_no = (int) $fg_no;
|
||||
|
||||
if ($fg_no)
|
||||
sql_query("update {$g5['sms5_form_group_table']} set fg_count = 0 where fg_no = '$fg_no'");
|
||||
|
||||
@@ -81,6 +83,8 @@ else // 등록
|
||||
if (!strlen(trim($fg_name)))
|
||||
alert('그룹명을 입력해주세요');
|
||||
|
||||
$fg_name = strip_tags($fg_name);
|
||||
|
||||
$res = sql_fetch("select fg_name from {$g5['sms5_form_group_table']} where fg_name = '$fg_name'");
|
||||
if ($res)
|
||||
alert('같은 그룹명이 존재합니다.');
|
||||
|
||||
@@ -18,6 +18,9 @@ if (is_numeric($fg_no))
|
||||
else
|
||||
$sql_group = "";
|
||||
|
||||
$st = clean_xss_tags($st);
|
||||
$sv = clean_xss_tags($sv);
|
||||
|
||||
if ($st == 'all') {
|
||||
$sql_search = "and (fo_name like '%{$sv}%' or fo_content like '%{$sv}%')";
|
||||
} else if ($st == 'name') {
|
||||
@@ -60,7 +63,7 @@ function book_all_checked(chk)
|
||||
function book_del(fo_no)
|
||||
{
|
||||
if (confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n그래도 삭제하시겠습니까?"))
|
||||
location.href = "./form_update.php?w=d&fo_no=" + fo_no + "&page=<?php echo $page?>&fg_no=<?php echo $fg_no?>&st=<?php echo $st?>&sv=<?php echo $sv?>";
|
||||
location.href = "./form_update.php?w=d&fo_no=" + fo_no + "&page=<?php echo $page?>&fg_no=<?php echo $fg_no?>&st=<?php echo get_text($st); ?>&sv=<?php echo get_text($sv); ?>";
|
||||
}
|
||||
|
||||
function multi_update(sel)
|
||||
@@ -127,7 +130,7 @@ function multi_update(sel)
|
||||
<option value="content"<?php echo get_selected('content', $st); ?>>이모티콘</option>
|
||||
</select>
|
||||
<label for="sv" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
|
||||
<input type="text" name="sv" value="<?php echo $sv;?>" id="sv" required class="frm_input required" >
|
||||
<input type="text" name="sv" value="<?php echo get_text($sv) ;?>" id="sv" required class="frm_input required" >
|
||||
<input type="submit" value="검색" class="btn_submit">
|
||||
</form>
|
||||
</div>
|
||||
@@ -181,7 +184,7 @@ function multi_update(sel)
|
||||
<span class="sound_only">등록 </span><?php echo date('Y-m-d', strtotime($res['fo_datetime']))?>
|
||||
</div>
|
||||
<div class="li_cmd">
|
||||
<a href="./form_write.php?w=u&fo_no=<?php echo $res['fo_no']?>&page=<?php echo $page;?>&fg_no=<?php echo $fg_no;?>&st=<?php echo $st;?>&sv=<?php echo $sv;?>">수정</a>
|
||||
<a href="./form_write.php?w=u&fo_no=<?php echo $res['fo_no']?>&page=<?php echo $page;?>&fg_no=<?php echo $fg_no;?>&st=<?php echo get_text($st);?>&sv=<?php echo get_text($sv);?>">수정</a>
|
||||
<a href="javascript:void(book_del('<?php echo $res['fo_no']?>'));">삭제</a>
|
||||
<a href="./sms_write.php?fo_no=<?php echo $res['fo_no']?>">보내기</a>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,9 @@ include_once("./_common.php");
|
||||
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
$fo_name = isset($fo_name) ? strip_tags($fo_name) : '';
|
||||
$fo_content = isset($fo_content) ? strip_tags($fo_content) : '';
|
||||
|
||||
$g5['title'] = "이모티콘 업데이트";
|
||||
|
||||
if ($w == 'u') // 업데이트
|
||||
|
||||
@@ -10,8 +10,8 @@ if ($w == 'u') // 업데이트
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$bg_no = $_POST['bg_no'][$k];
|
||||
$bg_name = $_POST['bg_name'][$k];
|
||||
$bg_no = (int) $_POST['bg_no'][$k];
|
||||
$bg_name = strip_tags($_POST['bg_name'][$k]);
|
||||
|
||||
if (!is_numeric($bg_no))
|
||||
alert('그룹 고유번호가 없습니다.');
|
||||
@@ -36,7 +36,7 @@ else if ($w == 'de') // 그룹삭제
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$bg_no = $_POST['bg_no'][$k];
|
||||
$bg_no = (int) $_POST['bg_no'][$k];
|
||||
|
||||
if (!is_numeric($bg_no))
|
||||
alert('그룹 고유번호가 없습니다.');
|
||||
@@ -55,7 +55,7 @@ else if ($w == 'em') // 비우기
|
||||
{
|
||||
// 실제 번호를 넘김
|
||||
$k = $_POST['chk'][$i];
|
||||
$bg_no = $_POST['bg_no'][$k];
|
||||
$bg_no = (int) $_POST['bg_no'][$k];
|
||||
|
||||
sql_query("update {$g5['sms5_book_group_table']} set bg_count = 0, bg_member = 0, bg_nomember = 0, bg_receipt = 0, bg_reject = 0 where bg_no='$bg_no'");
|
||||
sql_query("delete from {$g5['sms5_book_table']} where bg_no='$bg_no'");
|
||||
@@ -63,6 +63,8 @@ else if ($w == 'em') // 비우기
|
||||
}
|
||||
else // 등록
|
||||
{
|
||||
$bg_name = strip_tags($bg_name);
|
||||
|
||||
if (!strlen(trim($bg_name)))
|
||||
alert('그룹명을 입력해주세요');
|
||||
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@ include_once(G5_LIB_PATH.'/visit.lib.php');
|
||||
include_once('./admin.head.php');
|
||||
include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php');
|
||||
|
||||
if (empty($fr_date)) $fr_date = G5_TIME_YMD;
|
||||
if (empty($to_date)) $to_date = G5_TIME_YMD;
|
||||
if (empty($fr_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $fr_date) ) $fr_date = G5_TIME_YMD;
|
||||
if (empty($to_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $to_date) ) $to_date = G5_TIME_YMD;
|
||||
|
||||
$qstr = "fr_date=".$fr_date."&to_date=".$to_date;
|
||||
$query_string = $qstr ? '?'.$qstr : '';
|
||||
|
||||
@@ -71,6 +71,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
|
||||
@@ -72,6 +72,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
|
||||
|
||||
<div class="local_sch local_sch01">
|
||||
<form name="fvisit" method="get" onsubmit="return fvisit_submit(this);">
|
||||
<?=$listall?>
|
||||
<?php echo $listall?>
|
||||
<label for="sch_sort" class="sound_only">검색분류</label>
|
||||
<select name="sfl" id="sch_sort" class="search_sort">
|
||||
<option value="vi_ip"<?php echo get_selected($sfl, 'vi_ip'); ?>>IP</option>
|
||||
@@ -44,7 +44,7 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
|
||||
<?php
|
||||
$sql_common = " from {$g5['visit_table']} ";
|
||||
if ($sfl) {
|
||||
if($sst=='vi_ip' || $sst=='vi_date'){
|
||||
if($sfl=='vi_ip' || $sfl=='vi_date'){
|
||||
$sql_search = " where $sfl like '$stx%' ";
|
||||
}else{
|
||||
$sql_search = " where $sfl like '%$stx%' ";
|
||||
|
||||
+8
-8
@@ -14,7 +14,7 @@ add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.categoryAxi
|
||||
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.pointLabels.min.js"></script>', 0);
|
||||
add_javascript('<!--[if lt IE 9]><script src="'.G5_PLUGIN_URL.'/jqplot/excanvas.js"></script><![endif]-->', 0);
|
||||
|
||||
if (!($graph == 'line' || $graph == 'bar'))
|
||||
if (!($graph == 'line' || $graph == 'bar'))
|
||||
$graph = 'line';
|
||||
|
||||
if ($graph == 'bar') {
|
||||
@@ -49,7 +49,7 @@ foreach($period_array as $key=>$value) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$is_period)
|
||||
if (!$is_period)
|
||||
$period = '오늘';
|
||||
|
||||
$day = $period_array[$period][0];
|
||||
@@ -64,15 +64,15 @@ if ($period == '오늘') {
|
||||
$from = $yesterday;
|
||||
$to = $from;
|
||||
} else if ($period == '내일') {
|
||||
$from = date('Y-m-d', G5_SERVER_TIME + (86400 * 2));
|
||||
$from = date('Y-m-d', G5_SERVER_TIME + (86400 * 2));
|
||||
$to = $from;
|
||||
} else {
|
||||
$from = date('Y-m-d', G5_SERVER_TIME - (86400 * $period_array[$period][1]));
|
||||
$from = date('Y-m-d', G5_SERVER_TIME - (86400 * $period_array[$period][1]));
|
||||
$to = $yesterday;
|
||||
}
|
||||
|
||||
$sql_bo_table = '';
|
||||
if ($bo_table)
|
||||
if ($bo_table)
|
||||
$sql_bo_table = "and bo_table = '$bo_table'";
|
||||
|
||||
switch ($day) {
|
||||
@@ -130,7 +130,7 @@ switch ($day) {
|
||||
<form>
|
||||
<select name="bo_table">
|
||||
<option value="">전체게시판</a>
|
||||
<?php
|
||||
<?php
|
||||
$sql = " select bo_table, bo_subject from {$g5['board_table']} order by bo_count_write desc ";
|
||||
$result = sql_query($sql);
|
||||
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
@@ -179,7 +179,7 @@ $(document).ready(function(){
|
||||
var line1 = [<?php echo implode($line1, ','); ?>];
|
||||
var line2 = [<?php echo implode($line2, ','); ?>];
|
||||
var plot1 = $.jqplot ('chart1', [line1, line2], {
|
||||
seriesDefaults: {
|
||||
seriesDefaults: {
|
||||
<?php if ($graph == 'bar') { ?>
|
||||
renderer:$.jqplot.BarRenderer,
|
||||
<?php } ?>
|
||||
@@ -205,6 +205,6 @@ $(document).ready(function(){
|
||||
}
|
||||
?>
|
||||
|
||||
<?
|
||||
<?php
|
||||
include_once ('./admin.tail.php');
|
||||
?>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/json.lib.php');
|
||||
|
||||
$ss_name = 'ss_comment_token';
|
||||
|
||||
set_session($ss_name, '');
|
||||
|
||||
$token = _token();
|
||||
|
||||
set_session($ss_name, $token);
|
||||
|
||||
die(json_encode(array('token'=>$token)));
|
||||
?>
|
||||
@@ -33,6 +33,8 @@ $msg2 = str_replace("\\n", "<br>", $msg);
|
||||
$url = clean_xss_tags($url);
|
||||
if (!$url) $url = clean_xss_tags($_SERVER['HTTP_REFERER']);
|
||||
|
||||
$url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url);
|
||||
|
||||
// url 체크
|
||||
check_url_host($url);
|
||||
|
||||
|
||||
+5
-1
@@ -7,7 +7,11 @@ if (G5_IS_MOBILE) {
|
||||
include_once(G5_BBS_PATH.'/_head.php');
|
||||
echo stripslashes($board['bo_mobile_content_head']);
|
||||
} else {
|
||||
@include ($board['bo_include_head']);
|
||||
if(is_include_path_check($board['bo_include_head'])) { //파일경로 체크
|
||||
@include ($board['bo_include_head']);
|
||||
} else { //파일경로가 올바르지 않으면 기본파일을 가져옴
|
||||
include_once(G5_BBS_PATH.'/_head.php');
|
||||
}
|
||||
echo stripslashes($board['bo_content_head']);
|
||||
}
|
||||
?>
|
||||
+5
-1
@@ -8,6 +8,10 @@ if (G5_IS_MOBILE) {
|
||||
include_once(G5_BBS_PATH.'/_tail.php');
|
||||
} else {
|
||||
echo stripslashes($board['bo_content_tail']);
|
||||
@include ($board['bo_include_tail']);
|
||||
if(is_include_path_check($board['bo_include_tail'])) { //파일경로 체크
|
||||
@include ($board['bo_include_tail']);
|
||||
} else { //파일경로가 올바르지 않으면 기본파일을 가져옴
|
||||
include_once(G5_BBS_PATH.'/_tail.php');
|
||||
}
|
||||
}
|
||||
?>
|
||||
+2
-2
@@ -19,7 +19,7 @@ if (!$co['co_id'])
|
||||
|
||||
$g5['title'] = $co['co_subject'];
|
||||
|
||||
if ($co['co_include_head'])
|
||||
if ($co['co_include_head'] && is_include_path_check($co['co_include_head']))
|
||||
@include_once($co['co_include_head']);
|
||||
else
|
||||
include_once('./_head.php');
|
||||
@@ -85,7 +85,7 @@ if(is_file($skin_file)) {
|
||||
echo '<p>'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.</p>';
|
||||
}
|
||||
|
||||
if ($co['co_include_tail'])
|
||||
if ($co['co_include_tail'] && is_include_path_check($co['co_include_tail']))
|
||||
@include_once($co['co_include_tail']);
|
||||
else
|
||||
include_once('./_tail.php');
|
||||
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
if ($is_admin)
|
||||
{
|
||||
if (!($token && get_session('ss_delete_token') == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
}
|
||||
$delete_token = get_session('ss_delete_token');
|
||||
set_session('ss_delete_token', '');
|
||||
|
||||
if (!($token && $delete_token == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
|
||||
//$wr = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
|
||||
|
||||
@@ -134,5 +134,5 @@ if ($count_write > 0 || $count_comment > 0)
|
||||
|
||||
delete_cache_latest($bo_table);
|
||||
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&page='.$page.$qstr);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&page='.$page.$qstr);
|
||||
?>
|
||||
|
||||
+1
-1
@@ -156,5 +156,5 @@ if ($count_write > 0 || $count_comment > 0)
|
||||
|
||||
delete_cache_latest($bo_table);
|
||||
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&page='.$page.$qstr);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&page='.$page.$qstr);
|
||||
?>
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
// 코멘트 삭제
|
||||
include_once('./_common.php');
|
||||
|
||||
if ($is_admin)
|
||||
{
|
||||
if (!($token && get_session("ss_delete_token") == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
}
|
||||
$delete_comment_token = get_session('ss_delete_comment_'.$comment_id.'_token');
|
||||
set_session('ss_delete_comment_'.$comment_id.'_token', '');
|
||||
|
||||
if (!($token && $delete_comment_token == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
|
||||
// 4.1
|
||||
@include_once($board_skin_path.'/delete_comment.head.skin.php');
|
||||
@@ -84,5 +84,5 @@ sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$bo_table}'
|
||||
|
||||
delete_cache_latest($bo_table);
|
||||
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$write['wr_parent'].'&page='.$page. $qstr);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$write['wr_parent'].'&page='.$page. $qstr);
|
||||
?>
|
||||
|
||||
+12
-3
@@ -1,20 +1,29 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
|
||||
$sql = " select mb_id, mb_email, mb_datetime from {$g5['member_table']} where mb_id = '{$mb_id}' ";
|
||||
$mb_id = trim($_GET['mb_id']);
|
||||
$mb_md5 = trim($_GET['mb_md5']);
|
||||
|
||||
$sql = " select mb_id, mb_email_certify2 from {$g5['member_table']} where mb_id = '{$mb_id}' ";
|
||||
$row = sql_fetch($sql);
|
||||
if (!$row['mb_id'])
|
||||
alert('존재하는 회원이 아닙니다.', G5_URL);
|
||||
|
||||
// 인증 링크는 한번만 처리가 되게 한다.
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '' where mb_id = '$mb_id' ");
|
||||
|
||||
if ($mb_md5)
|
||||
{
|
||||
$tmp_md5 = md5($row['mb_id'].$row['mb_email'].$row['mb_datetime']);
|
||||
if ($mb_md5 == $tmp_md5)
|
||||
if ($mb_md5 == $row['mb_email_certify2'])
|
||||
{
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify = '".G5_TIME_YMDHIS."' where mb_id = '{$mb_id}' ");
|
||||
|
||||
alert("메일인증 처리를 완료 하였습니다.\\n\\n지금부터 {$mb_id} 아이디로 로그인 가능합니다.", G5_URL);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert('메일인증 요청 정보가 올바르지 않습니다.', G5_URL);
|
||||
}
|
||||
}
|
||||
|
||||
alert('제대로 된 값이 넘어오지 않았습니다.', G5_URL);
|
||||
|
||||
+10
-1
@@ -28,8 +28,17 @@ if ($sendmail_count > 3)
|
||||
$g5['title'] = '메일 쓰기';
|
||||
include_once(G5_PATH.'/head.sub.php');
|
||||
|
||||
$email_enc = new str_encrypt();
|
||||
$email_dec = $email_enc->decrypt($email);
|
||||
|
||||
$email = get_email_address($email_dec);
|
||||
if(!$email)
|
||||
alert_close('이메일이 올바르지 않습니다.');
|
||||
|
||||
$email = $email_enc->encrypt($email);
|
||||
|
||||
if (!$name)
|
||||
$name = base64_decode($email);
|
||||
$name = $email;
|
||||
else
|
||||
$name = get_text(stripslashes($name), true);
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ if (!$config['cf_email_use'])
|
||||
if (!$is_member && $config['cf_formmail_is_member'])
|
||||
alert_close('회원만 이용하실 수 있습니다.');
|
||||
|
||||
$to = base64_decode($to);
|
||||
$email_enc = new str_encrypt();
|
||||
$to = $email_enc->decrypt($to);
|
||||
|
||||
if (substr_count($to, "@") > 1)
|
||||
alert_close('한번에 한사람에게만 메일을 발송할 수 있습니다.');
|
||||
|
||||
+2
-2
@@ -28,9 +28,9 @@ include_once(G5_LIB_PATH.'/latest.lib.php');
|
||||
<?php
|
||||
// 최신글
|
||||
$sql = " select bo_table, bo_subject
|
||||
from {$g5[board_table]}
|
||||
from {$g5['board_table']}
|
||||
where gr_id = '{$gr_id}'
|
||||
and bo_list_level <= '{$member[mb_level]}'
|
||||
and bo_list_level <= '{$member['mb_level']}'
|
||||
and bo_device <> 'mobile' ";
|
||||
if(!$is_admin)
|
||||
$sql .= " and bo_use_cert = '' ";
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ if ($sca || $stx) {
|
||||
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
|
||||
|
||||
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
|
||||
// 라엘님 제안 코드로 대체 http://sir.co.kr/bbs/board.php?bo_table=g5_bug&wr_id=2922
|
||||
// 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
|
||||
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
+2
-1
@@ -31,7 +31,8 @@ if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
|
||||
}
|
||||
|
||||
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
|
||||
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id);
|
||||
$ckey = md5($mb['mb_ip'].$mb['mb_datetime']);
|
||||
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id.'&ckey='.$ckey);
|
||||
}
|
||||
|
||||
@include_once($member_skin_path.'/login_check.skin.php');
|
||||
|
||||
+4
-1
@@ -11,7 +11,10 @@ set_cookie('ck_auto', '', 0);
|
||||
// 자동로그인 해제 end --------------------------------
|
||||
|
||||
if ($url) {
|
||||
$p = @parse_url($url);
|
||||
if ( substr($url, 0, 2) == '//' )
|
||||
$url = 'http:' . $url;
|
||||
|
||||
$p = @parse_url(urldecode($url));
|
||||
if ($p['scheme'] || $p['host']) {
|
||||
alert('url에 도메인을 지정할 수 없습니다.');
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ $url = clean_xss_tags($_GET['url']);
|
||||
// url 체크
|
||||
check_url_host($url);
|
||||
|
||||
$url = get_text($url);
|
||||
|
||||
include_once($member_skin_path.'/member_confirm.skin.php');
|
||||
|
||||
include_once('./_tail.sub.php');
|
||||
|
||||
+4
-2
@@ -4,10 +4,12 @@ include_once('./_common.php');
|
||||
if ($is_guest)
|
||||
alert_close('회원만 이용하실 수 있습니다.');
|
||||
|
||||
set_session('ss_memo_delete_token', $token = uniqid(time()));
|
||||
|
||||
$g5['title'] = '내 쪽지함';
|
||||
include_once(G5_PATH.'/head.sub.php');
|
||||
|
||||
if (!$kind) $kind = 'recv';
|
||||
$kind = $kind ? clean_xss_tags(strip_tags($kind)) : 'recv';
|
||||
|
||||
if ($kind == 'recv')
|
||||
$unkind = 'send';
|
||||
@@ -65,7 +67,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
|
||||
$list[$i]['send_datetime'] = $send_datetime;
|
||||
$list[$i]['read_datetime'] = $read_datetime;
|
||||
$list[$i]['view_href'] = './memo_view.php?me_id='.$row['me_id'].'&kind='.$kind;
|
||||
$list[$i]['del_href'] = './memo_delete.php?me_id='.$row['me_id'].'&kind='.$kind;
|
||||
$list[$i]['del_href'] = './memo_delete.php?me_id='.$row['me_id'].'&token='.$token.'&kind='.$kind;
|
||||
}
|
||||
|
||||
include_once($member_skin_path.'/memo.skin.php');
|
||||
|
||||
@@ -4,6 +4,12 @@ include_once('./_common.php');
|
||||
if (!$is_member)
|
||||
alert('회원만 이용하실 수 있습니다.');
|
||||
|
||||
$delete_token = get_session('ss_memo_delete_token');
|
||||
set_session('ss_memo_delete_token', '');
|
||||
|
||||
if (!($token && $delete_token == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
|
||||
$me_id = (int)$_REQUEST['me_id'];
|
||||
|
||||
$sql = " select * from {$g5['memo_table']} where me_id = '{$me_id}' ";
|
||||
|
||||
+6
-2
@@ -19,6 +19,8 @@ $save_count_write = 0;
|
||||
$save_count_comment = 0;
|
||||
$cnt = 0;
|
||||
|
||||
$wr_id_list = preg_replace('/[^0-9\,]/', '', $_POST['wr_id_list']);
|
||||
|
||||
$sql = " select distinct wr_num from $write_table where wr_id in ({$wr_id_list}) order by wr_id ";
|
||||
$result = sql_query($sql);
|
||||
while ($row = sql_fetch_array($result))
|
||||
@@ -113,7 +115,9 @@ while ($row = sql_fetch_array($result))
|
||||
if ($row3['bf_file'])
|
||||
{
|
||||
// 원본파일을 복사하고 퍼미션을 변경
|
||||
@copy($src_dir.'/'.$row3['bf_file'], $dst_dir.'/'.$row3['bf_file']);
|
||||
// 제이프로님 코드제안 적용
|
||||
$copy_file_name = ($bo_table !== $move_bo_table) ? $row3['bf_file'] : $row2['wr_id'].'_copy_'.$insert_id.'_'.$row3['bf_file'];
|
||||
@copy($src_dir.'/'.$row3['bf_file'], $dst_dir.'/'.$copy_file_name);
|
||||
@chmod($dst_dir/$row3['bf_file'], G5_FILE_PERMISSION);
|
||||
}
|
||||
|
||||
@@ -122,7 +126,7 @@ while ($row = sql_fetch_array($result))
|
||||
wr_id = '$insert_id',
|
||||
bf_no = '{$row3['bf_no']}',
|
||||
bf_source = '".addslashes($row3['bf_source'])."',
|
||||
bf_file = '{$row3['bf_file']}',
|
||||
bf_file = '$copy_file_name',
|
||||
bf_download = '{$row3['bf_download']}',
|
||||
bf_content = '".addslashes($row3['bf_content'])."',
|
||||
bf_filesize = '{$row3['bf_filesize']}',
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ include_once('./_head.php');
|
||||
|
||||
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
|
||||
|
||||
$gr_id = isset($_GET['gr_id']) ? $_GET['gr_id'] : "";
|
||||
$gr_id = isset($_GET['gr_id']) ? substr(preg_replace('#[^a-z0-9_]#i', '', $_GET['gr_id']), 0, 10) : '';
|
||||
if ($gr_id) {
|
||||
$sql_common .= " and b.gr_id = '$gr_id' ";
|
||||
}
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ for($i=0;$i<count($_POST['chk_bn_id']);$i++)
|
||||
|
||||
if ($pressed == '선택내용삭제') {
|
||||
// 게시글 내용만 삭제
|
||||
sql_query(" update $write_table set wr_subject = '{$g5['time_ymdhis']} - 본인 요청으로 인한 삭제 (냉무) ☆', wr_content = '', wr_name='본인요청삭제☆' where wr_id = '{$write['wr_id']}' ");
|
||||
sql_query(" update $write_table set wr_subject = '".G5_TIME_YMDHIS." - 본인 요청으로 인한 삭제 (냉무) ☆', wr_content = '', wr_name='본인요청삭제☆' where wr_id = '{$write['wr_id']}' ");
|
||||
} else {
|
||||
// 게시글 삭제
|
||||
sql_query(" delete from $write_table where wr_parent = '{$write['wr_id']}' ");
|
||||
|
||||
+14
-12
@@ -5,34 +5,36 @@ $g5['title'] = '비밀번호 입력';
|
||||
|
||||
switch ($w) {
|
||||
case 'u' :
|
||||
$action = './write.php';
|
||||
$return_url = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
$action = G5_HTTP_BBS_URL.'/write.php';
|
||||
$return_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
break;
|
||||
case 'd' :
|
||||
$action = './delete.php';
|
||||
$return_url = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
set_session('ss_delete_token', $token = uniqid(time()));
|
||||
$action = https_url(G5_BBS_DIR).'/delete.php?token='.$token;
|
||||
$return_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
break;
|
||||
case 'x' :
|
||||
$action = './delete_comment.php';
|
||||
set_session('ss_delete_comment_'.$comment_id.'_token', $token = uniqid(time()));
|
||||
$action = https_url(G5_BBS_DIR).'/delete_comment.php?token='.$token;
|
||||
$row = sql_fetch(" select wr_parent from $write_table where wr_id = '$comment_id' ");
|
||||
$return_url = './board.php?bo_table='.$bo_table.'&wr_id='.$row['wr_parent'];
|
||||
$return_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$row['wr_parent'];
|
||||
break;
|
||||
case 's' :
|
||||
// 비밀번호 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
|
||||
if ($is_admin || ($member['mb_id'] == $write['mb_id'] && $write['mb_id']))
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
|
||||
else {
|
||||
$action = './password_check.php';
|
||||
$return_url = './board.php?bo_table='.$bo_table;
|
||||
$action = https_url(G5_BBS_DIR).'/password_check.php';
|
||||
$return_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table;
|
||||
}
|
||||
break;
|
||||
case 'sc' :
|
||||
// 비밀번호 창에서 로그인 하는 경우 관리자 또는 자신의 글이면 바로 글보기로 감
|
||||
if ($is_admin || ($member['mb_id'] == $write['mb_id'] && $write['mb_id']))
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
|
||||
else {
|
||||
$action = './password_check.php';
|
||||
$return_url = './board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
$action = https_url(G5_BBS_DIR).'/password_check.php';
|
||||
$return_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id;
|
||||
}
|
||||
break;
|
||||
default :
|
||||
|
||||
@@ -31,5 +31,5 @@ if ($w == 's') {
|
||||
} else
|
||||
alert('w 값이 제대로 넘어오지 않았습니다.');
|
||||
|
||||
goto_url('./board.php?'.$qstr);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?'.$qstr);
|
||||
?>
|
||||
|
||||
@@ -4,7 +4,7 @@ include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
|
||||
if ($is_member) {
|
||||
alert('이미 로그인중입니다.');
|
||||
alert_close('이미 로그인중입니다.', G5_URL);
|
||||
}
|
||||
|
||||
if (!chk_captcha()) {
|
||||
|
||||
@@ -4,6 +4,12 @@ include_once('./_common.php');
|
||||
if($is_guest)
|
||||
alert('회원이시라면 로그인 후 이용해 주십시오.', G5_URL);
|
||||
|
||||
$delete_token = get_session('ss_qa_delete_token');
|
||||
set_session('ss_qa_delete_token', '');
|
||||
|
||||
if (!($token && $delete_token == $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
|
||||
$tmp_array = array();
|
||||
if ($qa_id) // 건별삭제
|
||||
$tmp_array[0] = $qa_id;
|
||||
@@ -29,6 +35,10 @@ for($i=0; $i<$count; $i++) {
|
||||
if($is_admin != 'super' && $row['mb_id'] != $member['mb_id'])
|
||||
continue;
|
||||
|
||||
// 답변이 달린 글은 삭제못함
|
||||
if($is_admin != 'super' && !$row['qa_type'] && $row['qa_status'])
|
||||
continue;
|
||||
|
||||
// 첨부파일 삭제
|
||||
for($k=1; $k<=2; $k++) {
|
||||
@unlink(G5_DATA_PATH.'/qa/'.$row['qa_file'.$k]);
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ if (G5_IS_MOBILE) {
|
||||
include_once('./_head.php');
|
||||
echo conv_content($qaconfig['qa_mobile_content_head'], 1);
|
||||
} else {
|
||||
if($qaconfig['qa_include_head'])
|
||||
if($qaconfig['qa_include_head'] && is_include_path_check($qaconfig['qa_include_head']))
|
||||
@include ($qaconfig['qa_include_head']);
|
||||
else
|
||||
include ('./_head.php');
|
||||
|
||||
+1
-1
@@ -110,7 +110,7 @@ if(is_file($skin_file)) {
|
||||
$list_href = G5_BBS_URL.'/qalist.php';
|
||||
$write_href = G5_BBS_URL.'/qawrite.php';
|
||||
|
||||
$list_pages = preg_replace('/(\.php)(&|&)/i', '$1?', get_paging(G5_IS_MOBILE ? $qaconfig['qa_mobile_page_rows'] : $qaconfig['qa_page_rows'], $page, $total_page, './qalist.php'.$qstr.'&page='));
|
||||
$list_pages = preg_replace('/(\.php)(&|&)/i', '$1?', get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './qalist.php'.$qstr.'&page='));
|
||||
|
||||
$stx = get_text(stripslashes($stx));
|
||||
include_once($skin_file);
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ if (G5_IS_MOBILE) {
|
||||
include_once('./_tail.php');
|
||||
} else {
|
||||
echo conv_content($qaconfig['qa_content_tail'], 1);
|
||||
if($qaconfig['qa_include_tail'])
|
||||
if($qaconfig['qa_include_tail'] && is_include_path_check($qaconfig['qa_include_tail']))
|
||||
@include ($qaconfig['qa_include_tail']);
|
||||
else
|
||||
include ('./_tail.php');
|
||||
|
||||
+2
-1
@@ -109,7 +109,8 @@ if(is_file($skin_file)) {
|
||||
*/
|
||||
if(($view['qa_type'] && $is_admin) || (!$view['qa_type'] && $view['qa_status'] == 0)) {
|
||||
$update_href = G5_BBS_URL.'/qawrite.php?w=u&qa_id='.$view['qa_id'].$qstr;
|
||||
$delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$view['qa_id'].$qstr;
|
||||
set_session('ss_qa_delete_token', $token = uniqid(time()));
|
||||
$delete_href = G5_BBS_URL.'/qadelete.php?qa_id='.$view['qa_id'].'&token='.$token.$qstr;
|
||||
}
|
||||
|
||||
// 질문글이고 등록된 답변이 있다면
|
||||
|
||||
+4
-1
@@ -76,7 +76,10 @@ if(is_file($skin_file)) {
|
||||
|
||||
$content .= get_text($write['qa_content'], 0);
|
||||
} else {
|
||||
$content = get_text($write['qa_content'], 0);
|
||||
//$content = get_text($write['qa_content'], 0);
|
||||
|
||||
// KISA 취약점 권고사항 Stored XSS
|
||||
$content = get_text(html_purifier($write['qa_content']), 0);
|
||||
}
|
||||
|
||||
$editor_html = editor_html('qa_content', $content, $is_dhtml_editor);
|
||||
|
||||
+29
-10
@@ -15,16 +15,23 @@ $msg = array();
|
||||
// 1:1문의 설정값
|
||||
$qaconfig = get_qa_config();
|
||||
|
||||
if(trim($qaconfig['qa_category'])) {
|
||||
if($w != 'a') {
|
||||
$category = explode('|', $qaconfig['qa_category']);
|
||||
if(!in_array($qa_category, $category))
|
||||
alert('분류를 올바르게 지정해 주십시오.');
|
||||
}
|
||||
} else {
|
||||
alert('1:1문의 설정에서 분류를 설정해 주십시오');
|
||||
}
|
||||
|
||||
// e-mail 체크
|
||||
if(isset($_POST['qa_email']) && $qa_email) {
|
||||
$qa_email = '';
|
||||
if(isset($_POST['qa_email']) && $_POST['qa_email'])
|
||||
$qa_email = get_email_address(trim($_POST['qa_email']));
|
||||
|
||||
if($qaconfig['qa_req_email'] && !$qa_email)
|
||||
$msg[] = '이메일을 입력하세요.';
|
||||
|
||||
if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $qa_email))
|
||||
$msg[] = '이메일 주소가 형식에 맞지 않습니다.';
|
||||
}
|
||||
if($w != 'a' && $qaconfig['qa_req_email'] && !$qa_email)
|
||||
$msg[] = '이메일을 입력하세요.';
|
||||
|
||||
$qa_subject = '';
|
||||
if (isset($_POST['qa_subject'])) {
|
||||
@@ -105,6 +112,18 @@ if($w == 'u' || $w == 'a' || $w == 'r') {
|
||||
}
|
||||
}
|
||||
|
||||
// 파일개수 체크
|
||||
$file_count = 0;
|
||||
$upload_count = count($_FILES['bf_file']['name']);
|
||||
|
||||
for ($i=1; $i<=$upload_count; $i++) {
|
||||
if($_FILES['bf_file']['name'][$i] && is_uploaded_file($_FILES['bf_file']['tmp_name'][$i]))
|
||||
$file_count++;
|
||||
}
|
||||
|
||||
if($file_count > 2)
|
||||
alert('첨부파일을 2개 이하로 업로드 해주십시오.');
|
||||
|
||||
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
|
||||
@mkdir(G5_DATA_PATH.'/qa', G5_DIR_PERMISSION);
|
||||
@chmod(G5_DATA_PATH.'/qa', G5_DIR_PERMISSION);
|
||||
@@ -181,7 +200,7 @@ for ($i=1; $i<=count($_FILES['bf_file']['name']); $i++) {
|
||||
$upload[$i]['filesize'] = $filesize;
|
||||
|
||||
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
|
||||
$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
|
||||
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
|
||||
|
||||
shuffle($chars_array);
|
||||
$shuffle = implode('', $chars_array);
|
||||
@@ -403,7 +422,7 @@ if($w == 'a' && $write['qa_email_recv'] && trim($write['qa_email'])) {
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
|
||||
$subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 답변 알림 메일';
|
||||
$content = nl2br(conv_unescape_nl($qa_content));
|
||||
$content = nl2br(conv_unescape_nl(stripslashes($qa_content)));
|
||||
|
||||
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $write['qa_email'], $subject, $content, 1);
|
||||
}
|
||||
@@ -413,7 +432,7 @@ if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_email'])) {
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
|
||||
$subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 질문 알림 메일';
|
||||
$content = nl2br(conv_unescape_nl($qa_content));
|
||||
$content = nl2br(conv_unescape_nl(stripslashes($qa_content)));
|
||||
|
||||
mailer($config['cf_admin_email_name'], $qa_email, $qaconfig['qa_admin_email'], $subject, $content, 1);
|
||||
}
|
||||
|
||||
@@ -6,11 +6,17 @@ $g5['title'] = '메일인증 메일주소 변경';
|
||||
include_once('./_head.php');
|
||||
|
||||
$mb_id = substr(clean_xss_tags($_GET['mb_id']), 0, 20);
|
||||
$sql = " select mb_email, mb_datetime, mb_email_certify from {$g5['member_table']} where mb_id = '{$mb_id}' ";
|
||||
$sql = " select mb_email, mb_datetime, mb_ip, mb_email_certify from {$g5['member_table']} where mb_id = '{$mb_id}' ";
|
||||
$mb = sql_fetch($sql);
|
||||
if (substr($mb['mb_email_certify'],0,1)!=0) {
|
||||
alert("이미 메일인증 하신 회원입니다.", G5_URL);
|
||||
}
|
||||
|
||||
$ckey = trim($_GET['ckey']);
|
||||
$key = md5($mb['mb_ip'].$mb['mb_datetime']);
|
||||
|
||||
if(!$ckey || $ckey != $key)
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
?>
|
||||
|
||||
<p class="rg_em_p">메일인증을 받지 못한 경우 회원정보의 메일주소를 변경 할 수 있습니다.</p>
|
||||
|
||||
@@ -3,12 +3,15 @@ include_once('./_common.php');
|
||||
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
|
||||
$mb_id = trim($_POST['mb_id']);
|
||||
$mb_email = trim($_POST['mb_email']);
|
||||
$mb_id = substr(clean_xss_tags($_POST['mb_id']), 0, 20);
|
||||
$mb_email = get_email_address(trim($_POST['mb_email']));
|
||||
|
||||
$sql = " select mb_name, mb_datetime from {$g5['member_table']} where mb_id = '{$mb_id}' and mb_email_certify <> '' ";
|
||||
if(!$mb_id || !$mb_email)
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
|
||||
$sql = " select mb_name from {$g5['member_table']} where mb_id = '{$mb_id}' and substring(mb_email_certify, 1, 1) = '0' ";
|
||||
$mb = sql_fetch($sql);
|
||||
if ($mb) {
|
||||
if (!$mb) {
|
||||
alert("이미 메일인증 하신 회원입니다.", G5_URL);
|
||||
}
|
||||
|
||||
@@ -26,8 +29,12 @@ if ($row['cnt']) {
|
||||
$subject = '['.$config['cf_title'].'] 인증확인 메일입니다.';
|
||||
|
||||
$mb_name = $mb['mb_name'];
|
||||
$mb_datetime = $mb['mb_datetime'] ? $mb['mb_datetime'] : G5_TIME_YMDHIS;
|
||||
$mb_md5 = md5($mb_id.$mb_email.$mb_datetime);
|
||||
|
||||
// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
|
||||
$mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
|
||||
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
|
||||
|
||||
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
|
||||
|
||||
ob_start();
|
||||
|
||||
@@ -253,8 +253,12 @@ if ($w == '') {
|
||||
if ($config['cf_email_mb_member']) {
|
||||
$subject = '['.$config['cf_title'].'] 회원가입을 축하드립니다.';
|
||||
|
||||
$mb_md5 = md5($mb_id.$mb_email.G5_TIME_YMDHIS);
|
||||
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
|
||||
// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
|
||||
if ($config['cf_use_email_certify']) {
|
||||
$mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
|
||||
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
|
||||
}
|
||||
|
||||
ob_start();
|
||||
include_once ('./register_form_update_mail1.php');
|
||||
@@ -396,8 +400,11 @@ if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name']
|
||||
if ($config['cf_use_email_certify'] && $old_email != $mb_email) {
|
||||
$subject = '['.$config['cf_title'].'] 인증확인 메일입니다.';
|
||||
|
||||
$mb_datetime = $member['mb_datetime'] ? $member['mb_datetime'] : G5_TIME_YMDHIS;
|
||||
$mb_md5 = md5($mb_id.$mb_email.$mb_datetime);
|
||||
// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용
|
||||
$mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand()));
|
||||
|
||||
sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' ");
|
||||
|
||||
$certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5;
|
||||
|
||||
ob_start();
|
||||
@@ -405,7 +412,7 @@ if ($config['cf_use_email_certify'] && $old_email != $mb_email) {
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
mailer($config['cf_title'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
|
||||
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content, 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,10 @@ if (!$is_member)
|
||||
exit;
|
||||
}
|
||||
|
||||
// 게시글 존재하는지
|
||||
if(!$write['wr_id'])
|
||||
alert_close('스크랩하시려는 게시글이 존재하지 않습니다.');
|
||||
|
||||
$sql = " select count(*) as cnt from {$g5['scrap_table']}
|
||||
where mb_id = '{$member['mb_id']}'
|
||||
and bo_table = '$bo_table'
|
||||
|
||||
+10
-6
@@ -54,15 +54,19 @@ if ($stx) {
|
||||
$g5_search['read_level'][] = $row['bo_read_level'];
|
||||
}
|
||||
|
||||
$search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;
|
||||
|
||||
|
||||
$text_stx = get_text(stripslashes($stx));
|
||||
|
||||
$op1 = '';
|
||||
|
||||
// 검색어를 구분자로 나눈다. 여기서는 공백
|
||||
$s = explode(' ', strip_tags($stx));
|
||||
|
||||
if( count($s) > 1 ){
|
||||
$s = array_slice($s, 0, 2);
|
||||
$stx = implode(' ', $s);
|
||||
}
|
||||
|
||||
$text_stx = get_text(stripslashes($stx));
|
||||
|
||||
$search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;
|
||||
|
||||
// 검색필드를 구분자로 나눈다. 여기서는 +
|
||||
$field = explode('||', trim($sfl));
|
||||
@@ -233,4 +237,4 @@ if (!$sop) $sop = 'or';
|
||||
include_once($search_skin_path.'/search.skin.php');
|
||||
|
||||
include_once('./_tail.php');
|
||||
?>
|
||||
?>
|
||||
+2
-6
@@ -72,12 +72,8 @@ $update_href = $delete_href = '';
|
||||
// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능
|
||||
if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {
|
||||
$update_href = './write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
|
||||
$delete_href = './delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.urldecode($qstr);
|
||||
if ($is_admin)
|
||||
{
|
||||
set_session("ss_delete_token", $token = uniqid(time()));
|
||||
$delete_href ='./delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr);
|
||||
}
|
||||
set_session('ss_delete_token', $token = uniqid(time()));
|
||||
$delete_href ='./delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr);
|
||||
}
|
||||
else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면
|
||||
$update_href = './password.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;
|
||||
|
||||
@@ -9,11 +9,6 @@ if ($is_guest && $board['bo_comment_level'] < 2) {
|
||||
|
||||
@include_once($board_skin_path.'/view_comment.head.skin.php');
|
||||
|
||||
// 코멘트를 새창으로 여는 경우 세션값이 없으므로 생성한다.
|
||||
if ($is_admin && !$token) {
|
||||
set_session("ss_delete_token", $token = uniqid(time()));
|
||||
}
|
||||
|
||||
$list = array();
|
||||
|
||||
$is_comment_write = false;
|
||||
@@ -72,10 +67,13 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
|
||||
$list[$i]['is_del'] = false;
|
||||
if ($is_comment_write || $is_admin)
|
||||
{
|
||||
$token = '';
|
||||
|
||||
if ($member['mb_id'])
|
||||
{
|
||||
if ($row['mb_id'] == $member['mb_id'] || $is_admin)
|
||||
{
|
||||
set_session('ss_delete_comment_'.$row['wr_id'].'_token', $token = uniqid(time()));
|
||||
$list[$i]['del_link'] = './delete_comment.php?bo_table='.$bo_table.'&comment_id='.$row['wr_id'].'&token='.$token.'&page='.$page.$qstr;
|
||||
$list[$i]['is_edit'] = true;
|
||||
$list[$i]['is_del'] = true;
|
||||
@@ -120,6 +118,8 @@ else
|
||||
$comment_max = (int)$board['bo_comment_max'];
|
||||
}
|
||||
|
||||
$comment_action_url = https_url(G5_BBS_DIR)."/write_comment_update.php";
|
||||
|
||||
include_once($board_skin_path.'/view_comment.skin.php');
|
||||
|
||||
if (!$member['mb_id']) // 비회원일 경우에만
|
||||
|
||||
@@ -337,6 +337,8 @@ if ($w == '') {
|
||||
}
|
||||
|
||||
$file = get_file($bo_table, $wr_id);
|
||||
if($file_count < $file['count'])
|
||||
$file_count = $file['count'];
|
||||
} else if ($w == 'r') {
|
||||
if (strstr($write['wr_option'], 'secret')) {
|
||||
$is_secret = true;
|
||||
@@ -399,6 +401,11 @@ if(!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)
|
||||
if ($config['cf_editor'] && $is_dhtml_editor_use && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) {
|
||||
$is_dhtml_editor = true;
|
||||
|
||||
if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){
|
||||
// kisa 취약점 제보 xss 필터 적용
|
||||
$content = get_text(html_purifier($write['wr_content']), 0);
|
||||
}
|
||||
|
||||
if(is_file(G5_EDITOR_PATH.'/'.$config['cf_editor'].'/autosave.editor.js'))
|
||||
$editor_content_js = '<script src="'.G5_EDITOR_URL.'/'.$config['cf_editor'].'/autosave.editor.js"></script>'.PHP_EOL;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,12 @@ define('G5_CAPTCHA', true);
|
||||
include_once('./_common.php');
|
||||
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
|
||||
|
||||
// 토큰체크
|
||||
$comment_token = trim(get_session('ss_comment_token'));
|
||||
set_session('ss_comment_token', '');
|
||||
if(!trim($_POST['token']) || !$comment_token || $comment_token != $_POST['token'])
|
||||
alert('올바른 방법으로 이용해 주십시오.');
|
||||
|
||||
// 090710
|
||||
if (substr_count($wr_content, "&#") > 50) {
|
||||
alert('내용에 올바르지 않은 코드가 다수 포함되어 있습니다.');
|
||||
@@ -77,12 +83,15 @@ if ($w == 'c') // 댓글 입력
|
||||
// 댓글 답변
|
||||
if ($comment_id)
|
||||
{
|
||||
$sql = " select wr_id, wr_comment, wr_comment_reply from $write_table
|
||||
$sql = " select wr_id, wr_parent, wr_comment, wr_comment_reply from $write_table
|
||||
where wr_id = '$comment_id' ";
|
||||
$reply_array = sql_fetch($sql);
|
||||
if (!$reply_array['wr_id'])
|
||||
alert('답변할 댓글이 없습니다.\\n\\n답변하는 동안 댓글이 삭제되었을 수 있습니다.');
|
||||
|
||||
if($wr['wr_parent'] != $reply_array['wr_parent'])
|
||||
alert('댓글을 등록할 수 없습니다.');
|
||||
|
||||
$tmp_comment = $reply_array['wr_comment'];
|
||||
|
||||
if (strlen($reply_array['wr_comment_reply']) == 5)
|
||||
@@ -328,5 +337,5 @@ else if ($w == 'cu') // 댓글 수정
|
||||
|
||||
delete_cache_latest($bo_table);
|
||||
|
||||
goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$wr['wr_parent'].'&'.$qstr.'&#c_'.$comment_id);
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr['wr_parent'].'&'.$qstr.'&#c_'.$comment_id);
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/json.lib.php');
|
||||
|
||||
if(!$bo_table)
|
||||
die(json_encode(array('error'=>'게시판 정보가 올바르지 않습니다.', 'url'=>G5_URL)));
|
||||
|
||||
set_session('ss_write_'.$bo_table.'_token', '');
|
||||
|
||||
$token = get_write_token($bo_table);
|
||||
|
||||
die(json_encode(array('error'=>'', 'token'=>$token, 'url'=>'')));
|
||||
?>
|
||||
+51
-6
@@ -3,10 +3,29 @@ include_once('./_common.php');
|
||||
include_once(G5_LIB_PATH.'/naver_syndi.lib.php');
|
||||
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
|
||||
|
||||
// 토큰체크
|
||||
check_write_token($bo_table);
|
||||
|
||||
$g5['title'] = '게시글 저장';
|
||||
|
||||
$msg = array();
|
||||
|
||||
if($board['bo_use_category']) {
|
||||
$ca_name = trim($_POST['ca_name']);
|
||||
if(!$ca_name) {
|
||||
$msg[] = '<strong>분류</strong>를 선택하세요.';
|
||||
} else {
|
||||
$categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));
|
||||
if(!empty($categories) && !in_array($ca_name, $categories))
|
||||
$msg[] = '분류를 올바르게 입력하세요.';
|
||||
|
||||
if(empty($categories))
|
||||
$ca_name = '';
|
||||
}
|
||||
} else {
|
||||
$ca_name = '';
|
||||
}
|
||||
|
||||
$wr_subject = '';
|
||||
if (isset($_POST['wr_subject'])) {
|
||||
$wr_subject = substr(trim($_POST['wr_subject']),0,255);
|
||||
@@ -66,10 +85,16 @@ if ($w == 'u' || $w == 'r') {
|
||||
}
|
||||
|
||||
// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글은 사용일 경우에만 가능해야 함
|
||||
if (!$is_admin && !$board['bo_use_secret'] && $secret) {
|
||||
if (!$is_admin && !$board['bo_use_secret'] && (stripos($_POST['html'], 'secret') !== false || stripos($_POST['secret'], 'secret') !== false || stripos($_POST['mail'], 'secret') !== false)) {
|
||||
alert('비밀글 미사용 게시판 이므로 비밀글로 등록할 수 없습니다.');
|
||||
}
|
||||
|
||||
$secret = '';
|
||||
if (isset($_POST['secret']) && $_POST['secret']) {
|
||||
if(preg_match('#secret#', strtolower($_POST['secret']), $matches))
|
||||
$secret = $matches[0];
|
||||
}
|
||||
|
||||
// 외부에서 글을 등록할 수 있는 버그가 존재하므로 비밀글 무조건 사용일때는 관리자를 제외(공지)하고 무조건 비밀글로 등록
|
||||
if (!$is_admin && $board['bo_use_secret'] == 2) {
|
||||
$secret = 'secret';
|
||||
@@ -77,12 +102,14 @@ if (!$is_admin && $board['bo_use_secret'] == 2) {
|
||||
|
||||
$html = '';
|
||||
if (isset($_POST['html']) && $_POST['html']) {
|
||||
$html = $_POST['html'];
|
||||
if(preg_match('#html(1|2)#', strtolower($_POST['html']), $matches))
|
||||
$html = $matches[0];
|
||||
}
|
||||
|
||||
$mail = '';
|
||||
if (isset($_POST['mail']) && $_POST['mail']) {
|
||||
$mail = $_POST['mail'];
|
||||
if(preg_match('#mail#', strtolower($_POST['mail']), $matches))
|
||||
$mail = $matches[0];
|
||||
}
|
||||
|
||||
$notice = '';
|
||||
@@ -391,6 +418,24 @@ if (!$group['gr_use_access'] && $board['bo_read_level'] < 2 && !$secret) {
|
||||
naver_syndi_ping($bo_table, $wr_id);
|
||||
}
|
||||
|
||||
// 파일개수 체크
|
||||
$file_count = 0;
|
||||
$upload_count = count($_FILES['bf_file']['name']);
|
||||
|
||||
for ($i=0; $i<$upload_count; $i++) {
|
||||
if($_FILES['bf_file']['name'][$i] && is_uploaded_file($_FILES['bf_file']['tmp_name'][$i]))
|
||||
$file_count++;
|
||||
}
|
||||
|
||||
if($w == 'u') {
|
||||
$file = get_file($bo_table, $wr_id);
|
||||
if($file_count && (int)$file['count'] > $board['bo_upload_count'])
|
||||
alert('기존 파일을 삭제하신 후 첨부파일을 '.number_format($board['bo_upload_count']).'개 이하로 업로드 해주십시오.');
|
||||
} else {
|
||||
if($file_count > $board['bo_upload_count'])
|
||||
alert('첨부파일을 '.number_format($board['bo_upload_count']).'개 이하로 업로드 해주십시오.');
|
||||
}
|
||||
|
||||
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
|
||||
@mkdir(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
|
||||
@chmod(G5_DATA_PATH.'/file/'.$bo_table, G5_DIR_PERMISSION);
|
||||
@@ -479,7 +524,7 @@ for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
|
||||
$upload[$i]['filesize'] = $filesize;
|
||||
|
||||
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
|
||||
$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
|
||||
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);
|
||||
|
||||
shuffle($chars_array);
|
||||
$shuffle = implode('', $chars_array);
|
||||
@@ -596,7 +641,7 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai
|
||||
else if (strstr($html, 'html2'))
|
||||
$tmp_html = 2;
|
||||
|
||||
$wr_content = conv_content(conv_unescape_nl($wr_content), $tmp_html);
|
||||
$wr_content = conv_content(conv_unescape_nl(stripslashes($wr_content)), $tmp_html);
|
||||
|
||||
$warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'코멘트', 'cu'=>'코멘트 수정' );
|
||||
$str = $warr[$w];
|
||||
@@ -647,7 +692,7 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai
|
||||
delete_cache_latest($bo_table);
|
||||
|
||||
if ($file_upload_msg)
|
||||
alert($file_upload_msg, G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr);
|
||||
alert($file_upload_msg, G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr);
|
||||
else
|
||||
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr);
|
||||
?>
|
||||
|
||||
+17
-12
@@ -29,16 +29,19 @@ for ($i=0; $i<$ext_cnt; $i++) {
|
||||
|
||||
function g5_path()
|
||||
{
|
||||
$result['path'] = str_replace('\\', '/', dirname(__FILE__));
|
||||
$chroot = substr($_SERVER['SCRIPT_FILENAME'], 0, strpos($_SERVER['SCRIPT_FILENAME'], dirname(__FILE__)));
|
||||
$result['path'] = str_replace('\\', '/', $chroot.dirname(__FILE__));
|
||||
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']);
|
||||
$document_root = str_replace($tilde_remove, '', $_SERVER['SCRIPT_FILENAME']);
|
||||
$root = str_replace($document_root, '', $result['path']);
|
||||
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
|
||||
$pattern = '/' . preg_quote($document_root, '/') . '/i';
|
||||
$root = preg_replace($pattern, '', $result['path']);
|
||||
$port = ($_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT'];
|
||||
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
|
||||
$user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);
|
||||
$user = str_replace(preg_replace($pattern, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);
|
||||
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
|
||||
if(isset($_SERVER['HTTP_HOST']) && preg_match('/:[0-9]+$/', $host))
|
||||
$host = preg_replace('/:[0-9]+$/', '', $host);
|
||||
$host = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", '', $host);
|
||||
$result['url'] = $http.$host.$port.$user.$root;
|
||||
return $result;
|
||||
}
|
||||
@@ -137,7 +140,7 @@ if (file_exists($dbconfig_file)) {
|
||||
|
||||
sql_set_charset('utf8', $connect_db);
|
||||
if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''");
|
||||
if (defined(G5_TIMEZONE)) sql_query(" set time_zone = '".G5_TIMEZONE."'");
|
||||
if (defined('G5_TIMEZONE')) sql_query(" set time_zone = '".G5_TIMEZONE."'");
|
||||
} else {
|
||||
?>
|
||||
|
||||
@@ -227,15 +230,17 @@ $qstr = '';
|
||||
|
||||
if (isset($_REQUEST['sca'])) {
|
||||
$sca = clean_xss_tags(trim($_REQUEST['sca']));
|
||||
if ($sca)
|
||||
if ($sca) {
|
||||
$sca = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $sca);
|
||||
$qstr .= '&sca=' . urlencode($sca);
|
||||
}
|
||||
} else {
|
||||
$sca = '';
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['sfl'])) {
|
||||
$sfl = trim($_REQUEST['sfl']);
|
||||
$sfl = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sfl);
|
||||
$sfl = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*\s]/", "", $sfl);
|
||||
if ($sfl)
|
||||
$qstr .= '&sfl=' . urlencode($sfl); // search field (검색 필드)
|
||||
} else {
|
||||
@@ -253,7 +258,7 @@ if (isset($_REQUEST['stx'])) { // search text (검색어)
|
||||
|
||||
if (isset($_REQUEST['sst'])) {
|
||||
$sst = trim($_REQUEST['sst']);
|
||||
$sst = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sst);
|
||||
$sst = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*\s]/", "", $sst);
|
||||
if ($sst)
|
||||
$qstr .= '&sst=' . urlencode($sst); // search sort (검색 정렬 필드)
|
||||
} else {
|
||||
@@ -367,7 +372,7 @@ if ($_SESSION['ss_mb_id']) { // 로그인중이라면
|
||||
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);
|
||||
// 쿠키에 저장된 키와 같다면
|
||||
$tmp_key = get_cookie('ck_auto');
|
||||
if ($tmp_key == $key && $tmp_key) {
|
||||
if ($tmp_key === $key && $tmp_key) {
|
||||
// 차단, 탈퇴가 아니고 메일인증이 사용이면서 인증을 받았다면
|
||||
if ($row['mb_intercept_date'] == '' &&
|
||||
$row['mb_leave_date'] == '' &&
|
||||
@@ -440,7 +445,7 @@ if ($is_admin != 'super') {
|
||||
break;
|
||||
}
|
||||
if (!$is_possible_ip)
|
||||
die ("접근이 가능하지 않습니다.");
|
||||
die ("<meta charset=utf-8>접근이 가능하지 않습니다.");
|
||||
}
|
||||
|
||||
// 접근차단 IP
|
||||
@@ -456,7 +461,7 @@ if ($is_admin != 'super') {
|
||||
$pat = "/^{$pattern[$i]}$/";
|
||||
$is_intercept_ip = preg_match($pat, $_SERVER['REMOTE_ADDR']);
|
||||
if ($is_intercept_ip)
|
||||
die ("접근 불가합니다.");
|
||||
die ("<meta charset=utf-8>접근 불가합니다.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -481,7 +486,7 @@ if(isset($config['cf_theme']) && trim($config['cf_theme'])) {
|
||||
|
||||
|
||||
// 테마 설정 로드
|
||||
if(is_file(G5_THEME_PATH.'/theme.config.php'))
|
||||
if(defined('G5_THEME_PATH') && is_file(G5_THEME_PATH.'/theme.config.php'))
|
||||
include_once(G5_THEME_PATH.'/theme.config.php');
|
||||
|
||||
//=====================================================================================
|
||||
|
||||
+216
-215
@@ -1,220 +1,221 @@
|
||||
<?php
|
||||
|
||||
/********************
|
||||
상수 선언
|
||||
********************/
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.1.8');
|
||||
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
|
||||
if (PHP_VERSION >= '5.1.0') {
|
||||
//if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");
|
||||
date_default_timezone_set("Asia/Seoul");
|
||||
}
|
||||
|
||||
/********************
|
||||
경로 상수
|
||||
********************/
|
||||
|
||||
/*
|
||||
보안서버 도메인
|
||||
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
|
||||
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
|
||||
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
|
||||
입력예) https://www.domain.com:443/gnuboard5
|
||||
*/
|
||||
define('G5_DOMAIN', '');
|
||||
define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
/*
|
||||
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요.
|
||||
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
|
||||
*/
|
||||
define('G5_COOKIE_DOMAIN', '');
|
||||
|
||||
define('G5_DBCONFIG_FILE', 'dbconfig.php');
|
||||
|
||||
define('G5_ADMIN_DIR', 'adm');
|
||||
define('G5_BBS_DIR', 'bbs');
|
||||
define('G5_CSS_DIR', 'css');
|
||||
define('G5_DATA_DIR', 'data');
|
||||
define('G5_EXTEND_DIR', 'extend');
|
||||
define('G5_IMG_DIR', 'img');
|
||||
define('G5_JS_DIR', 'js');
|
||||
define('G5_LIB_DIR', 'lib');
|
||||
define('G5_PLUGIN_DIR', 'plugin');
|
||||
define('G5_SKIN_DIR', 'skin');
|
||||
define('G5_CAPTCHA_DIR', 'kcaptcha');
|
||||
define('G5_EDITOR_DIR', 'editor');
|
||||
define('G5_MOBILE_DIR', 'mobile');
|
||||
define('G5_OKNAME_DIR', 'okname');
|
||||
<?php
|
||||
|
||||
define('G5_KCPCERT_DIR', 'kcpcert');
|
||||
define('G5_LGXPAY_DIR', 'lgxpay');
|
||||
/********************
|
||||
상수 선언
|
||||
********************/
|
||||
|
||||
define('G5_SNS_DIR', 'sns');
|
||||
define('G5_SYNDI_DIR', 'syndi');
|
||||
define('G5_PHPMAILER_DIR', 'PHPMailer_v2.0.4');
|
||||
define('G5_SESSION_DIR', 'session');
|
||||
define('G5_THEME_DIR', 'theme');
|
||||
|
||||
// URL 은 브라우저상에서의 경로 (도메인으로 부터의)
|
||||
if (G5_DOMAIN) {
|
||||
define('G5_URL', G5_DOMAIN);
|
||||
} else {
|
||||
if (isset($g5_path['url']))
|
||||
define('G5_URL', $g5_path['url']);
|
||||
else
|
||||
define('G5_URL', '');
|
||||
}
|
||||
|
||||
if (isset($g5_path['path'])) {
|
||||
define('G5_PATH', $g5_path['path']);
|
||||
} else {
|
||||
define('G5_PATH', '');
|
||||
}
|
||||
|
||||
define('G5_ADMIN_URL', G5_URL.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_URL', G5_URL.'/'.G5_BBS_DIR);
|
||||
define('G5_CSS_URL', G5_URL.'/'.G5_CSS_DIR);
|
||||
define('G5_DATA_URL', G5_URL.'/'.G5_DATA_DIR);
|
||||
define('G5_IMG_URL', G5_URL.'/'.G5_IMG_DIR);
|
||||
define('G5_JS_URL', G5_URL.'/'.G5_JS_DIR);
|
||||
define('G5_SKIN_URL', G5_URL.'/'.G5_SKIN_DIR);
|
||||
define('G5_PLUGIN_URL', G5_URL.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_URL', G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_URL', G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);
|
||||
define('G5_KCPCERT_URL', G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_URL', G5_PLUGIN_URL.'/'.G5_LGXPAY_DIR);
|
||||
define('G5_SNS_URL', G5_PLUGIN_URL.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_URL', G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);
|
||||
define('G5_MOBILE_URL', G5_URL.'/'.G5_MOBILE_DIR);
|
||||
|
||||
// PATH 는 서버상에서의 절대경로
|
||||
define('G5_ADMIN_PATH', G5_PATH.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_PATH', G5_PATH.'/'.G5_BBS_DIR);
|
||||
define('G5_DATA_PATH', G5_PATH.'/'.G5_DATA_DIR);
|
||||
define('G5_EXTEND_PATH', G5_PATH.'/'.G5_EXTEND_DIR);
|
||||
define('G5_LIB_PATH', G5_PATH.'/'.G5_LIB_DIR);
|
||||
define('G5_PLUGIN_PATH', G5_PATH.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR);
|
||||
define('G5_MOBILE_PATH', G5_PATH.'/'.G5_MOBILE_DIR);
|
||||
define('G5_SESSION_PATH', G5_DATA_PATH.'/'.G5_SESSION_DIR);
|
||||
define('G5_CAPTCHA_PATH', G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_PATH', G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_PATH', G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.2.9.8');
|
||||
|
||||
define('G5_KCPCERT_PATH', G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_PATH', G5_PLUGIN_PATH.'/'.G5_LGXPAY_DIR);
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
|
||||
define('G5_SNS_PATH', G5_PLUGIN_PATH.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_PATH', G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);
|
||||
define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
|
||||
//==============================================================================
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// 사용기기 설정
|
||||
// pc 설정 시 모바일 기기에서도 PC화면 보여짐
|
||||
// mobile 설정 시 PC에서도 모바일화면 보여짐
|
||||
// both 설정 시 접속 기기에 따른 화면 보여짐
|
||||
//------------------------------------------------------------------------------
|
||||
define('G5_SET_DEVICE', 'both');
|
||||
|
||||
define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
|
||||
define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
|
||||
|
||||
|
||||
/********************
|
||||
시간 상수
|
||||
********************/
|
||||
// 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요.
|
||||
// 하루는 86400 초입니다. 1시간은 3600초
|
||||
// 6시간이 빠른 경우 time() + (3600 * 6);
|
||||
// 6시간이 느린 경우 time() - (3600 * 6);
|
||||
define('G5_SERVER_TIME', time());
|
||||
define('G5_TIME_YMDHIS', date('Y-m-d H:i:s', G5_SERVER_TIME));
|
||||
define('G5_TIME_YMD', substr(G5_TIME_YMDHIS, 0, 10));
|
||||
define('G5_TIME_HIS', substr(G5_TIME_YMDHIS, 11, 8));
|
||||
|
||||
// 입력값 검사 상수 (숫자를 변경하시면 안됩니다.)
|
||||
define('G5_ALPHAUPPER', 1); // 영대문자
|
||||
define('G5_ALPHALOWER', 2); // 영소문자
|
||||
define('G5_ALPHABETIC', 4); // 영대,소문자
|
||||
define('G5_NUMERIC', 8); // 숫자
|
||||
define('G5_HANGUL', 16); // 한글
|
||||
define('G5_SPACE', 32); // 공백
|
||||
define('G5_SPECIAL', 64); // 특수문자
|
||||
|
||||
// 퍼미션
|
||||
define('G5_DIR_PERMISSION', 0755); // 디렉토리 생성시 퍼미션
|
||||
define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션
|
||||
|
||||
// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
|
||||
define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');
|
||||
|
||||
// SMTP
|
||||
// lib/mailer.lib.php 에서 사용
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
|
||||
|
||||
/********************
|
||||
기타 상수
|
||||
********************/
|
||||
|
||||
// 암호화 함수 지정
|
||||
// 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다.
|
||||
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');
|
||||
|
||||
// SQL 에러를 표시할 것인지 지정
|
||||
// 에러를 표시하려면 TRUE 로 변경
|
||||
define('G5_DISPLAY_SQL_ERROR', FALSE);
|
||||
|
||||
// escape string 처리 함수 지정
|
||||
// addslashes 로 변경 가능
|
||||
define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
|
||||
|
||||
// sql_escape_string 함수에서 사용될 패턴
|
||||
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
//define('G5_ESCAPE_REPLACE', '');
|
||||
|
||||
// 게시판에서 링크의 기본개수를 말합니다.
|
||||
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
|
||||
define('G5_LINK_COUNT', 2);
|
||||
|
||||
// 썸네일 jpg Quality 설정
|
||||
define('G5_THUMB_JPG_QUALITY', 90);
|
||||
|
||||
// 썸네일 png Compress 설정
|
||||
define('G5_THUMB_PNG_COMPRESS', 5);
|
||||
|
||||
// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
|
||||
define('G5_IS_MOBILE_DHTML_USE', false);
|
||||
|
||||
// MySQLi 사용여부를 설정합니다.
|
||||
define('G5_MYSQLI_USE', true);
|
||||
|
||||
// Browscap 사용여부를 설정합니다.
|
||||
define('G5_BROWSCAP_USE', true);
|
||||
|
||||
// 접속자 기록 때 Browscap 사용여부를 설정합니다.
|
||||
define('G5_VISIT_BROWSCAP_USE', false);
|
||||
|
||||
// ip 숨김방법 설정
|
||||
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
|
||||
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
|
||||
표시되는 부분은 \\1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
|
||||
다른 문자를 적어주시면 됩니다.
|
||||
*/
|
||||
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
|
||||
|
||||
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
|
||||
} else { //http 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
|
||||
}
|
||||
if (PHP_VERSION >= '5.1.0') {
|
||||
//if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");
|
||||
date_default_timezone_set("Asia/Seoul");
|
||||
}
|
||||
|
||||
/********************
|
||||
경로 상수
|
||||
********************/
|
||||
|
||||
/*
|
||||
보안서버 도메인
|
||||
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
|
||||
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
|
||||
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
|
||||
입력예) https://www.domain.com:443/gnuboard5
|
||||
*/
|
||||
define('G5_DOMAIN', '');
|
||||
define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
/*
|
||||
www.sir.kr 과 sir.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.kr 과 같이 입력하세요.
|
||||
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
|
||||
*/
|
||||
define('G5_COOKIE_DOMAIN', '');
|
||||
|
||||
define('G5_DBCONFIG_FILE', 'dbconfig.php');
|
||||
|
||||
define('G5_ADMIN_DIR', 'adm');
|
||||
define('G5_BBS_DIR', 'bbs');
|
||||
define('G5_CSS_DIR', 'css');
|
||||
define('G5_DATA_DIR', 'data');
|
||||
define('G5_EXTEND_DIR', 'extend');
|
||||
define('G5_IMG_DIR', 'img');
|
||||
define('G5_JS_DIR', 'js');
|
||||
define('G5_LIB_DIR', 'lib');
|
||||
define('G5_PLUGIN_DIR', 'plugin');
|
||||
define('G5_SKIN_DIR', 'skin');
|
||||
define('G5_CAPTCHA_DIR', 'kcaptcha');
|
||||
define('G5_EDITOR_DIR', 'editor');
|
||||
define('G5_MOBILE_DIR', 'mobile');
|
||||
define('G5_OKNAME_DIR', 'okname');
|
||||
|
||||
define('G5_KCPCERT_DIR', 'kcpcert');
|
||||
define('G5_LGXPAY_DIR', 'lgxpay');
|
||||
|
||||
define('G5_SNS_DIR', 'sns');
|
||||
define('G5_SYNDI_DIR', 'syndi');
|
||||
define('G5_PHPMAILER_DIR', 'PHPMailer');
|
||||
define('G5_SESSION_DIR', 'session');
|
||||
define('G5_THEME_DIR', 'theme');
|
||||
|
||||
// URL 은 브라우저상에서의 경로 (도메인으로 부터의)
|
||||
if (G5_DOMAIN) {
|
||||
define('G5_URL', G5_DOMAIN);
|
||||
} else {
|
||||
if (isset($g5_path['url']))
|
||||
define('G5_URL', $g5_path['url']);
|
||||
else
|
||||
define('G5_URL', '');
|
||||
}
|
||||
|
||||
if (isset($g5_path['path'])) {
|
||||
define('G5_PATH', $g5_path['path']);
|
||||
} else {
|
||||
define('G5_PATH', '');
|
||||
}
|
||||
|
||||
define('G5_ADMIN_URL', G5_URL.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_URL', G5_URL.'/'.G5_BBS_DIR);
|
||||
define('G5_CSS_URL', G5_URL.'/'.G5_CSS_DIR);
|
||||
define('G5_DATA_URL', G5_URL.'/'.G5_DATA_DIR);
|
||||
define('G5_IMG_URL', G5_URL.'/'.G5_IMG_DIR);
|
||||
define('G5_JS_URL', G5_URL.'/'.G5_JS_DIR);
|
||||
define('G5_SKIN_URL', G5_URL.'/'.G5_SKIN_DIR);
|
||||
define('G5_PLUGIN_URL', G5_URL.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_URL', G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_URL', G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);
|
||||
define('G5_KCPCERT_URL', G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_URL', G5_PLUGIN_URL.'/'.G5_LGXPAY_DIR);
|
||||
define('G5_SNS_URL', G5_PLUGIN_URL.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_URL', G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);
|
||||
define('G5_MOBILE_URL', G5_URL.'/'.G5_MOBILE_DIR);
|
||||
|
||||
// PATH 는 서버상에서의 절대경로
|
||||
define('G5_ADMIN_PATH', G5_PATH.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_PATH', G5_PATH.'/'.G5_BBS_DIR);
|
||||
define('G5_DATA_PATH', G5_PATH.'/'.G5_DATA_DIR);
|
||||
define('G5_EXTEND_PATH', G5_PATH.'/'.G5_EXTEND_DIR);
|
||||
define('G5_LIB_PATH', G5_PATH.'/'.G5_LIB_DIR);
|
||||
define('G5_PLUGIN_PATH', G5_PATH.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR);
|
||||
define('G5_MOBILE_PATH', G5_PATH.'/'.G5_MOBILE_DIR);
|
||||
define('G5_SESSION_PATH', G5_DATA_PATH.'/'.G5_SESSION_DIR);
|
||||
define('G5_CAPTCHA_PATH', G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_PATH', G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_PATH', G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);
|
||||
|
||||
define('G5_KCPCERT_PATH', G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_PATH', G5_PLUGIN_PATH.'/'.G5_LGXPAY_DIR);
|
||||
|
||||
define('G5_SNS_PATH', G5_PLUGIN_PATH.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_PATH', G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);
|
||||
define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
|
||||
//==============================================================================
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// 사용기기 설정
|
||||
// pc 설정 시 모바일 기기에서도 PC화면 보여짐
|
||||
// mobile 설정 시 PC에서도 모바일화면 보여짐
|
||||
// both 설정 시 접속 기기에 따른 화면 보여짐
|
||||
//------------------------------------------------------------------------------
|
||||
define('G5_SET_DEVICE', 'both');
|
||||
|
||||
define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
|
||||
define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
|
||||
|
||||
|
||||
/********************
|
||||
시간 상수
|
||||
********************/
|
||||
// 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요.
|
||||
// 하루는 86400 초입니다. 1시간은 3600초
|
||||
// 6시간이 빠른 경우 time() + (3600 * 6);
|
||||
// 6시간이 느린 경우 time() - (3600 * 6);
|
||||
define('G5_SERVER_TIME', time());
|
||||
define('G5_TIME_YMDHIS', date('Y-m-d H:i:s', G5_SERVER_TIME));
|
||||
define('G5_TIME_YMD', substr(G5_TIME_YMDHIS, 0, 10));
|
||||
define('G5_TIME_HIS', substr(G5_TIME_YMDHIS, 11, 8));
|
||||
|
||||
// 입력값 검사 상수 (숫자를 변경하시면 안됩니다.)
|
||||
define('G5_ALPHAUPPER', 1); // 영대문자
|
||||
define('G5_ALPHALOWER', 2); // 영소문자
|
||||
define('G5_ALPHABETIC', 4); // 영대,소문자
|
||||
define('G5_NUMERIC', 8); // 숫자
|
||||
define('G5_HANGUL', 16); // 한글
|
||||
define('G5_SPACE', 32); // 공백
|
||||
define('G5_SPECIAL', 64); // 특수문자
|
||||
|
||||
// 퍼미션
|
||||
define('G5_DIR_PERMISSION', 0755); // 디렉토리 생성시 퍼미션
|
||||
define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션
|
||||
|
||||
// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
|
||||
define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');
|
||||
|
||||
// SMTP
|
||||
// lib/mailer.lib.php 에서 사용
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
define('G5_SMTP_PORT', '25');
|
||||
|
||||
|
||||
/********************
|
||||
기타 상수
|
||||
********************/
|
||||
|
||||
// 암호화 함수 지정
|
||||
// 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다.
|
||||
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');
|
||||
|
||||
// SQL 에러를 표시할 것인지 지정
|
||||
// 에러를 표시하려면 TRUE 로 변경
|
||||
define('G5_DISPLAY_SQL_ERROR', FALSE);
|
||||
|
||||
// escape string 처리 함수 지정
|
||||
// addslashes 로 변경 가능
|
||||
define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
|
||||
|
||||
// sql_escape_string 함수에서 사용될 패턴
|
||||
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
//define('G5_ESCAPE_REPLACE', '');
|
||||
|
||||
// 게시판에서 링크의 기본개수를 말합니다.
|
||||
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
|
||||
define('G5_LINK_COUNT', 2);
|
||||
|
||||
// 썸네일 jpg Quality 설정
|
||||
define('G5_THUMB_JPG_QUALITY', 90);
|
||||
|
||||
// 썸네일 png Compress 설정
|
||||
define('G5_THUMB_PNG_COMPRESS', 5);
|
||||
|
||||
// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
|
||||
define('G5_IS_MOBILE_DHTML_USE', false);
|
||||
|
||||
// MySQLi 사용여부를 설정합니다.
|
||||
define('G5_MYSQLI_USE', true);
|
||||
|
||||
// Browscap 사용여부를 설정합니다.
|
||||
define('G5_BROWSCAP_USE', true);
|
||||
|
||||
// 접속자 기록 때 Browscap 사용여부를 설정합니다.
|
||||
define('G5_VISIT_BROWSCAP_USE', false);
|
||||
|
||||
// ip 숨김방법 설정
|
||||
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
|
||||
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
|
||||
표시되는 부분은 \\1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
|
||||
다른 문자를 적어주시면 됩니다.
|
||||
*/
|
||||
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
|
||||
|
||||
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
|
||||
} else { //http 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
//플러그인 폴더 이름 및 스킨 폴더 이름
|
||||
define('SMARTEDITOR_UPLOAD_IMG_CHECK', 1); // 이미지 파일을 썸네일 할수 있는지 여부를 체크합니다. ( 해당 파일이 이미지 파일인지 체크합니다. 1이면 사용, 0이면 사용 안함 )
|
||||
define('SMARTEDITOR_UPLOAD_RESIZE', 0); // 스마트에디터 업로드 이미지파일 JPG, PNG 리사이즈 1이면 사용, 0이면 사용안함
|
||||
define('SMARTEDITOR_UPLOAD_MAX_WIDTH', 1200); // 스마트에디터 업로드 이미지 리사이즈 제한 width
|
||||
define('SMARTEDITOR_UPLOAD_MAX_HEIGHT', 2800); // 스마트에디터 업로드 이미지 리사이즈 제한 height
|
||||
define('SMARTEDITOR_UPLOAD_SIZE_LIMIT', 20); // 스마트에디터 업로드 사이즈 제한 ( 기본 20MB )
|
||||
define('SMARTEDITOR_UPLOAD_IMAGE_QUALITY', 98); // 썸네일 이미지 JPG, PNG 압축률
|
||||
?>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
define('G5_JS_VER', '161020');
|
||||
define('G5_CSS_VER', '161020');
|
||||
?>
|
||||
@@ -125,6 +125,7 @@ if($is_admin != 'super')
|
||||
<p>프로그램을 실행하시려면 그누보드4의 config.php 파일 경로를 입력하신 후 확인을 클릭해 주십시오.</p>
|
||||
|
||||
<form name="fimport" method="post" action="./g4_import_run.php" onsubmit="return fimport_submit(this);">
|
||||
<input type="hidden" name="token" value="" >
|
||||
<div id="g4_import_frm">
|
||||
<label for="file_path">config.php 파일 경로</label>
|
||||
<input type="text" name="file_path" id="file_path" required class="frm_input required">
|
||||
@@ -142,6 +143,10 @@ if($is_admin != 'super')
|
||||
<script>
|
||||
function fimport_submit(f)
|
||||
{
|
||||
var token = get_write_token('g4_import');
|
||||
|
||||
f.token.value = token;
|
||||
|
||||
return confirm('그누보드4의 DB 데이터를 이전하시겠습니까?');
|
||||
}
|
||||
</script>
|
||||
|
||||
+53
-1
@@ -17,6 +17,13 @@ echo '<link rel="stylesheet" href="'.G5_URL.'/g4_import.css">';
|
||||
if(empty($_POST))
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
|
||||
if (!preg_match("/^http['s']?:\/\/".$_SERVER['HTTP_HOST']."/", $_SERVER['HTTP_REFERER'])){
|
||||
alert("제대로 된 접근이 아닌것 같습니다.", G5_URL);
|
||||
}
|
||||
|
||||
// 토큰체크
|
||||
check_write_token('g4_import');
|
||||
|
||||
if(get_session('tables_copied') == 'done')
|
||||
alert('DB 데이터 변환을 이미 실행하였습니다. 중복 실행시 오류가 발생할 수 있습니다.', G5_URL);
|
||||
|
||||
@@ -28,6 +35,8 @@ $g4_config_file = trim($_POST['file_path']);
|
||||
if(!$g4_config_file)
|
||||
alert('config.php 파일의 경로를 입력해 주십시오.');
|
||||
|
||||
$g4_config_file = preg_replace('#/config.php$#i', '', $g4_config_file).'/config.php';
|
||||
|
||||
if(!is_file($g4_config_file))
|
||||
alert('입력하신 경로에 config.php 파일이 존재하지 않습니다.');
|
||||
|
||||
@@ -163,7 +172,7 @@ document.onkeydown = noRefresh ;
|
||||
flush();
|
||||
|
||||
// g4의 confing.php
|
||||
require($g4_config_file);
|
||||
require('./'.$g4_config_file);
|
||||
|
||||
if(preg_replace('/[^a-z]/', '', strtolower($g4['charset'])) == 'euckr')
|
||||
$is_euckr = true;
|
||||
@@ -370,9 +379,52 @@ document.onkeydown = noRefresh ;
|
||||
$comma = '';
|
||||
$sql_common = '';
|
||||
|
||||
// 모바일 스킨 디렉토리
|
||||
if( ! isset($row['bo_mobile_skin']) ){
|
||||
$row['bo_mobile_skin'] = 'basic';
|
||||
}
|
||||
|
||||
// 모바일 제목 길이
|
||||
if( ! isset($row['bo_mobile_subject_len']) ){
|
||||
$row['bo_mobile_subject_len'] = '30';
|
||||
}
|
||||
|
||||
// 모바일 페이지당 목록 수
|
||||
if( ! isset($row['bo_mobile_page_rows']) ){
|
||||
$row['bo_mobile_page_rows'] = '15';
|
||||
}
|
||||
|
||||
// 갤러리 이미지 폭 ( 리스트 )
|
||||
if( ! isset($row['bo_gallery_width']) ){
|
||||
$row['bo_gallery_width'] = '174';
|
||||
}
|
||||
|
||||
// 갤러리 이미지 높이 ( 리스트 )
|
||||
if( ! isset($row['bo_gallery_height']) ){
|
||||
$row['bo_gallery_height'] = '124';
|
||||
}
|
||||
|
||||
// 모바일 갤러리 이미지 폭 ( 리스트 )
|
||||
if( ! isset($row['bo_mobile_gallery_width']) ){
|
||||
$row['bo_mobile_gallery_width'] = '125';
|
||||
}
|
||||
|
||||
// 모바일 갤러리 이미지 높이 ( 리스트 )
|
||||
if( ! isset($row['bo_mobile_gallery_height']) ){
|
||||
$row['bo_mobile_gallery_height'] = '100';
|
||||
}
|
||||
|
||||
foreach($row as $key=>$val) {
|
||||
if(!in_array($key, $columns))
|
||||
continue;
|
||||
|
||||
if($key === 'bo_notice'){
|
||||
$val = str_replace("\n", ",", $val);
|
||||
|
||||
if( substr($val, -1) === ',' ){
|
||||
$val = substr($val, 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
$sql_common .= $comma . " $key = '".addslashes($val)."' ";
|
||||
|
||||
|
||||
+9
-11
@@ -45,7 +45,7 @@ if (G5_IS_MOBILE) {
|
||||
echo '<meta name="format-detection" content="telephone=no">'.PHP_EOL;
|
||||
} else {
|
||||
echo '<meta http-equiv="imagetoolbar" content="no">'.PHP_EOL;
|
||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1">'.PHP_EOL;
|
||||
echo '<meta http-equiv="X-UA-Compatible" content="IE=Edge">'.PHP_EOL;
|
||||
}
|
||||
|
||||
if($config['cf_add_meta'])
|
||||
@@ -55,9 +55,9 @@ if($config['cf_add_meta'])
|
||||
<?php
|
||||
if (defined('G5_IS_ADMIN')) {
|
||||
if(!defined('_THEME_PREVIEW_'))
|
||||
echo '<link rel="stylesheet" href="'.G5_ADMIN_URL.'/css/admin.css">'.PHP_EOL;
|
||||
echo '<link rel="stylesheet" href="'.G5_ADMIN_URL.'/css/admin.css?ver='.G5_CSS_VER.'">'.PHP_EOL;
|
||||
} else {
|
||||
echo '<link rel="stylesheet" href="'.G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').'.css">'.PHP_EOL;
|
||||
echo '<link rel="stylesheet" href="'.G5_CSS_URL.'/'.(G5_IS_MOBILE?'mobile':'default').'.css?ver='.G5_CSS_VER.'">'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<!--[if lte IE 8]>
|
||||
@@ -74,16 +74,14 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
|
||||
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
|
||||
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
|
||||
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
|
||||
<?php
|
||||
if ($is_admin) {
|
||||
echo 'var g5_admin_url = "'.G5_ADMIN_URL.'";'.PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<?php if(defined('G5_IS_ADMIN')) { ?>
|
||||
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
|
||||
<?php } ?>
|
||||
</script>
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.menu.js"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/common.js"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/wrest.js"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.menu.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/common.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/wrest.js?ver=<?php echo G5_JS_VER; ?>"></script>
|
||||
<?php
|
||||
if(G5_IS_MOBILE) {
|
||||
echo '<script src="'.G5_JS_URL.'/modernizr.custom.70111.js"></script>'.PHP_EOL; // overflow scroll 감지
|
||||
|
||||
@@ -463,7 +463,8 @@ CREATE TABLE IF NOT EXISTS `g5_member` (
|
||||
`mb_ip` varchar(255) NOT NULL default '',
|
||||
`mb_leave_date` varchar(8) NOT NULL default '',
|
||||
`mb_intercept_date` varchar(8) NOT NULL default '',
|
||||
`mb_email_certify` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`mb_email_certify` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`mb_email_certify2` varchar(255) NOT NULL default '',
|
||||
`mb_memo` text NOT NULL,
|
||||
`mb_lost_certify` varchar(255) NOT NULL,
|
||||
`mb_mailling` tinyint(4) NOT NULL default '0',
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?php
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
include_once ('../config.php');
|
||||
$title = G5_VERSION." 라이센스 확인 1/3";
|
||||
include_once ('./install.inc.php');
|
||||
|
||||
@@ -5,6 +5,8 @@ header('Last-Modified: ' . $gmnow);
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
|
||||
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: no-cache'); // HTTP/1.0
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
|
||||
include_once ('../config.php');
|
||||
$title = G5_VERSION." 초기환경설정 2/3";
|
||||
@@ -138,6 +140,28 @@ function frm_install_submit(f)
|
||||
alert('최고관리자 E-mail 을 입력하십시오.'); f.admin_email.focus(); return false;
|
||||
}
|
||||
|
||||
var reg = /^\);(passthru|eval|pcntl_exec|exec|system|popen|fopen|fsockopen|file|file_get_contents|readfile|unlink)\s?\(\$_(get|post|request)\s?\[.*?\]\s?\)/gi;
|
||||
var reg_msg = " 에 유효하지 않는 문자가 있습니다. 다른 문자로 대체해 주세요.";
|
||||
|
||||
if( reg.test(f.mysql_host.value) ){
|
||||
alert('MySQL Host'+reg_msg); f.mysql_host.focus(); return false;
|
||||
}
|
||||
|
||||
if( reg.test(f.mysql_user.value) ){
|
||||
alert('MySQL User'+reg_msg); f.mysql_user.focus(); return false;
|
||||
}
|
||||
|
||||
if( f.mysql_pass.value && reg.test(f.mysql_pass.value) ){
|
||||
alert('MySQL PASSWORD'+reg_msg); f.mysql_pass.focus(); return false;
|
||||
}
|
||||
|
||||
if( reg.test(f.mysql_db.value) ){
|
||||
alert('MySQL DB'+reg_msg); f.mysql_db.focus(); return false;
|
||||
}
|
||||
|
||||
if( f.table_prefix.value && reg.test(f.table_prefix.value) ){
|
||||
alert('TABLE명 접두사'+reg_msg); f.table_prefix.focus(); return false;
|
||||
}
|
||||
|
||||
if(/^[a-z][a-z0-9]/i.test(f.admin_id.value) == false) {
|
||||
alert('최고관리자 회원 ID는 첫자는 반드시 영문자 그리고 영문자와 숫자로만 만드셔야 합니다.');
|
||||
|
||||
+19
-7
@@ -6,20 +6,32 @@ header('Last-Modified: ' . $gmnow);
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
|
||||
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
|
||||
header('Pragma: no-cache'); // HTTP/1.0
|
||||
@header('Content-Type: text/html; charset=utf-8');
|
||||
@header('X-Robots-Tag: noindex');
|
||||
|
||||
include_once ('../config.php');
|
||||
include_once ('../lib/common.lib.php');
|
||||
|
||||
if( ! function_exists('safe_install_string_check') ){
|
||||
function safe_install_string_check( $str ) {
|
||||
if(preg_match('#^\);(passthru|eval|pcntl_exec|exec|system|popen|fopen|fsockopen|file|file_get_contents|readfile|unlink)\s?\(\$_(get|post|request)\s?\[.*?\]\s?\)#i', $str)) {
|
||||
die("입력한 값에 안전하지 않는 문자가 포함되어 있습니다. 설치를 중단합니다.");
|
||||
}
|
||||
|
||||
return $str;
|
||||
}
|
||||
}
|
||||
|
||||
$title = G5_VERSION." 설치 완료 3/3";
|
||||
include_once ('./install.inc.php');
|
||||
|
||||
//print_r($_POST); exit;
|
||||
|
||||
$mysql_host = $_POST['mysql_host'];
|
||||
$mysql_user = $_POST['mysql_user'];
|
||||
$mysql_pass = $_POST['mysql_pass'];
|
||||
$mysql_db = $_POST['mysql_db'];
|
||||
$table_prefix= $_POST['table_prefix'];
|
||||
$mysql_host = safe_install_string_check($_POST['mysql_host']);
|
||||
$mysql_user = safe_install_string_check($_POST['mysql_user']);
|
||||
$mysql_pass = safe_install_string_check($_POST['mysql_pass']);
|
||||
$mysql_db = safe_install_string_check($_POST['mysql_db']);
|
||||
$table_prefix= safe_install_string_check($_POST['table_prefix']);
|
||||
$admin_id = $_POST['admin_id'];
|
||||
$admin_pass = $_POST['admin_pass'];
|
||||
$admin_name = $_POST['admin_name'];
|
||||
@@ -118,7 +130,7 @@ $sql = " insert into `{$table_prefix}config`
|
||||
cf_mobile_pages = '5',
|
||||
cf_link_target = '_blank',
|
||||
cf_delay_sec = '30',
|
||||
cf_filter = '18아,18놈,18새끼,18년,18뇬,18노,18것,18넘,개년,개놈,개뇬,개새,개색끼,개세끼,개세이,개쉐이,개쉑,개쉽,개시키,개자식,개좆,게색기,게색끼,광뇬,뇬,눈깔,뉘미럴,니귀미,니기미,니미,도촬,되질래,뒈져라,뒈진다,디져라,디진다,디질래,병쉰,병신,뻐큐,뻑큐,뽁큐,삐리넷,새꺄,쉬발,쉬밸,쉬팔,쉽알,스패킹,스팽,시벌,시부랄,시부럴,시부리,시불,시브랄,시팍,시팔,시펄,실밸,십8,십쌔,십창,싶알,쌉년,썅놈,쌔끼,쌩쑈,썅,써벌,썩을년,쎄꺄,쎄엑,쓰바,쓰발,쓰벌,쓰팔,씨8,씨댕,씨바,씨발,씨뱅,씨봉알,씨부랄,씨부럴,씨부렁,씨부리,씨불,씨브랄,씨빠,씨빨,씨뽀랄,씨팍,씨팔,씨펄,씹,아가리,아갈이,엄창,접년,잡놈,재랄,저주글,조까,조빠,조쟁이,조지냐,조진다,조질래,존나,존니,좀물,좁년,좃,좆,좇,쥐랄,쥐롤,쥬디,지랄,지럴,지롤,지미랄,쫍빱,凸,퍽큐,뻑큐,빠큐,ㅅㅂㄹㅁ',
|
||||
cf_filter = '18아,18놈,18새끼,18뇬,18노,18것,18넘,개년,개놈,개뇬,개새,개색끼,개세끼,개세이,개쉐이,개쉑,개쉽,개시키,개자식,개좆,게색기,게색끼,광뇬,뇬,눈깔,뉘미럴,니귀미,니기미,니미,도촬,되질래,뒈져라,뒈진다,디져라,디진다,디질래,병쉰,병신,뻐큐,뻑큐,뽁큐,삐리넷,새꺄,쉬발,쉬밸,쉬팔,쉽알,스패킹,스팽,시벌,시부랄,시부럴,시부리,시불,시브랄,시팍,시팔,시펄,실밸,십8,십쌔,십창,싶알,쌉년,썅놈,쌔끼,쌩쑈,썅,써벌,썩을년,쎄꺄,쎄엑,쓰바,쓰발,쓰벌,쓰팔,씨8,씨댕,씨바,씨발,씨뱅,씨봉알,씨부랄,씨부럴,씨부렁,씨부리,씨불,씨브랄,씨빠,씨빨,씨뽀랄,씨팍,씨팔,씨펄,씹,아가리,아갈이,엄창,접년,잡놈,재랄,저주글,조까,조빠,조쟁이,조지냐,조진다,조질래,존나,존니,좀물,좁년,좃,좆,좇,쥐랄,쥐롤,쥬디,지랄,지럴,지롤,지미랄,쫍빱,凸,퍽큐,뻑큐,빠큐,ㅅㅂㄹㅁ',
|
||||
cf_possible_ip = '',
|
||||
cf_intercept_ip = '',
|
||||
cf_analytics = '',
|
||||
@@ -275,7 +287,7 @@ fclose($f);
|
||||
// data 디렉토리 및 하위 디렉토리에서는 .htaccess .htpasswd .php .phtml .html .htm .inc .cgi .pl 파일을 실행할수 없게함.
|
||||
$f = fopen($data_path.'/.htaccess', 'w');
|
||||
$str = <<<EOD
|
||||
<FilesMatch "\.(htaccess|htpasswd|[Pp][Hh][Pp]|[Pp]?[Hh][Tt][Mm][Ll]?|[Ii][Nn][Cc]|[Cc][Gg][Ii]|[Pp][Ll])">
|
||||
<FilesMatch "\.(htaccess|htpasswd|[Pp][Hh][Pp]|[Pp][Hh][Tt]|[Pp]?[Hh][Tt][Mm][Ll]?|[Ii][Nn][Cc]|[Cc][Gg][Ii]|[Pp][Ll])">
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</FilesMatch>
|
||||
|
||||
+67
-10
@@ -13,21 +13,78 @@ function certify_win_open(type, url)
|
||||
}
|
||||
else if(type == 'kcp-hp')
|
||||
{
|
||||
var return_gubun;
|
||||
var width = 410;
|
||||
var height = 500;
|
||||
if($("input[name=veri_up_hash]").size() < 1)
|
||||
$("input[name=cert_no]").after('<input type="hidden" name="veri_up_hash" value="">');
|
||||
|
||||
var leftpos = screen.width / 2 - ( width / 2 );
|
||||
var toppos = screen.height / 2 - ( height / 2 );
|
||||
if( navigator.userAgent.indexOf("Android") > - 1 || navigator.userAgent.indexOf("iPhone") > - 1 )
|
||||
{
|
||||
var $frm = $(event.target.form);
|
||||
if($("#kcp_cert").size() < 1) {
|
||||
$frm.wrap('<div id="cert_info"></div>');
|
||||
|
||||
var winopts = "width=" + width + ", height=" + height + ", toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,resizable=no";
|
||||
var position = ",left=" + leftpos + ", top=" + toppos;
|
||||
var AUTH_POP = window.open(url,'auth_popup', winopts + position);
|
||||
$("#cert_info").append('<form name="form_temp" method="post">');
|
||||
} else {
|
||||
$("#kcp_cert").remove();
|
||||
}
|
||||
|
||||
$("#cert_info")
|
||||
.after('<iframe id="kcp_cert" name="kcp_cert" width="100%" height="700" frameborder="0" scrolling="no" style="display:none"></iframe>');
|
||||
|
||||
var temp_form = document.form_temp;
|
||||
temp_form.target = "kcp_cert";
|
||||
temp_form.action = url;
|
||||
|
||||
document.getElementById( "cert_info" ).style.display = "none";
|
||||
document.getElementById( "kcp_cert" ).style.display = "";
|
||||
|
||||
temp_form.submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
var return_gubun;
|
||||
var width = 410;
|
||||
var height = 500;
|
||||
|
||||
var leftpos = screen.width / 2 - ( width / 2 );
|
||||
var toppos = screen.height / 2 - ( height / 2 );
|
||||
|
||||
var winopts = "width=" + width + ", height=" + height + ", toolbar=no,status=no,statusbar=no,menubar=no,scrollbars=no,resizable=no";
|
||||
var position = ",left=" + leftpos + ", top=" + toppos;
|
||||
var AUTH_POP = window.open(url,'auth_popup', winopts + position);
|
||||
}
|
||||
}
|
||||
else if(type == 'lg-hp')
|
||||
{
|
||||
var popupWindow = window.open( url, "auth_popup", "left=200, top=100, width=400, height=400, scrollbar=yes" );
|
||||
popupWindow.focus();
|
||||
|
||||
if( g5_is_mobile )
|
||||
{
|
||||
var $frm = $(event.target.form),
|
||||
lgu_cert = "lgu_cert";
|
||||
|
||||
if($("#lgu_cert").size() < 1) {
|
||||
$frm.wrap('<div id="cert_info"></div>');
|
||||
|
||||
$("#cert_info").append('<form name="form_temp" method="post">');
|
||||
} else {
|
||||
$("#"+lgu_cert).remove();
|
||||
}
|
||||
|
||||
$("#cert_info")
|
||||
.after('<iframe id="'+lgu_cert+'" name="lgu_cert" width="100%" src="'+url+'" height="700" frameborder="0" scrolling="no" style="display:none"></iframe>');
|
||||
|
||||
document.getElementById( "cert_info" ).style.display = "none";
|
||||
document.getElementById( lgu_cert ).style.display = "";
|
||||
|
||||
} else {
|
||||
var width= 640;
|
||||
var height = 660;
|
||||
|
||||
var leftpos = screen.width / 2 - ( width / 2 );
|
||||
var toppos = screen.height / 2 - ( height / 2 );
|
||||
|
||||
var popupWindow = window.open( url, "auth_popup", "left=" + leftpos + ", top=" + toppos + ", width=" + width + ", height=" + height + ", scrollbar=yes" );
|
||||
popupWindow.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,8 @@ function number_format(data)
|
||||
var cutlen = 3;
|
||||
var comma = ',';
|
||||
var i;
|
||||
|
||||
data = data + '';
|
||||
|
||||
var sign = data.match(/^[\+\-]/);
|
||||
if(sign) {
|
||||
@@ -459,6 +461,7 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j
|
||||
onresize : function(size) {
|
||||
element_wrap.style.height = size.height + "px";
|
||||
},
|
||||
maxSuggestItems : g5_is_mobile ? 6 : 10,
|
||||
width : '100%',
|
||||
height : '100%'
|
||||
}).embed(element_wrap);
|
||||
@@ -494,6 +497,7 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j
|
||||
// iframe을 넣은 element를 안보이게 한다.
|
||||
element_layer.style.display = 'none';
|
||||
},
|
||||
maxSuggestItems : g5_is_mobile ? 6 : 10,
|
||||
width : '100%',
|
||||
height : '100%'
|
||||
}).embed(element_layer);
|
||||
@@ -546,6 +550,26 @@ function font_resize(id, rmv_class, add_class)
|
||||
set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain);
|
||||
}
|
||||
|
||||
/**
|
||||
* 댓글 수정 토큰
|
||||
**/
|
||||
function set_comment_token(f)
|
||||
{
|
||||
if(typeof f.token === "undefined")
|
||||
$(f).prepend('<input type="hidden" name="token" value="">');
|
||||
|
||||
$.ajax({
|
||||
url: g5_bbs_url+"/ajax.comment_token.php",
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
async: false,
|
||||
cache: false,
|
||||
success: function(data, textStatus) {
|
||||
f.token.value = data.token;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$(".win_point").click(function() {
|
||||
win_point(this.href);
|
||||
@@ -669,4 +693,58 @@ $(function(){
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function get_write_token(bo_table)
|
||||
{
|
||||
var token = "";
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: g5_bbs_url+"/write_token.php",
|
||||
data: { bo_table: bo_table },
|
||||
cache: false,
|
||||
async: false,
|
||||
dataType: "json",
|
||||
success: function(data) {
|
||||
if(data.error) {
|
||||
alert(data.error);
|
||||
if(data.url)
|
||||
document.location.href = data.url;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
token = data.token;
|
||||
}
|
||||
});
|
||||
|
||||
return token;
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {
|
||||
var f = this.form;
|
||||
|
||||
if (typeof(f.bo_table) == "undefined") {
|
||||
return;
|
||||
}
|
||||
|
||||
var bo_table = f.bo_table.value;
|
||||
var token = get_write_token(bo_table);
|
||||
|
||||
if(!token) {
|
||||
alert("토큰 정보가 올바르지 않습니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var $f = $(f);
|
||||
|
||||
if(typeof f.token === "undefined")
|
||||
$f.prepend('<input type="hidden" name="token" value="">');
|
||||
|
||||
$f.find("input[name=token]").val(token);
|
||||
|
||||
return true;
|
||||
});
|
||||
});
|
||||
@@ -258,7 +258,7 @@ class Spreadsheet_Excel_Reader
|
||||
*/
|
||||
function Spreadsheet_Excel_Reader()
|
||||
{
|
||||
$this->_ole =& new OLERead();
|
||||
$this->_ole = new OLERead();
|
||||
$this->setUTFEncoder('iconv');
|
||||
}
|
||||
|
||||
|
||||
+227
-20
@@ -153,7 +153,7 @@ function alert($msg='', $url='', $error=true, $post=false)
|
||||
global $g5, $config, $member;
|
||||
global $is_admin;
|
||||
|
||||
if (!$msg) $msg = '올바른 방법으로 이용해 주십시오.';
|
||||
$msg = $msg ? strip_tags($msg, '<br>') : '올바른 방법으로 이용해 주십시오.';
|
||||
|
||||
$header = '';
|
||||
if (isset($g5['title'])) {
|
||||
@@ -168,6 +168,8 @@ function alert($msg='', $url='', $error=true, $post=false)
|
||||
function alert_close($msg, $error=true)
|
||||
{
|
||||
global $g5;
|
||||
|
||||
$msg = strip_tags($msg, '<br>');
|
||||
|
||||
$header = '';
|
||||
if (isset($g5['title'])) {
|
||||
@@ -212,13 +214,14 @@ function url_auto_link($str)
|
||||
global $config;
|
||||
|
||||
// 140326 유창화님 제안코드로 수정
|
||||
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=461
|
||||
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=463
|
||||
// http://sir.kr/pg_lecture/461
|
||||
// http://sir.kr/pg_lecture/463
|
||||
$attr_nofollow = (function_exists('check_html_link_nofollow') && check_html_link_nofollow('url_auto_link')) ? ' rel="nofollow"' : '';
|
||||
$str = str_replace(array("<", ">", "&", """, " ", "'"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str);
|
||||
//$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</A>", $str);
|
||||
$str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str);
|
||||
$str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1<A HREF=\"http://\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str);
|
||||
$str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href=\"mailto:\\0\">\\0</a>", $str);
|
||||
$str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#!=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\" $attr_nofollow>\\2</A>", $str);
|
||||
$str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1<A HREF=\"http://\\2\" TARGET=\"{$config['cf_link_target']}\" $attr_nofollow>\\2</A>", $str);
|
||||
$str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href=\"mailto:\\0\" $attr_nofollow>\\0</a>", $str);
|
||||
$str = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t", "'"), array(" ", "<", ">", "'"), $str);
|
||||
|
||||
/*
|
||||
@@ -536,6 +539,9 @@ function conv_content($content, $html, $filter=true)
|
||||
return $content;
|
||||
}
|
||||
|
||||
function check_html_link_nofollow($type=''){
|
||||
return true;
|
||||
}
|
||||
|
||||
// http://htmlpurifier.org/
|
||||
// Standards-Compliant HTML Filtering
|
||||
@@ -559,6 +565,7 @@ function html_purifier($html)
|
||||
$safeiframe = implode('|', $domains);
|
||||
|
||||
include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');
|
||||
include_once(G5_PLUGIN_PATH.'/htmlpurifier/extend.video.php');
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
// data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다.
|
||||
$config->set('Cache.SerializerPath', G5_DATA_PATH.'/cache');
|
||||
@@ -566,8 +573,13 @@ function html_purifier($html)
|
||||
$config->set('HTML.SafeObject', false);
|
||||
$config->set('Output.FlashCompat', false);
|
||||
$config->set('HTML.SafeIframe', true);
|
||||
if( (function_exists('check_html_link_nofollow') && check_html_link_nofollow('html_purifier')) ){
|
||||
$config->set('HTML.Nofollow', true); // rel=nofollow 으로 스팸유입을 줄임
|
||||
}
|
||||
$config->set('URI.SafeIframeRegexp','%^(https?:)?//('.$safeiframe.')%');
|
||||
$config->set('Attr.AllowedFrameTargets', array('_blank'));
|
||||
//유튜브, 비메오 전체화면 가능하게 하기
|
||||
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo()));
|
||||
$purifier = new HTMLPurifier($config);
|
||||
return $purifier->purify($html);
|
||||
}
|
||||
@@ -628,7 +640,7 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op
|
||||
|
||||
// SQL Injection 방지
|
||||
// 필드값에 a-z A-Z 0-9 _ , | 이외의 값이 있다면 검색필드를 wr_subject 로 설정한다.
|
||||
$field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? $field[$k] : "wr_subject";
|
||||
$field[$k] = preg_match("/^[\w\,\|]+$/", $field[$k]) ? strtolower($field[$k]) : "wr_subject";
|
||||
|
||||
$str .= $op2;
|
||||
switch ($field[$k]) {
|
||||
@@ -712,7 +724,7 @@ function get_member($mb_id, $fields='*')
|
||||
// 제목별로 컬럼 정렬하는 QUERY STRING
|
||||
function subject_sort_link($col, $query_string='', $flag='asc')
|
||||
{
|
||||
global $sst, $sod, $sfl, $stx, $page;
|
||||
global $sst, $sod, $sfl, $stx, $page, $sca;
|
||||
|
||||
$q1 = "sst=$col";
|
||||
if ($flag == 'asc')
|
||||
@@ -744,6 +756,7 @@ function subject_sort_link($col, $query_string='', $flag='asc')
|
||||
$arr_query[] = $q2;
|
||||
$arr_query[] = 'sfl='.$sfl;
|
||||
$arr_query[] = 'stx='.$stx;
|
||||
$arr_query[] = 'sca='.$sca;
|
||||
$arr_query[] = 'page='.$page;
|
||||
$qstr = implode("&", $arr_query);
|
||||
|
||||
@@ -796,7 +809,7 @@ function get_category_option($bo_table='', $ca_name='')
|
||||
{
|
||||
global $g5, $board, $is_admin;
|
||||
|
||||
$categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 , 로 되어 있음
|
||||
$categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 | 로 되어 있음
|
||||
$str = "";
|
||||
for ($i=0; $i<count($categories); $i++) {
|
||||
$category = trim($categories[$i]);
|
||||
@@ -1200,7 +1213,8 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
|
||||
global $g5;
|
||||
global $bo_table, $sca, $is_admin, $member;
|
||||
|
||||
$email = base64_encode($email);
|
||||
$email_enc = new str_encrypt();
|
||||
$email = $email_enc->encrypt($email);
|
||||
$homepage = set_http(clean_xss_tags($homepage));
|
||||
|
||||
$name = get_text($name, 0, true);
|
||||
@@ -1209,8 +1223,8 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
|
||||
|
||||
$tmp_name = "";
|
||||
if ($mb_id) {
|
||||
//$tmp_name = "<a href=\"".G5_BBS_URL."/profile.php?mb_id=".$mb_id."\" class=\"sv_member\" title=\"$name 자기소개\" target=\"_blank\" onclick=\"return false;\">$name</a>";
|
||||
$tmp_name = '<a href="'.G5_BBS_URL.'/profile.php?mb_id='.$mb_id.'" class="sv_member" title="'.$name.' 자기소개" target="_blank" onclick="return false;">';
|
||||
//$tmp_name = "<a href=\"".G5_BBS_URL."/profile.php?mb_id=".$mb_id."\" class=\"sv_member\" title=\"$name 자기소개\" rel="nofollow" target=\"_blank\" onclick=\"return false;\">$name</a>";
|
||||
$tmp_name = '<a href="'.G5_BBS_URL.'/profile.php?mb_id='.$mb_id.'" class="sv_member" title="'.$name.' 자기소개" target="_blank" rel="nofollow" onclick="return false;">';
|
||||
|
||||
if ($config['cf_use_member_icon']) {
|
||||
$mb_dir = substr($mb_id,0,2);
|
||||
@@ -1237,7 +1251,7 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
|
||||
if(!$bo_table)
|
||||
return $name;
|
||||
|
||||
$tmp_name = '<a href="'.G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&sca='.$sca.'&sfl=wr_name,1&stx='.$name.'" title="'.$name.' 이름으로 검색" class="sv_guest" onclick="return false;">'.$name.'</a>';
|
||||
$tmp_name = '<a href="'.G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&sca='.$sca.'&sfl=wr_name,1&stx='.$name.'" title="'.$name.' 이름으로 검색" class="sv_guest" rel="nofollow" onclick="return false;">'.$name.'</a>';
|
||||
$title_mb_id = '[비회원]';
|
||||
}
|
||||
|
||||
@@ -2017,8 +2031,12 @@ function sql_real_escape_string($str, $link=null)
|
||||
|
||||
if(!$link)
|
||||
$link = $g5['connect_db'];
|
||||
|
||||
if(function_exists('mysqli_connect') && G5_MYSQLI_USE) {
|
||||
return mysqli_real_escape_string($link, $str);
|
||||
}
|
||||
|
||||
return mysqli_real_escape_string($link, $str);
|
||||
return mysql_real_escape_string($str, $link);
|
||||
}
|
||||
|
||||
function escape_trim($field)
|
||||
@@ -2129,6 +2147,10 @@ function check_device($device)
|
||||
// 게시판 최신글 캐시 파일 삭제
|
||||
function delete_cache_latest($bo_table)
|
||||
{
|
||||
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$files = glob(G5_DATA_PATH.'/cache/latest-'.$bo_table.'-*');
|
||||
if (is_array($files)) {
|
||||
foreach ($files as $filename)
|
||||
@@ -2422,6 +2444,8 @@ class html_process {
|
||||
if(!trim($link[1]))
|
||||
continue;
|
||||
|
||||
$link[1] = preg_replace('#\.css([\'\"]?>)$#i', '.css?ver='.G5_CSS_VER.'$1', $link[1]);
|
||||
|
||||
$stylesheet .= PHP_EOL.$link[1];
|
||||
}
|
||||
}
|
||||
@@ -2446,6 +2470,8 @@ class html_process {
|
||||
if(!trim($js[1]))
|
||||
continue;
|
||||
|
||||
$js[1] = preg_replace('#\.js([\'\"]?>)$#i', '.js?ver='.G5_JS_VER.'$1', $js[1]);
|
||||
|
||||
$javascript .= $php_eol.$js[1];
|
||||
$php_eol = PHP_EOL;
|
||||
}
|
||||
@@ -2463,7 +2489,10 @@ class html_process {
|
||||
<body>
|
||||
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
|
||||
*/
|
||||
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
|
||||
$nl = '';
|
||||
if($javascript)
|
||||
$nl = "\n";
|
||||
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript{$nl}$1", $buffer);
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
@@ -2657,7 +2686,10 @@ if (!function_exists("get_sock")) {
|
||||
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
|
||||
if (!$fp)
|
||||
{
|
||||
die("$errstr ($errno)\n");
|
||||
//die("$errstr ($errno)\n");
|
||||
|
||||
echo "$errstr ($errno)\n";
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2920,9 +2952,13 @@ function replace_filename($name)
|
||||
@session_start();
|
||||
$ss_id = session_id();
|
||||
$usec = get_microtime();
|
||||
$ext = array_pop(explode('.', $name));
|
||||
$file_path = pathinfo($name);
|
||||
$ext = $file_path['extension'];
|
||||
$return_filename = sha1($ss_id.$_SERVER['REMOTE_ADDR'].$usec);
|
||||
if( $ext )
|
||||
$return_filename .= '.'.$ext;
|
||||
|
||||
return sha1($ss_id.$_SERVER['REMOTE_ADDR'].$usec).'.'.$ext;
|
||||
return $return_filename;
|
||||
}
|
||||
|
||||
// 아이코드 사용자정보
|
||||
@@ -2979,10 +3015,32 @@ function check_url_host($url, $msg='', $return_url=G5_URL)
|
||||
|
||||
$p = @parse_url($url);
|
||||
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
|
||||
$is_host_check = false;
|
||||
|
||||
if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host'])) {
|
||||
if(stripos($url, 'http:') !== false) {
|
||||
if(!isset($p['scheme']) || !$p['scheme'] || !isset($p['host']) || !$p['host'])
|
||||
alert('url 정보가 올바르지 않습니다.', $return_url);
|
||||
}
|
||||
|
||||
//php 5.6.29 이하 버전에서는 parse_url 버그가 존재함
|
||||
if ( (isset($p['host']) && $p['host']) && version_compare(PHP_VERSION, '5.6.29') < 0) {
|
||||
$bool_ch = false;
|
||||
foreach( array('user','host') as $key) {
|
||||
if ( isset( $p[ $key ] ) && strpbrk( $p[ $key ], ':/?#@' ) ) {
|
||||
$bool_ch = true;
|
||||
}
|
||||
}
|
||||
if( $bool_ch ){
|
||||
$regex = '/https?\:\/\/'.$host.'/i';
|
||||
if( ! preg_match($regex, $url) ){
|
||||
$is_host_check = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host']) || $is_host_check) {
|
||||
//if ($p['host'].(isset($p['port']) ? ':'.$p['port'] : '') != $_SERVER['HTTP_HOST']) {
|
||||
if ($p['host'] != $host) {
|
||||
if ( ($p['host'] != $host) || $is_host_check ) {
|
||||
echo '<script>'.PHP_EOL;
|
||||
echo 'alert("url에 타 도메인을 지정할 수 없습니다.");'.PHP_EOL;
|
||||
echo 'document.location.href = "'.$return_url.'";'.PHP_EOL;
|
||||
@@ -3173,4 +3231,153 @@ function check_vaild_callback($callback){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// 문자열 암복호화
|
||||
class str_encrypt
|
||||
{
|
||||
var $salt;
|
||||
var $lenght;
|
||||
|
||||
function __construct($salt='')
|
||||
{
|
||||
if(!$salt)
|
||||
$this->salt = md5(preg_replace('/[^0-9A-Za-z]/', substr(G5_MYSQL_USER, -1), G5_MYSQL_PASSWORD));
|
||||
else
|
||||
$this->salt = $salt;
|
||||
|
||||
$this->length = strlen($this->salt);
|
||||
}
|
||||
|
||||
function encrypt($str)
|
||||
{
|
||||
$length = strlen($str);
|
||||
$result = '';
|
||||
|
||||
for($i=0; $i<$length; $i++) {
|
||||
$char = substr($str, $i, 1);
|
||||
$keychar = substr($this->salt, ($i % $this->length) - 1, 1);
|
||||
$char = chr(ord($char) + ord($keychar));
|
||||
$result .= $char;
|
||||
}
|
||||
|
||||
return base64_encode($result);
|
||||
}
|
||||
|
||||
function decrypt($str) {
|
||||
$result = '';
|
||||
$str = base64_decode($str);
|
||||
$length = strlen($str);
|
||||
|
||||
for($i=0; $i<$length; $i++) {
|
||||
$char = substr($str, $i, 1);
|
||||
$keychar = substr($this->salt, ($i % $this->length) - 1, 1);
|
||||
$char = chr(ord($char) - ord($keychar));
|
||||
$result .= $char;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
|
||||
function get_write_token($bo_table)
|
||||
{
|
||||
$token = md5(uniqid(rand(), true));
|
||||
set_session('ss_write_'.$bo_table.'_token', $token);
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
|
||||
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
|
||||
function check_write_token($bo_table)
|
||||
{
|
||||
if(!$bo_table)
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
|
||||
$token = get_session('ss_write_'.$bo_table.'_token');
|
||||
set_session('ss_write_'.$bo_table.'_token', '');
|
||||
|
||||
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
|
||||
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function get_call_func_cache($func, $args=array()){
|
||||
|
||||
static $cache = array();
|
||||
|
||||
$key = md5(serialize($args));
|
||||
|
||||
if( isset($cache[$func]) && isset($cache[$func][$key]) ){
|
||||
return $cache[$func][$key];
|
||||
}
|
||||
|
||||
$result = null;
|
||||
|
||||
try{
|
||||
$cache[$func][$key] = $result = call_user_func_array($func, $args);
|
||||
} catch (Exception $e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
// include 하는 경로에 data file 경로가 포함되어 있는지 체크합니다.
|
||||
function is_include_path_check($path='', $is_input='')
|
||||
{
|
||||
if( $path ){
|
||||
if ($is_input){
|
||||
try {
|
||||
// whether $path is unix or not
|
||||
$unipath = strlen($path)==0 || $path{0}!='/';
|
||||
$unc = substr($path,0,2)=='\\\\'?true:false;
|
||||
// attempts to detect if path is relative in which case, add cwd
|
||||
if(strpos($path,':') === false && $unipath && !$unc){
|
||||
$path=getcwd().DIRECTORY_SEPARATOR.$path;
|
||||
if($path{0}=='/'){
|
||||
$unipath = false;
|
||||
}
|
||||
}
|
||||
|
||||
// resolve path parts (single dot, double dot and double delimiters)
|
||||
$path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path);
|
||||
$parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen');
|
||||
$absolutes = array();
|
||||
foreach ($parts as $part) {
|
||||
if ('.' == $part){
|
||||
continue;
|
||||
}
|
||||
if ('..' == $part) {
|
||||
array_pop($absolutes);
|
||||
} else {
|
||||
$absolutes[] = $part;
|
||||
}
|
||||
}
|
||||
$path = implode(DIRECTORY_SEPARATOR, $absolutes);
|
||||
// resolve any symlinks
|
||||
// put initial separator that could have been lost
|
||||
$path = !$unipath ? '/'.$path : $path;
|
||||
$path = $unc ? '\\\\'.$path : $path;
|
||||
} catch (Exception $e) {
|
||||
//echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if( preg_match('/\/data\/(file|editor)\/[A-Za-z0-9_]{1,20}\//', $path) ){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$extension = pathinfo($path, PATHINFO_EXTENSION);
|
||||
|
||||
if($extension && preg_match('/(jpg|jpeg|png|gif|bmp|conf)$/', $extension)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
?>
|
||||
+1
-1
@@ -66,7 +66,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
|
||||
|
||||
if($cache_fwrite) {
|
||||
$handle = fopen($cache_file, 'w');
|
||||
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".$bo_subject."';\n\$list=".var_export($list, true)."?>";
|
||||
$cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".sql_escape_string($bo_subject)."';\n\$list=".var_export($list, true)."?>";
|
||||
fwrite($handle, $cache_content);
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
+10
-364
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
include_once(G5_PHPMAILER_PATH.'/class.phpmailer.php');
|
||||
include_once(G5_PHPMAILER_PATH.'/PHPMailerAutoload.php');
|
||||
|
||||
// 메일 보내기 (파일 여러개 첨부 가능)
|
||||
// type : text=0, html=1, text+html=2
|
||||
@@ -20,24 +20,27 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc=
|
||||
if (defined('G5_SMTP') && G5_SMTP) {
|
||||
$mail->IsSMTP(); // telling the class to use SMTP
|
||||
$mail->Host = G5_SMTP; // SMTP server
|
||||
if(defined('G5_SMTP_PORT') && G5_SMTP_PORT)
|
||||
$mail->Port = G5_SMTP_PORT;
|
||||
}
|
||||
$mail->CharSet = 'UTF-8';
|
||||
$mail->From = $fmail;
|
||||
$mail->FromName = $fname;
|
||||
$mail->Subject = $subject;
|
||||
$mail->AltBody = ""; // optional, comment out and test
|
||||
$mail->MsgHTML($content);
|
||||
$mail->AddAddress($to);
|
||||
$mail->msgHTML($content);
|
||||
$mail->addAddress($to);
|
||||
if ($cc)
|
||||
$mail->AddCC($cc);
|
||||
$mail->addCC($cc);
|
||||
if ($bcc)
|
||||
$mail->AddBCC($bcc);
|
||||
$mail->addBCC($bcc);
|
||||
//print_r2($file); exit;
|
||||
if ($file != "") {
|
||||
foreach ($file as $f) {
|
||||
$mail->AddAttachment($f['path'], $f['name']);
|
||||
$mail->addAttachment($f['path'], $f['name']);
|
||||
}
|
||||
}
|
||||
return $mail->Send();
|
||||
return $mail->send();
|
||||
}
|
||||
|
||||
// 파일을 첨부함
|
||||
@@ -46,364 +49,7 @@ function attach_file($filename, $tmp_name)
|
||||
// 서버에 업로드 되는 파일은 확장자를 주지 않는다. (보안 취약점)
|
||||
$dest_file = G5_DATA_PATH.'/tmp/'.str_replace('/', '_', $tmp_name);
|
||||
move_uploaded_file($tmp_name, $dest_file);
|
||||
/*
|
||||
$fp = fopen($tmp_name, "r");
|
||||
$tmpfile = array(
|
||||
"name" => $filename,
|
||||
"tmp_name" => $tmp_name,
|
||||
"data" => fread($fp, filesize($tmp_name)));
|
||||
fclose($fp);
|
||||
*/
|
||||
$tmpfile = array("name" => $filename, "path" => $dest_file);
|
||||
return $tmpfile;
|
||||
}
|
||||
|
||||
/*
|
||||
// 메일 보내기 (파일 여러개 첨부 가능)
|
||||
// type : text=0, html=1, text+html=2
|
||||
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
|
||||
{
|
||||
global $config;
|
||||
global $g5;
|
||||
|
||||
// 메일발송 사용을 하지 않는다면
|
||||
if (!$config['cf_email_use']) return;
|
||||
|
||||
$boundary = uniqid(time());
|
||||
|
||||
$header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
|
||||
"From:=?utf-8?B?".base64_encode($fname)."?=<$fmail>\r\n";
|
||||
if ($cc) $header .= "Cc: $cc\n";
|
||||
if ($bcc) $header .= "Bcc: $bcc\n";
|
||||
$header .= "MIME-Version: 1.0\n";
|
||||
$header .= "X-Mailer: SIR Mailer 0.94 : {$_SERVER['SERVER_ADDR']} : {$_SERVER['REMOTE_ADDR']} : ".G5_URL." : {$_SERVER['SCRIPT_NAME']} : {$_SERVER['HTTP_REFERER']} \n";
|
||||
$header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
|
||||
"To: $to\r\n".
|
||||
"Subject: =?utf-8?B?".base64_encode($subject)."?=\r\n";
|
||||
|
||||
if ($file == "") {
|
||||
$header .= "Content-Type: MULTIPART/ALTERNATIVE;\n".
|
||||
" BOUNDARY=\"$boundary\"\n\n";
|
||||
} else {
|
||||
$header .= "Content-Type: MULTIPART/MIXED;\n".
|
||||
" BOUNDARY=\"$boundary\"\n\n";
|
||||
}
|
||||
|
||||
if ($type == 2)
|
||||
$content = nl2br($content);
|
||||
|
||||
$strip_content = stripslashes(trim($content));
|
||||
$encode_content = chunk_split(base64_encode($strip_content));
|
||||
|
||||
$body = "";
|
||||
$body .= "\n--$boundary\n";
|
||||
$body .= "Content-Type: TEXT/PLAIN; charset=utf-8\n";
|
||||
$body .= "Content-Transfer-Encoding: BASE64\n\n";
|
||||
$body .= $encode_content;
|
||||
$body .= "\n--$boundary\n";
|
||||
|
||||
if ($type) {
|
||||
$body .= "Content-Type: TEXT/HTML; charset=utf-8\n";
|
||||
$body .= "Content-Transfer-Encoding: BASE64\n\n";
|
||||
$body .= $encode_content;
|
||||
$body .= "\n--$boundary\n";
|
||||
}
|
||||
|
||||
if ($file != "") {
|
||||
foreach ($file as $f) {
|
||||
$body .= "n--$boundary\n";
|
||||
$body .= "Content-Type: APPLICATION/OCTET-STREAM; name=$fname\n";
|
||||
$body .= "Content-Transfer-Encoding: BASE64\n";
|
||||
$body .= "Content-Disposition: inline; filename=$fname\n";
|
||||
|
||||
$body .= "\n";
|
||||
$body .= chunk_split(base64_encode($f['data']));
|
||||
$body .= "\n";
|
||||
}
|
||||
$body .= "--$boundary--\n";
|
||||
}
|
||||
|
||||
$mails['to'] = $to;
|
||||
$mails['from'] = $fmail;
|
||||
$mails['text'] = $header.$body;
|
||||
|
||||
if (defined(G5_SMTP)) {
|
||||
ini_set('SMTP', G5_SMTP);
|
||||
@mail($to, $subject, $body, $header, "-f $fmail");
|
||||
} else {
|
||||
new maildaemon($mails);
|
||||
}
|
||||
}
|
||||
|
||||
// 파일 첨부시
|
||||
$fp = fopen(__FILE__, "r");
|
||||
$file[] = array(
|
||||
"name"=>basename(__FILE__),
|
||||
"data"=>fread($fp, filesize(__FILE__)));
|
||||
fclose($fp);
|
||||
|
||||
// 메일 유효성 검사
|
||||
// core PHP Programming 책 참고
|
||||
// hanmail.net , hotmail.com , kebi.com 등이 정상적이지 않음으로 사용 불가
|
||||
function verify_email($address, &$error)
|
||||
{
|
||||
global $g5;
|
||||
|
||||
$WAIT_SECOND = 3; // ?초 기다림
|
||||
|
||||
list($user, $domain) = explode("@", $address);
|
||||
|
||||
// 도메인에 메일 교환기가 존재하는지 검사
|
||||
if (checkdnsrr($domain, "MX")) {
|
||||
// 메일 교환기 레코드들을 얻는다
|
||||
if (!getmxrr($domain, $mxhost, $mxweight)) {
|
||||
$error = '메일 교환기를 회수할 수 없음';
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// 메일 교환기가 없으면, 도메인 자체가 편지를 받는 것으로 간주
|
||||
$mxhost[] = $domain;
|
||||
$mxweight[] = 1;
|
||||
}
|
||||
|
||||
// 메일 교환기 호스트의 배열을 만든다.
|
||||
for ($i=0; $i<count($mxhost); $i++)
|
||||
$weighted_host[($mxweight[$i])] = $mxhost[$i];
|
||||
ksort($weighted_host);
|
||||
|
||||
// 각 호스트를 검사
|
||||
foreach($weighted_host as $host) {
|
||||
// 호스트의 SMTP 포트에 연결
|
||||
if (!($fp = @fsockopen($host, 25))) continue;
|
||||
|
||||
// 220 메세지들은 건너뜀
|
||||
// 3초가 지나도 응답이 없으면 포기
|
||||
socket_set_blocking($fp, false);
|
||||
$stoptime = G5_SERVER_TIME + $WAIT_SECOND;
|
||||
$gotresponse = false;
|
||||
|
||||
while (true) {
|
||||
// 메일서버로부터 한줄 얻음
|
||||
$line = fgets($fp, 1024);
|
||||
|
||||
if (substr($line, 0, 3) == '220') {
|
||||
// 타이머를 초기화
|
||||
$stoptime = G5_SERVER_TIME + $WAIT_SECOND;
|
||||
$gotresponse = true;
|
||||
} else if ($line == '' && $gotresponse)
|
||||
break;
|
||||
else if (G5_SERVER_TIME > $stoptime)
|
||||
break;
|
||||
}
|
||||
|
||||
// 이 호스트는 응답이 없음. 다음 호스트로 넘어간다
|
||||
if (!$gotresponse) continue;
|
||||
|
||||
socket_set_blocking($fp, true);
|
||||
|
||||
// SMTP 서버와의 대화를 시작
|
||||
fputs($fp, "HELO {$_SERVER['SERVER_NAME']}\r\n");
|
||||
echo "HELO {$_SERVER['SERVER_NAME']}\r\n";
|
||||
fgets($fp, 1024);
|
||||
|
||||
// From을 설정
|
||||
fputs($fp, "MAIL FROM: <info@$domain>\r\n");
|
||||
echo "MAIL FROM: <info@$domain>\r\n";
|
||||
fgets($fp, 1024);
|
||||
|
||||
// 주소를 시도
|
||||
fputs($fp, "RCPT TO: <$address>\r\n");
|
||||
echo "RCPT TO: <$address>\r\n";
|
||||
$line = fgets($fp, 1024);
|
||||
|
||||
// 연결을 닫음
|
||||
fputs($fp, "QUIT\r\n");
|
||||
fclose($fp);
|
||||
|
||||
if (substr($line, 0, 3) != '250') {
|
||||
// SMTP 서버가 이 주소를 인식하지 못하므로 잘못된 주소임
|
||||
$error = $line;
|
||||
return false;
|
||||
} else
|
||||
// 주소를 인식했음
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
$error = '메일 교환기에 도달하지 못하였습니다.';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
# jsboard 의 메일보내기 class를 추가합니다. 130808
|
||||
# http://kldp.net/projects/jsboard/
|
||||
|
||||
# mail 보내기 함수 2001.11.30 김정균
|
||||
# $Id: include/sendmail.php,v 1.4 2009/11/19 05:29:51 oops Exp $
|
||||
|
||||
# 서버상의 smtp daemon 에 의존하지 않고 직접 발송하는 smtp class
|
||||
#
|
||||
# 특정 배열로 class 에 전달을 하여 메일을 발송한다. 배열은 아래을 참조한다.
|
||||
#
|
||||
# debug -> debug 를 할지 안할지를 결정한다.
|
||||
# ofhtml -> 웹상에서 사용할지 쉘상에서 사용할지를 결정한다.
|
||||
# from -> 메일을 발송하는 사람의 메일주소
|
||||
# to -> 메일을 받을 사람의 메일 주소
|
||||
# text -> 헤더 내용을 포함한 메일 본문
|
||||
#
|
||||
class maildaemon {
|
||||
var $failed = 0;
|
||||
|
||||
function __construct($v) {
|
||||
$this->debug = $v['debug'];
|
||||
$this->ofhtml = $v['ofhtml'];
|
||||
if($_SERVER['SERVER_NAME']) $this->helo = $_SERVER['SERVER_NAME'];
|
||||
if(!$this->helo || preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i",$this->helo))
|
||||
$this->helo = "JSBoardMessage";
|
||||
|
||||
$this->from = $v['from'];
|
||||
$this->to = $v['to'];
|
||||
$this->body = $v['text']."\r\n.";
|
||||
|
||||
//die($v['text']);
|
||||
$this->newline = $this->ofhtml ? "<br>\n" : "\n";
|
||||
|
||||
$this->mx = $this->getMX($this->to);
|
||||
|
||||
if($this->debug) {
|
||||
echo "DEBUG: ".$this->mx." start".$this->newline;
|
||||
echo "################################################################".$this->newline;
|
||||
}
|
||||
$this->sockets("open");
|
||||
$this->send("HELO ".$this->helo);
|
||||
$this->send("MAIL FROM: <".$this->from.">");
|
||||
$this->send("RCPT TO: <".$this->to.">");
|
||||
$this->send("data");
|
||||
$this->send($this->body);
|
||||
$this->send("quit");
|
||||
$this->sockets("close");
|
||||
}
|
||||
|
||||
function getMX($email) {
|
||||
$dev = explode("@",$email);
|
||||
$account = $dev[0];
|
||||
$host = $dev[1];
|
||||
|
||||
if(checkdnsrr($host,"MX") && getmxrr($host,$mx,$weight)) {
|
||||
$idx = 0;
|
||||
for($i=0;$i<sizeof($mx);$i++) {
|
||||
$dest = $dest ? $dest : $weight[$i];
|
||||
if($dest > $weight[$i]) {
|
||||
$dest = $weight[$i];
|
||||
$idx = $i;
|
||||
}
|
||||
}
|
||||
} else return $host;
|
||||
return $mx[$idx];
|
||||
}
|
||||
|
||||
# 디버그 함수
|
||||
# $t -> 1 (debug of socket open,close)
|
||||
# 0 (regular smtp message)
|
||||
# $p -> 1 (print detail debug)
|
||||
#
|
||||
# return 1 -> success
|
||||
# return 0 -> failed
|
||||
#
|
||||
function debug($str,$t=0,$p=0) {
|
||||
if($t) {
|
||||
if(!$str) $this->failed = 1;
|
||||
if($this->sock) $returnmsg = trim(fgets($this->sock,1024));
|
||||
} else {
|
||||
if(!preg_match("/^(220|221|250|251|354)$/",substr(trim($str),0,3)))
|
||||
$this->failed = 1;
|
||||
}
|
||||
|
||||
# DEBUG mode -> 모든 메세지 출력
|
||||
if($p) {
|
||||
if($t) {
|
||||
$str = "Conncet ".$this->mx;
|
||||
$str .= $this->failed ? " Failed" : " Success";
|
||||
$str .= $this->newline."DEBUG: $returnmsg";
|
||||
}
|
||||
echo "DEBUG: $str".$this->newline;
|
||||
}
|
||||
|
||||
# DEBUG 모드가 아닐때, 에러 메세지 출력
|
||||
if(!$p && $this->failed) {
|
||||
if($this->ofhtml) echo "<SCRIPT>\nalert('$str')\n</SCRIPT>\n";
|
||||
else "ERROR: $str\n";
|
||||
}
|
||||
}
|
||||
|
||||
function sockets($option=0) {
|
||||
switch($option) {
|
||||
case "open" :
|
||||
$this->sock = @fsockopen($this->mx,25,$this->errno,$this->errstr,30);
|
||||
$this->debug($this->sock,1,$this->debug);
|
||||
break;
|
||||
default :
|
||||
if($this->sock) fclose($this->sock);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function send($str,$chk=0) {
|
||||
if(!$this->failed) {
|
||||
if($this->debug) {
|
||||
if(preg_match("/\r\n/",trim($str)))
|
||||
$str_debug = trim(str_replace("\r\n","\r\n ",$str));
|
||||
else $str_debug = $str;
|
||||
}
|
||||
fputs($this->sock,"$str\r\n");
|
||||
$recv = trim(fgets($this->sock,1024));
|
||||
$recvchk = $recv;
|
||||
$this->debug($recv,0,$this->debug);
|
||||
|
||||
if(preg_match("/Mail From:/i",$str) && preg_match("/exist|require|error/i",$recvchk) && !$chk) {
|
||||
$this->failed = 0;
|
||||
$this->send("MAIL FROM: <".$this->to.">",1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function generate_mail_id($uid) {
|
||||
$id = date("YmdHis",time());
|
||||
mt_srand((float) microtime() * 1000000);
|
||||
$randval = mt_rand();
|
||||
$id .= $randval."@$uid";
|
||||
return $id;
|
||||
}
|
||||
|
||||
|
||||
function mail_header($to,$from,$title,$mta=0) {
|
||||
global $langs,$boundary;
|
||||
|
||||
# mail header 를 작성
|
||||
$boundary = get_boundary_msg();
|
||||
$header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
|
||||
"From:=?utf-8?B?".base64_encode('보내는사람')."?=<$from>\r\n".
|
||||
"MIME-Version: 1.0\r\n";
|
||||
|
||||
if(!$mta) $header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
|
||||
"To: $to\r\n".
|
||||
"Subject: $title\r\n";
|
||||
|
||||
$header .= "Content-Type: multipart/alternative;\r\n".
|
||||
" boundary=\"$boundary\"\r\n\r\n";
|
||||
|
||||
return $header;
|
||||
}
|
||||
|
||||
|
||||
function get_boundary_msg() {
|
||||
$uniqchr = uniqid("");
|
||||
$one = strtoupper($uniqchr[0]);
|
||||
$two = strtoupper(substr($uniqchr,0,8));
|
||||
$three = strtoupper(substr(strrev($uniqchr),0,8));
|
||||
return "----=_NextPart_000_000${one}_${two}.${three}";
|
||||
}
|
||||
*/
|
||||
?>
|
||||
+67
-23
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit;
|
||||
@ini_set('memory_limit', '-1');
|
||||
|
||||
// 게시글리스트 썸네일 생성
|
||||
function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_create=false, $is_crop=true, $crop_mode='center', $is_sharpen=false, $um_value='80/0.5/3')
|
||||
function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_create=false, $is_crop=false, $crop_mode='center', $is_sharpen=false, $um_value='80/0.5/3')
|
||||
{
|
||||
global $g5, $config;
|
||||
$filename = $alt = "";
|
||||
@@ -238,10 +238,10 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
$degree = 0;
|
||||
|
||||
if ($size[2] == 1) {
|
||||
$src = imagecreatefromgif($source_file);
|
||||
$src_transparency = imagecolortransparent($src);
|
||||
$src = @imagecreatefromgif($source_file);
|
||||
$src_transparency = @imagecolortransparent($src);
|
||||
} else if ($size[2] == 2) {
|
||||
$src = imagecreatefromjpeg($source_file);
|
||||
$src = @imagecreatefromjpeg($source_file);
|
||||
|
||||
if(function_exists('exif_read_data')) {
|
||||
// exif 정보를 기준으로 회전각도 구함
|
||||
@@ -273,8 +273,8 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
}
|
||||
} else if ($size[2] == 3) {
|
||||
$src = imagecreatefrompng($source_file);
|
||||
imagealphablending($src, true);
|
||||
$src = @imagecreatefrompng($source_file);
|
||||
@imagealphablending($src, true);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@@ -284,6 +284,7 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
|
||||
$is_large = true;
|
||||
// width, height 설정
|
||||
|
||||
if($thumb_width) {
|
||||
if(!$thumb_height) {
|
||||
$thumb_height = round(($thumb_width * $size[1]) / $size[0]);
|
||||
@@ -330,20 +331,51 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$dst = imagecreatetruecolor($dst_w, $dst_h);
|
||||
$dst = imagecreatetruecolor($dst_w, $dst_h);
|
||||
|
||||
if($size[2] == 3) {
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
$current_transparent = imagecolorallocate($dst, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
|
||||
imagefill($dst, 0, 0, $current_transparent);
|
||||
imagecolortransparent($dst, $current_transparent);
|
||||
if($size[2] == 3) {
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
$current_transparent = imagecolorallocate($dst, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
|
||||
imagefill($dst, 0, 0, $current_transparent);
|
||||
imagecolortransparent($dst, $current_transparent);
|
||||
}
|
||||
}
|
||||
} else { // 비율에 맞게 생성
|
||||
$dst = imagecreatetruecolor($dst_w, $dst_h);
|
||||
$bgcolor = imagecolorallocate($dst, 255, 255, 255); // 배경색
|
||||
if($src_w > $src_h) {
|
||||
$tmp_h = round(($dst_w * $src_h) / $src_w);
|
||||
$dst_y = round(($dst_h - $tmp_h) / 2);
|
||||
$dst_h = $tmp_h;
|
||||
} else {
|
||||
$tmp_w = round(($dst_h * $src_w) / $src_h);
|
||||
$dst_x = round(($dst_w - $tmp_w) / 2);
|
||||
$dst_w = $tmp_w;
|
||||
}
|
||||
|
||||
if($size[2] == 3) {
|
||||
$bgcolor = imagecolorallocatealpha($dst, 0, 0, 0, 127);
|
||||
imagefill($dst, 0, 0, $bgcolor);
|
||||
imagealphablending($dst, false);
|
||||
imagesavealpha($dst, true);
|
||||
} else if($size[2] == 1) {
|
||||
$palletsize = imagecolorstotal($src);
|
||||
if($src_transparency >= 0 && $src_transparency < $palletsize) {
|
||||
$transparent_color = imagecolorsforindex($src, $src_transparency);
|
||||
$current_transparent = imagecolorallocate($dst, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
|
||||
imagefill($dst, 0, 0, $current_transparent);
|
||||
imagecolortransparent($dst, $current_transparent);
|
||||
} else {
|
||||
imagefill($dst, 0, 0, $bgcolor);
|
||||
}
|
||||
} else {
|
||||
imagefill($dst, 0, 0, $bgcolor);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -352,8 +384,14 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
|
||||
if($src_w < $dst_w) {
|
||||
if($src_h >= $dst_h) {
|
||||
$dst_x = round(($dst_w - $src_w) / 2);
|
||||
$src_h = $dst_h;
|
||||
if( $src_h > $src_w ){
|
||||
$tmp_w = round(($dst_h * $src_w) / $src_h);
|
||||
$dst_x = round(($dst_w - $tmp_w) / 2);
|
||||
$dst_w = $tmp_w;
|
||||
} else {
|
||||
$dst_x = round(($dst_w - $src_w) / 2);
|
||||
$src_h = $dst_h;
|
||||
}
|
||||
} else {
|
||||
$dst_x = round(($dst_w - $src_w) / 2);
|
||||
$dst_y = round(($dst_h - $src_h) / 2);
|
||||
@@ -362,9 +400,15 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
|
||||
}
|
||||
} else {
|
||||
if($src_h < $dst_h) {
|
||||
$dst_y = round(($dst_h - $src_h) / 2);
|
||||
$dst_h = $src_h;
|
||||
$src_w = $dst_w;
|
||||
if( $src_w > $dst_w ){
|
||||
$tmp_h = round(($dst_w * $src_h) / $src_w);
|
||||
$dst_y = round(($dst_h - $tmp_h) / 2);
|
||||
$dst_h = $tmp_h;
|
||||
} else {
|
||||
$dst_y = round(($dst_h - $src_h) / 2);
|
||||
$dst_h = $src_h;
|
||||
$src_w = $dst_w;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user