DZ6.0的前台用户名自修改插件

2008-07-06 01:37:30 0 2299
最近一直在改论坛,于是写个这个页面,其实不算插件了,根本不是当成插件来写的,就是一个简单页面而已。

说过程:

1.进后台创建一个changename的模板,贴上代码后提交:
{template header}

<div id="nav">
<a href="index.php">$bbname</a> <b>&raquo;</b> 用户名修改系统
</div>

<div class="mainbox">
<h1 align="left">修改须知</h1>

<table cellspacing="0" cellpadding="4px" border="0" align="center">
<div align="left">
a.如果没有特别需要,请勿修改用户名;<br>

b.修改用户名需要花费5000论坛币的手续费,请三思而后行;<br>

c.修改完请重新登陆,如果有问题,请及时与管理员联系!
</div>

</table>

</div>

<table cellspacing="0" cellpadding="4px" border="0" align="center">
<form action='?action=changename' method=post>
<font color=blue>新用户名:</font>
<input type=text name=usernamenew maxlength=16 size=60>
<button type="submit" name="submit" value="" class="submit"
onclick="if(confirm('确定要修改用户名么?')) {return true;}return false;">确 定</button>   
<font color=red>(修改用户名<b>需要花费5000论坛币</b>,请谨慎!)</font>
</form>
</table>

{template footer}
2.将如下代码保存为changename.php,放到论坛根目录下:
<?php
require_once('./include/common.inc.php');
if(!defined('IN_DISCUZ')){exit('Access Denied');}
if($discuz_uid==0 || $discuz_user==""){showmessage("请先登陆!","index.php");}
function writepetlog($filename,$logtxt){
@$fp = fopen(DISCUZ_ROOT.'./log/'.$filename,'a');
@flock($fp, 2);
@fwrite($fp, $logtxt);
@fclose($fp);
}
if (!isset($action)) include template('changename');
if ($action== 'changename' && $discuz_user!='' && $discuz_uid!=0){
$usernameold = addslashes($discuz_user);
if($usernamenew && $usernameold != $usernamenew) {
$query=$db->get_one("select extcredits2 from {$tablepre}members where username='$discuz_user'");
$money=$query?$query['extcredits2']:0;
if($money<5000){
showmessage("您的论坛币不够修改用户名费用,修改用户名需要5000论坛币!",'changename.php');
}else{
$query = $db->query("SELECT uid FROM {$tablepre}members WHERE username='$usernamenew'");
if(($db->result($query, 0)) && ($db->result($query, 0)) != $discuz_uid) {
showmessage("新用户名与现有用户重复,请返回修改。",'changename.php');
}
//DZ,不包含管理员
$db->query("UPDATE {$tablepre}announcements SET author='$usernamenew' WHERE author='$usernameold'");
$db->query("UPDATE {$tablepre}forums SET lastpost=REPLACE(lastpost, '\t$usernameold', '\t$usernamenew')");
$db->query("UPDATE {$tablepre}members SET username='$usernamenew' WHERE uid='$discuz_uid'");
$db->query("UPDATE {$tablepre}pms SET msgfrom='$usernamenew' WHERE msgfromid='$discuz_uid'");
$db->query("UPDATE {$tablepre}posts SET author='$usernamenew' WHERE authorid='$discuz_uid'");
$db->query("UPDATE {$tablepre}threads SET author='$usernamenew' WHERE authorid='$discuz_uid'");
$db->query("UPDATE {$tablepre}threads SET lastposter='$usernamenew' WHERE lastposter='$usernameold'");
$db->query("UPDATE {$tablepre}threadsmod SET username='$usernamenew' WHERE uid='$discuz_uid'");
//无心宠物
$db->query("UPDATE {$tablepre}wxfamily SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}wxfamilyrecord SET username='$usernamenew'
WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}wxpetdata SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}wxpetmagic SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}wxrose SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}wxstorage SET username='$usernamenew' WHERE username='$usernameold'");
//结婚系统
$db->query("UPDATE {$tablepre}jie SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}jie SET thename='$usernamenew' WHERE thename='$usernameold'");
$db->query("UPDATE {$tablepre}qiuhun SET username='$usernamenew' WHERE username='$usernameold'");
$db->query("UPDATE {$tablepre}qiuhun SET tousername='$usernamenew' WHERE tousername='$usernameold'");
//扣修改用户名手续费5000
$db->query("UPDATE {$tablepre}members SET extcredits2=extcredits2-5000 WHERE uid='$discuz_uid'");
//写入日志
$givelog="<?PHP exit('Access Denied'); ?>\t".htmlspecialchars($usernameold)."\t".htmlspecialchars($usernamenew)."\t$timestamp\n";
writepetlog('namelog.php',$givelog);
showmessage("成功修改用户名,消耗论坛币5000,最好请重新登陆!",'index.php');
}
}
else{
showmessage("新用户名不能为空,且不能与旧用户名相同!",'changename.php');
}
}
?>
代码很简单,但是还是蛮实用的~~~

以前搞站,经历没舍得写,结果都忘干净了,于是好久没写blog,用这个小代码凑篇日志!

关于作者

oldjun132篇文章575篇回复

评论0次

要评论?请先  登录  或  注册