Skip to content

Commit 51f08a3

Browse files
committed
fixed some error about html safe filter and modified the user reg and login dialog
1 parent d26b00a commit 51f08a3

12 files changed

+572
-50
lines changed

control/user_control.class.php

+23-12
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,23 @@ function __construct(&$conf) {
1818

1919
}
2020

21-
// ajax 登录
21+
// 登录
2222
public function on_login() {
23+
$referer = $this->get_referer();
24+
$this->_user['uid'] != 0 && $this->message('您已经登陆了。',0,$referer);
2325
// hook user_login_start.php
26+
2427
if(!$this->form_submit()) {
2528

2629
// hook user_login_before.php
27-
if(core::gpc('ajax')) {
28-
$this->view->display('user_login_ajax.htm');
29-
} else {
30+
//if(core::gpc('ajax')) {
31+
//$this->view->display('user_login_ajax.htm');
32+
//} else {
3033
$referer = $this->get_referer();
3134
$this->view->assign('referer', $referer);
35+
$this->_title[] = '用户登录';
3236
$this->view->display('user_login.htm');
33-
}
37+
//}
3438
} else {
3539
$userdb = $error = array();
3640
$email = core::gpc('email', 'P');
@@ -75,11 +79,13 @@ public function on_login() {
7579
// 更新在线列表
7680
$this->update_online();
7781
}
78-
$this->message($error);
79-
82+
if(core::gpc('ajax','R')) {
83+
$this->message($error);
84+
}
85+
$this->location($referer);
8086
}
8187
}
82-
88+
8389
public function on_logout() {
8490

8591
// 清除 online username
@@ -95,11 +101,13 @@ public function on_logout() {
95101
misc::setcookie($this->conf['cookie_pre'].'auth', '', 0, $this->conf['cookie_path'], $this->conf['cookie_domain']);
96102
$this->_title[] = "退出成功";
97103
$referer = $this->get_referer();
98-
$this->message("退出成功!",1,$referer);
104+
$this->location($referer);
99105
}
100106

101-
// ajax 注册
107+
// 注册
102108
public function on_create() {
109+
$referer = $this->get_referer();
110+
$this->_user['uid'] != 0 && $this->message('您已经登陆了。',0, $referer);
103111

104112
// 检查IP 屏蔽
105113
$this->check_ip();
@@ -114,8 +122,8 @@ public function on_create() {
114122
if(core::gpc('ajax')) {
115123
$this->view->display('user_create_ajax.htm');
116124
} else {
117-
$referer = $this->get_referer();
118125
$this->view->assign('referer', $referer);
126+
$this->_title[] = '用户注册';
119127
$this->view->display('user_create.htm');
120128
}
121129
} else {
@@ -198,7 +206,10 @@ public function on_create() {
198206

199207
}
200208
}
201-
$this->message($error);
209+
if(core::gpc('ajax', 'R')) {
210+
$this->message($error);
211+
}
212+
$this->location($referer);
202213
}
203214
}
204215

