Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
c0a2a13efe | ||
|
|
35c2bac898 | ||
|
|
fb3f11a93f | ||
|
|
8629b0418d | ||
|
|
af4e5ae9de | ||
|
|
1f951556fc | ||
|
|
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);
|
||||
}
|
||||
?>
|
||||
+11
-2
@@ -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 |
@@ -1,4 +1,4 @@
|
||||
<?
|
||||
<?php
|
||||
$sub_menu = "200100";
|
||||
include_once("./_common.php");
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
+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,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');
|
||||
}
|
||||
?>
|
||||
+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 } ?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
+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++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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('한번에 한사람에게만 메일을 발송할 수 있습니다.');
|
||||
|
||||
+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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ if ($is_guest)
|
||||
$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';
|
||||
|
||||
+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
@@ -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()) {
|
||||
|
||||
@@ -29,6 +29,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');
|
||||
|
||||
+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);
|
||||
|
||||
+28
-9
@@ -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);
|
||||
@@ -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'=>'')));
|
||||
?>
|
||||
+39
-5
@@ -3,6 +3,9 @@ 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();
|
||||
@@ -15,7 +18,12 @@ if($board['bo_use_category']) {
|
||||
$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 = '';
|
||||
@@ -77,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';
|
||||
@@ -88,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 = '';
|
||||
@@ -402,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);
|
||||
@@ -607,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];
|
||||
@@ -658,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);
|
||||
?>
|
||||
|
||||
+13
-9
@@ -32,13 +32,15 @@ function g5_path()
|
||||
$result['path'] = str_replace('\\', '/', 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;
|
||||
}
|
||||
@@ -227,15 +229,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 +257,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 +371,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 +444,7 @@ if ($is_admin != 'super') {
|
||||
break;
|
||||
}
|
||||
if (!$is_possible_ip)
|
||||
die ("접근이 가능하지 않습니다.");
|
||||
die ("<meta charset=utf-8>접근이 가능하지 않습니다.");
|
||||
}
|
||||
|
||||
// 접근차단 IP
|
||||
@@ -456,7 +460,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>접근 불가합니다.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-4
@@ -5,7 +5,7 @@
|
||||
********************/
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.1.10');
|
||||
define('G5_GNUBOARD_VER', '5.2.9.6');
|
||||
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
@@ -30,7 +30,7 @@ define('G5_DOMAIN', '');
|
||||
define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
/*
|
||||
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요.
|
||||
www.sir.kr 과 sir.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.kr 과 같이 입력하세요.
|
||||
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
|
||||
*/
|
||||
define('G5_COOKIE_DOMAIN', '');
|
||||
@@ -57,7 +57,7 @@ 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_PHPMAILER_DIR', 'PHPMailer');
|
||||
define('G5_SESSION_DIR', 'session');
|
||||
define('G5_THEME_DIR', 'theme');
|
||||
|
||||
@@ -159,7 +159,8 @@ define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry
|
||||
|
||||
// SMTP
|
||||
// lib/mailer.lib.php 에서 사용
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
define('G5_SMTP_PORT', '25');
|
||||
|
||||
|
||||
/********************
|
||||
|
||||
@@ -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>
|
||||
|
||||
+10
-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;
|
||||
|
||||
+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는 첫자는 반드시 영문자 그리고 영문자와 숫자로만 만드셔야 합니다.');
|
||||
|
||||
+18
-6
@@ -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 = '',
|
||||
|
||||
+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;
|
||||
});
|
||||
});
|
||||
+201
-12
@@ -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,11 +214,11 @@ 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
|
||||
$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("/([^(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 = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t", "'"), array(" ", "<", ">", "'"), $str);
|
||||
@@ -628,7 +630,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 +714,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 +746,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);
|
||||
|
||||
@@ -1200,7 +1203,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);
|
||||
@@ -2017,8 +2021,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)
|
||||
@@ -2422,6 +2430,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 +2456,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 +2475,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 +2672,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
|
||||
{
|
||||
@@ -2979,10 +2997,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 +3213,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ $sql = " select bo_table, bo_subject
|
||||
and bo_device <> 'pc' ";
|
||||
if(!$is_admin)
|
||||
$sql .= " and bo_use_cert = '' ";
|
||||
$sql .= " order by bo_table ";
|
||||
$sql .= " order by bo_order ";
|
||||
$result = sql_query($sql);
|
||||
for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
|
||||
|
||||
@@ -53,8 +53,10 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
|
||||
|
||||
if($w == 'cu') {
|
||||
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
|
||||
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
|
||||
$cmt = sql_fetch($sql);
|
||||
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
|
||||
$cmt['wr_content'] = '';
|
||||
$c_wr_content = $cmt['wr_content'];
|
||||
}
|
||||
|
||||
@@ -81,7 +83,7 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
?>
|
||||
<aside id="bo_vc_w">
|
||||
<h2>댓글쓰기</h2>
|
||||
<form name="fviewcomment" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
|
||||
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
|
||||
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
||||
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
||||
@@ -248,6 +250,8 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
|
||||
<?php if($is_guest) echo chk_captcha_js(); ?>
|
||||
|
||||
set_comment_token(f);
|
||||
|
||||
document.getElementById("btn_submit").disabled = "disabled";
|
||||
|
||||
return true;
|
||||
|
||||
@@ -53,8 +53,10 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
|
||||
|
||||
if($w == 'cu') {
|
||||
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
|
||||
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
|
||||
$cmt = sql_fetch($sql);
|
||||
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
|
||||
$cmt['wr_content'] = '';
|
||||
$c_wr_content = $cmt['wr_content'];
|
||||
}
|
||||
|
||||
@@ -81,7 +83,7 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
?>
|
||||
<aside id="bo_vc_w">
|
||||
<h2>댓글쓰기</h2>
|
||||
<form name="fviewcomment" action="./write_comment_update.php" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
|
||||
<form name="fviewcomment" action="<?php echo $comment_action_url; ?>" onsubmit="return fviewcomment_submit(this);" method="post" autocomplete="off">
|
||||
<input type="hidden" name="w" value="<?php echo $w ?>" id="w">
|
||||
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
|
||||
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
|
||||
@@ -248,6 +250,8 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
|
||||
|
||||
<?php if($is_guest) echo chk_captcha_js(); ?>
|
||||
|
||||
set_comment_token(f);
|
||||
|
||||
document.getElementById("btn_submit").disabled = "disabled";
|
||||
|
||||
return true;
|
||||
|
||||
@@ -77,7 +77,7 @@ if( count($faq_master_list) ){
|
||||
|
||||
<?php
|
||||
// 하단 HTML
|
||||
echo '<div id="faq_thtml">'.conv_content($fm['fm_tail_html'], 1).'</div>';
|
||||
echo '<div id="faq_thtml">'.conv_content($fm['fm_mobile_tail_html'], 1).'</div>';
|
||||
?>
|
||||
|
||||
<div id="faq_sch">
|
||||
|
||||
@@ -11,7 +11,6 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
<form name="fformmail" action="./formmail_send.php" onsubmit="return fformmail_submit(this);" method="post" enctype="multipart/form-data" style="margin:0px;">
|
||||
<input type="hidden" name="to" value="<?php echo $email ?>">
|
||||
<input type="hidden" name="attach" value="2">
|
||||
<input type="hidden" name="token" value="<?php echo $token ?>">
|
||||
<?php if ($is_member) { // 회원이면 ?>
|
||||
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>">
|
||||
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
|
||||
|
||||
@@ -19,6 +19,13 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
<table>
|
||||
<caption>쪽지쓰기</caption>
|
||||
<tbody>
|
||||
<?php if ($config['cf_memo_send_point']) { ?>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>쪽지 보낼때 회원당 <?php echo number_format($config['cf_memo_send_point']); ?>점의 포인트를 차감합니다.</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<tr>
|
||||
<th scope="row"><label for="me_recv_mb_id">받는 회원아이디<strong class="sound_only">필수</strong></label></th>
|
||||
<td>
|
||||
|
||||
@@ -8,7 +8,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
<div class="mbskin">
|
||||
<script src="<?php echo G5_JS_URL ?>/jquery.register_form.js"></script>
|
||||
<?php if($config['cf_cert_use'] && ($config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js"></script>
|
||||
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
|
||||
<?php } ?>
|
||||
|
||||
<form name="fregisterform" id="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
|
||||
@@ -60,7 +60,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
if($config['cf_cert_use']) {
|
||||
if($config['cf_cert_ipin'])
|
||||
echo '<button type="button" id="win_ipin_cert" class="btn_frmline">아이핀 본인확인</button>'.PHP_EOL;
|
||||
if($config['cf_cert_hp'] && $config['cf_cert_hp'] != 'lg')
|
||||
if($config['cf_cert_hp'])
|
||||
echo '<button type="button" id="win_hp_cert" class="btn_frmline">휴대폰 본인확인</button>'.PHP_EOL;
|
||||
|
||||
echo '<noscript>본인확인을 위해서는 자바스크립트 사용이 가능해야합니다.</noscript>'.PHP_EOL;
|
||||
@@ -122,7 +122,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($config['cf_use_hp']) { ?>
|
||||
<?php if ($config['cf_use_hp'] || $config['cf_cert_hp']) { ?>
|
||||
<tr>
|
||||
<th scope="row"><label for="reg_mb_hp">휴대폰번호<?php if ($config['cf_req_hp']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
|
||||
<td>
|
||||
@@ -288,6 +288,10 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
|
||||
$cert_type = 'kcp-hp';
|
||||
break;
|
||||
case 'lg':
|
||||
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
|
||||
$cert_type = 'lg-hp';
|
||||
break;
|
||||
default:
|
||||
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
|
||||
echo 'return false;';
|
||||
|
||||
@@ -135,7 +135,8 @@
|
||||
#memo_list_ul {margin:0 20px;padding:0;border-top:1px solid #e9e9e9;list-style:none}
|
||||
#memo_list_ul li {position:relative;padding:10px 0;border-bottom:1px solid #e9e9e9}
|
||||
#memo_list_ul .memo_link {}
|
||||
#memo_list_ul .memo_send {position:absolute;top:10px;right:30px}
|
||||
#memo_list_ul .memo_send {display:block;margin-top:4px}
|
||||
#memo_list_ul .memo_send a{color:#777}
|
||||
#memo_list_ul .memo_read {font-size:0.95em;color:#666}
|
||||
#memo_list_ul .memo_del {position:absolute;top:10px;right:0}
|
||||
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ if(defined('G5_THEME_PATH')) {
|
||||
<div id="ft_copy">
|
||||
<div id="ft_company">
|
||||
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=company">회사소개</a>
|
||||
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=privacy">개인정보취급방침</a>
|
||||
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=privacy">개인정보처리방침</a>
|
||||
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=provision">서비스이용약관</a>
|
||||
</div>
|
||||
Copyright © <b>소유하신 도메인.</b> All rights reserved.<br>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/**
|
||||
* PHPMailer SPL autoloader.
|
||||
* PHP Version 5
|
||||
* @package PHPMailer
|
||||
* @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
|
||||
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
|
||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||
* @author Brent R. Matzelle (original founder)
|
||||
* @copyright 2012 - 2014 Marcus Bointon
|
||||
* @copyright 2010 - 2012 Jim Jagielski
|
||||
* @copyright 2004 - 2009 Andy Prevost
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
* @note This program is distributed in the hope that it will be useful - WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* PHPMailer SPL autoloader.
|
||||
* @param string $classname The name of the class to load
|
||||
*/
|
||||
function PHPMailerAutoload($classname)
|
||||
{
|
||||
//Can't use __DIR__ as it's only in PHP 5.3+
|
||||
$filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
|
||||
if (is_readable($filename)) {
|
||||
require $filename;
|
||||
}
|
||||
}
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
|
||||
//SPL autoloading was introduced in PHP 5.1.2
|
||||
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
|
||||
spl_autoload_register('PHPMailerAutoload', true, true);
|
||||
} else {
|
||||
spl_autoload_register('PHPMailerAutoload');
|
||||
}
|
||||
} else {
|
||||
/**
|
||||
* Fall back to traditional autoload for old PHP versions
|
||||
* @param string $classname The name of the class to load
|
||||
*/
|
||||
function __autoload($classname)
|
||||
{
|
||||
PHPMailerAutoload($classname);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||

|
||||
|
||||
# PHPMailer - A full-featured email creation and transfer class for PHP
|
||||
|
||||
Build status: [](https://travis-ci.org/PHPMailer/PHPMailer)
|
||||
[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
|
||||
[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
|
||||
|
||||
[](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer)
|
||||
|
||||
## Class Features
|
||||
|
||||
- Probably the world's most popular code for sending email from PHP!
|
||||
- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
|
||||
- Integrated SMTP support - send without a local mail server
|
||||
- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
|
||||
- Multipart/alternative emails for mail clients that do not read HTML email
|
||||
- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
|
||||
- SMTP authentication with LOGIN, PLAIN, NTLM, CRAM-MD5 and Google's XOAUTH2 mechanisms over SSL and TLS transports
|
||||
- Error messages in 47 languages!
|
||||
- DKIM and S/MIME signing support
|
||||
- Compatible with PHP 5.0 and later
|
||||
- Much more!
|
||||
|
||||
## Why you might need it
|
||||
|
||||
Many PHP developers utilize email in their code. The only PHP function that supports this is the mail() function. However, it does not provide any assistance for making use of popular features such as HTML-based emails and attachments.
|
||||
|
||||
Formatting email correctly is surprisingly difficult. There are myriad overlapping RFCs, requiring tight adherence to horribly complicated formatting and encoding rules - the vast majority of code that you'll find online that uses the mail() function directly is just plain wrong!
|
||||
*Please* don't be tempted to do it yourself - if you don't use PHPMailer, there are many other excellent libraries that you should look at before rolling your own - try SwiftMailer, Zend_Mail, eZcomponents etc.
|
||||
|
||||
The PHP mail() function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD and OS X platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.
|
||||
|
||||
## License
|
||||
|
||||
This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license. Please read LICENSE for information on the
|
||||
software availability and distribution.
|
||||
|
||||
## Installation & loading
|
||||
|
||||
PHPMailer is available via [Composer/Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), so just add this line to your `composer.json` file:
|
||||
|
||||
```json
|
||||
"phpmailer/phpmailer": "~5.2"
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
composer require phpmailer/phpmailer
|
||||
```
|
||||
|
||||
If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package.
|
||||
|
||||
Alternatively, copy the contents of the PHPMailer folder into somewhere that's in your PHP `include_path` setting. If you don't speak git or just want a tarball, click the 'zip' button at the top of the page in GitHub.
|
||||
|
||||
If you're not using composer's autoloader, PHPMailer provides an SPL-compatible autoloader, and that is the preferred way of loading the library - just `require '/path/to/PHPMailerAutoload.php';` and everything should work. The autoloader does not throw errors if it can't find classes so it prepends itself to the SPL list, allowing your own (or your framework's) autoloader to catch errors. SPL autoloading was introduced in PHP 5.1.0, so if you are using a version older than that you will need to require/include each class manually.
|
||||
|
||||
PHPMailer does *not* declare a namespace because namespaces were only introduced in PHP 5.3.
|
||||
|
||||
If you want to use Google's XOAUTH2 authentication mechanism, you need to be running at least PHP 5.4, and load the dependencies listed in `composer.json`.
|
||||
|
||||
### Minimal installation
|
||||
|
||||
While installing the entire package manually or with composer is simple, convenient and reliable, you may want to include only vital files in your project. At the very least you will need [class.phpmailer.php](class.phpmailer.php). If you're using SMTP, you'll need [class.smtp.php](class.smtp.php), and if you're using POP-before SMTP, you'll need [class.pop3.php](class.pop3.php). For all of these, we recommend you use [the autoloader](PHPMailerAutoload.php) too as otherwise you will either have to `require` all classes manually or use some other autoloader. You can skip the [language](language/) folder if you're not showing errors to users and can make do with English-only errors. You may need the additional classes in the [extras](extras/) folder if you are using those features, including NTLM authentication and ics generation. If you're using Google XOAUTH2 you will need `class.phpmaileroauth.php` and `class.oauth.php` classes too, as well as the composer dependencies.
|
||||
|
||||
## A Simple Example
|
||||
|
||||
```php
|
||||
<?php
|
||||
require 'PHPMailerAutoload.php';
|
||||
|
||||
$mail = new PHPMailer;
|
||||
|
||||
//$mail->SMTPDebug = 3; // Enable verbose debug output
|
||||
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
$mail->Username = 'user@example.com'; // SMTP username
|
||||
$mail->Password = 'secret'; // SMTP password
|
||||
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
|
||||
$mail->Port = 587; // TCP port to connect to
|
||||
|
||||
$mail->setFrom('from@example.com', 'Mailer');
|
||||
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
|
||||
$mail->addAddress('ellen@example.com'); // Name is optional
|
||||
$mail->addReplyTo('info@example.com', 'Information');
|
||||
$mail->addCC('cc@example.com');
|
||||
$mail->addBCC('bcc@example.com');
|
||||
|
||||
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
|
||||
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
|
||||
$mail->isHTML(true); // Set email format to HTML
|
||||
|
||||
$mail->Subject = 'Here is the subject';
|
||||
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
|
||||
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
|
||||
|
||||
if(!$mail->send()) {
|
||||
echo 'Message could not be sent.';
|
||||
echo 'Mailer Error: ' . $mail->ErrorInfo;
|
||||
} else {
|
||||
echo 'Message has been sent';
|
||||
}
|
||||
```
|
||||
|
||||
You'll find plenty more to play with in the [examples](examples/) folder.
|
||||
|
||||
That's it. You should now be ready to use PHPMailer!
|
||||
|
||||
## Localization
|
||||
PHPMailer defaults to English, but in the [language](language/) folder you'll find numerous (46 at the time of writing!) translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this:
|
||||
|
||||
```php
|
||||
// To load the French version
|
||||
$mail->setLanguage('fr', '/optional/path/to/language/directory/');
|
||||
```
|
||||
|
||||
We welcome corrections and new languages - if you're looking for corrections to do, run the [phpmailerLangTest.php](test/phpmailerLangTest.php) script in the tests folder and it will show any missing translations.
|
||||
|
||||
## Documentation
|
||||
|
||||
Examples of how to use PHPMailer for common scenarios can be found in the [examples](examples/) folder. If you're looking for a good starting point, we recommend you start with [the gmail example](examples/gmail.phps).
|
||||
|
||||
There are tips and a troubleshooting guide in the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, this should be the first place you look as it's the most frequently updated.
|
||||
|
||||
Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/).
|
||||
|
||||
You'll find some basic user-level docs in the [docs](docs/) folder, and you can generate complete API-level documentation using the [generatedocs.sh](docs/generatedocs.sh) shell script in the docs folder, though you'll need to install [PHPDocumentor](http://www.phpdoc.org) first. You may find [the unit tests](test/phpmailerTest.php) a good source of how to do various operations such as encryption.
|
||||
|
||||
If the documentation doesn't cover what you need, search the [many questions on StackOverflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting).
|
||||
|
||||
## Tests
|
||||
|
||||
There is a PHPUnit test script in the [test](test/) folder.
|
||||
|
||||
Build status: [](https://travis-ci.org/PHPMailer/PHPMailer)
|
||||
|
||||
If this isn't passing, is there something you can do to help?
|
||||
|
||||
## Contributing
|
||||
|
||||
Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
|
||||
|
||||
We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
|
||||
|
||||
With the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
|
||||
|
||||
```sh
|
||||
git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git
|
||||
```
|
||||
|
||||
Please *don't* use the SourceForge or Google Code projects any more.
|
||||
|
||||
## Sponsorship
|
||||
|
||||
Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), a powerful email marketing system.
|
||||
|
||||
<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="250" height="28" alt="Smartmessages email marketing"></a>
|
||||
|
||||
Other contributions are gladly received, whether in beer 🍺, T-shirts 👕, Amazon wishlist raids, or cold, hard cash 💰.
|
||||
|
||||
## Changelog
|
||||
|
||||
See [changelog](changelog.md).
|
||||
|
||||
## History
|
||||
- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/).
|
||||
- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004.
|
||||
- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski.
|
||||
- Marcus created his fork on [GitHub](https://github.com/Synchro/PHPMailer).
|
||||
- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer.
|
||||
- PHPMailer moves to the [PHPMailer organisation](https://github.com/PHPMailer) on GitHub.
|
||||
|
||||
### What's changed since moving from SourceForge?
|
||||
- Official successor to the SourceForge and Google Code projects.
|
||||
- Test suite.
|
||||
- Continuous integration with Travis-CI.
|
||||
- Composer support.
|
||||
- Public development.
|
||||
- Additional languages and language strings.
|
||||
- CRAM-MD5 authentication support.
|
||||
- Preserves full repo history of authors, commits and branches from the original SourceForge project.
|
||||
@@ -0,0 +1 @@
|
||||
5.2.22
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user