diff --git a/CHANGELOG b/CHANGELOG
index 832973f..7194029 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,5 @@
Add option to make your own font small
+Separate changing nickname and password
Version 1.22.1 - Nov. 13, 2016
Performance optimizations
diff --git a/chat.php b/chat.php
index a20d666..3b59997 100644
--- a/chat.php
+++ b/chat.php
@@ -1962,7 +1962,10 @@ function send_profile($arg=''){
echo "
$I[oldpass]
";
echo "
$I[newpass]
";
echo "
$I[confirmpass]
";
- echo "
$I[newnickname]
";
+ echo '';
+ thr();
+ echo "
$I[changenick]
";
+ echo "
$I[newnickname]
";
echo '
';
thr();
}
@@ -2793,11 +2796,11 @@ function save_profile(){
$stmt->execute([$U['passhash'], $U['session']]);
$stmt=$db->prepare('UPDATE ' . PREFIX . 'members SET passhash=? WHERE nickname=?;');
$stmt->execute([$U['passhash'], $U['nickname']]);
- if(!empty($_REQUEST['newnickname'])){
- $msg=set_new_nickname();
- if($msg!==''){
- return $msg;
- }
+ }
+ if($U['status']>1 && !empty($_REQUEST['newnickname'])){
+ $msg=set_new_nickname();
+ if($msg!==''){
+ return $msg;
}
}
return $I['succprofile'];
@@ -2809,16 +2812,15 @@ function set_new_nickname(){
if(!valid_nick($_REQUEST['newnickname'])){
return sprintf($I['invalnick'], get_setting('maxname'), get_setting('nickregex'));
}
- $U['passhash']=password_hash($_REQUEST['newpass'], PASSWORD_DEFAULT);
$stmt=$db->prepare('SELECT id FROM ' . PREFIX . 'sessions WHERE nickname=? UNION SELECT id FROM ' . PREFIX . 'members WHERE nickname=?;');
$stmt->execute([$_REQUEST['newnickname'], $_REQUEST['newnickname']]);
if($stmt->fetch(PDO::FETCH_NUM)){
return $I['nicknametaken'];
}else{
- $stmt=$db->prepare('UPDATE ' . PREFIX . 'members SET nickname=?, passhash=? WHERE nickname=?;');
- $stmt->execute([$_REQUEST['newnickname'], $U['passhash'], $U['nickname']]);
- $stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET nickname=?, passhash=? WHERE nickname=?;');
- $stmt->execute([$_REQUEST['newnickname'], $U['passhash'], $U['nickname']]);
+ $stmt=$db->prepare('UPDATE ' . PREFIX . 'members SET nickname=? WHERE nickname=?;');
+ $stmt->execute([$_REQUEST['newnickname'], $U['nickname']]);
+ $stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET nickname=? WHERE nickname=?;');
+ $stmt->execute([$_REQUEST['newnickname'], $U['nickname']]);
$stmt=$db->prepare('UPDATE ' . PREFIX . 'messages SET poster=? WHERE poster=?;');
$stmt->execute([$_REQUEST['newnickname'], $U['nickname']]);
$stmt=$db->prepare('UPDATE ' . PREFIX . 'messages SET recipient=? WHERE recipient=?;');
@@ -3470,7 +3472,7 @@ function check_init(){
}
function destroy_chat($C){
- global $I, $db, $language, $memcached;
+ global $I, $db, $memcached;
setcookie(COOKIENAME, false);
$_REQUEST['session']='';
print_start('destory');
@@ -3495,7 +3497,7 @@ function destroy_chat($C){
$memcached->delete(DBNAME . '-' . PREFIX . 'settings-msgencrypted');
}
echo "