plugin/accesskey/footer_end.htm

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<script src="//cdn.jsdelivr.net/npm/accesskey/dist/accesskey.min.js"></script>
1+
<script src="//cdn.jsdelivr.net/npm/accesskey/dist/accesskey.min.js" data-accjs-mutation-observer="true"></script>
+147
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
<!--{include header.htm}-->
2+
<div class="width">
3+
<!--{hook user_create_start.htm}-->
4+
<h3>用户注册</h3>
5+
<form action="?user-create.htm" method="post" id="create_form">
6+
<input type="hidden" name="FORM_HASH" value="{FORM_HASH}" />
7+
<input type="hidden" name="clienttime" value="" />
8+
<!--{hook common_form_hash_after.htm}-->
9+
<dl>
10+
<dt><label for="verify_type">选择注册方式:</label></dt>
11+
<dd><select id="verify_type" name="verify_type" style="width: 250px;" tabindex="1">
12+
<option value="email">邮箱</option>
13+
<option value="mobile">手机</option>
14+
</select></dd>
15+
<dt><label for="create_email">邮箱:</label></dt>
16+
<dd><input type="text" name="email" id="create_email" value="$user[email]" tabindex="1" style="width: 250px;" /> <span id="create_check_email"><a href="?user-login.htm">登录</a></span></dd>
17+
<dt><label for="code">验证码:</label></dt>
18+
<dd><input type="text" name="code" id="code" value="" tabindex="2" style="width: 250px;" /> <span><button type="button" id="sendcode" name="sendcode" tabindex="1">发送验证码</button></span></dd>
19+
<dt><label for="create_username">用户名:</label></dt>
20+
<dd><input type="text" name="username" id="create_username" size="24" value="$user[username]" title="请输入用户名" tabindex="2" style="width: 250px;" /> <span id="create_check_username"></span></dd>
21+
<dt><label for="create_password">密 码:</label></dt>
22+
<dd><input type="password" name="password" id="create_password" size="24" value="" title="请输入密码" tabindex="3" style="width: 250px;" /></dd>
23+
<dt><label for="create_password2">重复密码:</label></dt>
24+
<dd><input type="password" name="password2" id="create_password2" size="24" value="" title="请输入密码" tabindex="4" style="width: 250px;" /></dd>
25+
<!--{hook user_create_submit_before.htm}-->
26+
<dt></dt>
27+
<dd>
28+
<button type="submit" class="button bigblue" id="create_submit_ajax" tabindex="5">注册</button>
29+
</dd>
30+
<!--{hook user_create_submit_after.htm}-->
31+
</dl>
32+
</form>
33+
34+
<!--{hook user_create_end.htm}-->
35+
</div>
36+
<!--{include footer.htm}-->
37+
<script type="text/javascript">
38+
39+
40+
function check_username(username) {
41+
if(!username) {
42+
return false;
43+
}
44+
var username_url = urlencode(username);
45+
$.get('?user-checkname-username-'+username_url+'-ajax-1.htm', function(s) {
46+
var json = json_decode(s);
47+
if(error = json_error(json)) {alert(error); return false;}
48+
if(json.status <= 0) {
49+
$('#create_check_username').html('<span class="red">'+json.message+'<span>');
50+
return false;
51+
} else {
52+
$('#create_check_username').html('<span class="green">'+json.message+'<span>');
53+
return false;
54+
}
55+
});
56+
}
57+
function check_email(email) {
58+
if(!email) {
59+
return false;
60+
}
61+
var email_url = urlencode(email);
62+
var verify_type = $('#verify_type').val();
63+
$.get('?user-check' + verify_type + '-' + verify_type + '-'+email_url+'-ajax-1.htm', function(s) {
64+
var json = json_decode(s);
65+
if(error = json_error(json)) {alert(error); return false;}
66+
if(json.status <= 0) {
67+
$('#create_check_email').html('<span class="red">'+json.message+'<span>');
68+
return false;
69+
} else {
70+
$('#create_check_email').html('<span class="green">'+json.message+'<span>');
71+
return false;
72+
}
73+
});
74+
}
75+
76+
$('#verify_type').focus();
77+
$('#create_form input').keyup(function(e) {
78+
//e = e || document.parentWindow.event;
79+
var e = e ? e : window.event;
80+
var kc = e.keyCode ? e.keyCode : e.charCode;
81+
if(kc == 13) {
82+
$('#create_submit_ajax').trigger('click');
83+
}
84+
});
85+
86+
87+
88+
$('#create_email').blur(function() {
89+
check_email($('#create_email').val());
90+
});
91+
92+
$('#verify_type').change(function() {
93+
$('label[for=create_email]').text($(this).find('option:selected').text());
94+
});
95+
96+
$('#create_username').blur(function() {
97+
check_username($('#create_username').val());
98+
});
99+
100+
$('#create_form input[name=clienttime]').val(Math.round(new Date().getTime()/1000));
101+
102+
$(document).on('click', 'button[name=sendcode]', function() {
103+
var _this = $(this);
104+
_this.attr('disabled', 'disabled');
105+
var jform = _this.parents('#create_form');
106+
var url = "?user-sendcode-ajax-1.htm";
107+
$.ajax({
108+
url: url,
109+
type: 'POST',
110+
cache: false,
111+
data: new FormData(jform[0]),
112+
processData: false,
113+
contentType: false
114+
}).done(function(s) {
115+
var json = json_decode(s);
116+
if(error = json_error(json)) {
117+
alert(error);
118+
$('#create_email').focus();
119+
_this.removeAttr('disabled');
120+
return false;
121+
}
122+
if(json.status <=0) {
123+
alert(json.message);
124+
$('#create_email').focus();
125+
_this.removeAttr('disabled');
126+
return false;
127+
}
128+
if(json.status == 1) {
129+
alert(json.message);
130+
$('#code').focus();
131+
setTimeout(function() {
132+
_this.removeAttr('disabled');
133+
}, 120000);
134+
return false;
135+
}
136+
}).fail(function(res) {
137+
_this.removeAttr('disabled');
138+
alert('failed.' + res.statusText + ',' + res.statusCode + Object.keys(res));
139+
});
140+
return false;
141+
});
142+
// hook user_create_delay_execute_js.htm
143+
144+
// hook common_form_hash_after_js.htm
145+
</script>
146+
</body>
147+
</html>

plugin/reg_mobile_and_email/user_create_start.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
if(core::gpc('ajax')) {
66
$this->view->display('user_create_ajax.htm');
77
} else {
8-
$referer = $this->get_referer();
98
$this->view->assign('referer', $referer);
9+
$this->_title[] = '用户注册';
1010
$this->view->display('user_create.htm');
1111
}
1212
} else {
@@ -109,6 +109,9 @@
109109

110110
}
111111
}
112-
$this->message($error);
112+
if(core::gpc('ajax', 'R')) {
113+
$this->message($error);
114+
}
115+
$this->location($referer);
113116
}
114117
exit;

plugin/reg_mobile_and_email/user_login_start.php

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1+
$referer = $this->get_referer();
12
if(!$this->form_submit()) {
23

34
// hook user_login_before.php
5+
46
if(core::gpc('ajax')) {
57
$this->view->display('user_login_ajax.htm');
68
} else {
7-
$referer = $this->get_referer();
9+
810
$this->view->assign('referer', $referer);
11+
$this->_title[] = '用户登录';
912
$this->view->display('user_login.htm');
1013
}
1114
} else {
@@ -55,7 +58,9 @@
5558
// 更新在线列表
5659
$this->update_online();
5760
}
58-
$this->message($error);
59-
61+
if(core::gpc('ajax', 'R')) {
62+
$this->message($error);
63+
}
64+
$this->location($referer);
6065
}
6166
exit;

0 commit comments

Comments
 (0)