📄 members.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2006 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$RCSfile: members.inc.php,v $
$Revision: 1.29.2.3 $
$Date: 2006/04/18 01:56:03 $
*/
if(!defined('IN_DISCUZ') || !isset($PHP_SELF) || !preg_match("/[\/\\\\]admincp\.php$/", $PHP_SELF)) {
exit('Access Denied');
}
cpheader();
if($action == 'memberadd') {
if(!submitcheck('addsubmit')) {
updatecache('settings');
?>
<br><form method="post" action="admincp.php?action=memberadd">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="80%" align="center" class="tableborder">
<tr><td class="header" colspan="2"><?=$lang['members_add']?></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_add_uid_range']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="uidlowerlimit" size="5"> - <input type="text" name="uidupperlimit" size="5"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['username']?>:</td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="newusername"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['password']?>:</td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="newpassword"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['email']?>:</td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="newemail"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_add_email_notify']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="checkbox" name="emailnotify" value="yes" checked></td></tr>
</table><br>
<center><input type="submit" name="addsubmit" value="<?=$lang['submit']?>"></center>
</form>
<?
} else {
$newusername = trim($newusername);
$newpassword = trim($newpassword);
$newemail = trim($newemail);
if(!$newusername || !$newpassword || !$newemail) {
cpmsg('members_add_invalid');
}
$query = $db->query("SELECT uid FROM {$tablepre}members WHERE username='$newusername'");
if($db->num_rows($query)) {
cpmsg('members_add_username_duplicate');
}
$uid = 0;
$uidadd1 = $uidadd2 = '';
if($uidupperlimit != '' && $uidlowerlimit != '') {
$lastuid = 0;
$query = $db->query("SELECT * FROM {$tablepre}members WHERE uid BETWEEN '$uidlowerlimit' AND '$uidupperlimit' ORDER BY uid");
while($member = $db->fetch_array($query)) {
if($lastuid && $member['uid'] - $lastuid > 1) {
$uid = $lastuid + 1;
break;
}
$lastuid = $member['uid'];
}
if($uid) {
$uidadd1 = 'uid, ';
$uidadd2 = $uid.', ';
} else {
cpmsg('members_add_uid_invalid');
}
}
$query = $db->query("SELECT groupid FROM {$tablepre}usergroups WHERE type='member' AND creditshigher='0'");
$newgroupid = $db->result($query, 0);
$db->query("INSERT INTO {$tablepre}members ($uidadd1 username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, showemail, newsletter, invisible, timeoffset)
VALUES ($uidadd2 '$newusername', '".md5($newpassword)."', '', '0', '0', '$newgroupid', 'Manual Acting', '$timestamp', '$timestamp', '$timestamp', '0', '0', '$newemail', '0000-00-00', '0', '0', '0', '0', '{$_DCACHE[settings][dateformat]}', '{$_DCACHE[settings][timeformat]}', '1', '1', '0', '{$_DCACHE[settings][timeoffset]}')");
$uid = $db->insert_id();
$db->query("REPLACE INTO {$tablepre}memberfields (uid) VALUES ('$uid')");
if($emailnotify == 'yes') {
sendmail($newemail, 'add_member_subject', 'add_member_message');
}
updatecache('settings');
$newusername = stripslashes($newusername);
cpmsg('members_add_succeed');
}
} elseif($action == 'members') {
if(!submitcheck('searchsubmit', 1) && !submitcheck('deletesubmit') && !submitcheck('sendsubmit', 1) && !submitcheck('editsubmit') && !submitcheck('updatecreditsubmit',1)) {
$adminselect = $groupselect = $extgroupselect = '';
$admingroupid = isset($admingroupid) && is_array($admingroupid) ? $admingroupid : array();
$usergroupid = isset($usergroupid) && is_array($usergroupid) ? $usergroupid : array();
$extusergroupid = isset($extusergroupid) && is_array($extusergroupid) ? $extusergroupid : array();
$query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE groupid NOT IN ('6', '7') ORDER BY (creditshigher<>'0' || creditslower<>'0'), creditslower");
while($group = $db->fetch_array($query)) {
if($group['groupid'] <= 3){
$adminselect .= "<option value=\"$group[groupid]\" ".(in_array($group['groupid'], $admingroupid) ? 'selected' : '').">$group[grouptitle]</option>\n";
} else {
$groupselect .= "<option value=\"$group[groupid]\" ".(in_array($group['groupid'], $usergroupid) ? 'selected' : '').">$group[grouptitle]</option>\n";
}
$extgroupselect .= "<option value=\"$group[groupid]\" ".(in_array($group['groupid'], $extusergroupid) ? 'selected' : '').">$group[grouptitle]</option>\n";
}
$monthselect = $dayselect = '';
for ($m=1;$m<=12;$m++) {
$m = sprintf("%02d", $m);
$monthselect .= "<option value=\"$m\" ".($birthmonth == $m ? 'selected' : '').">$m</option>\n";
}
for ($d=1;$d<=31;$d++) {
$d = sprintf("%02d", $d);
$dayselect .= "<option value=\"$d\" ".($birthday == $d ? 'selected' : '').">$d</option>\n";
}
$searchcredits = '';
foreach($extcredits as $id => $credit) {
$searchcredits .= "<tr><td class=\"altbg1\">$credit[title] $lang[members_search_lower]:</td>\n".
"<td align=\"right\" class=\"altbg2\"><input type=\"text\" name=\"lower[extcredits$id]\" value=\"".dhtmlspecialchars($lower['extcredits'.$id])."\" size=\"40\"></td></tr>\n".
"<tr><td class=\"altbg1\">$credit[title] $lang[members_search_higher]:</td>\n".
"<td align=\"right\" class=\"altbg2\"><input type=\"text\" name=\"higher[extcredits$id]\" value=\"".dhtmlspecialchars($higher['extcredits'.$id])."\" size=\"40\"></td></tr>\n";
}
?>
<br><form method="post" action="admincp.php?action=members">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr><td class="header" colspan="2"><?=$lang['members_search']?></td></tr>
<tr><td bgcolor="<?=ALTBG1?>" valign="top"><?=$lang['admingroup']?>:<br><?=$lang['members_search_comment']?></td>
<td align="right" bgcolor="<?=ALTBG2?>">
<select name="admingroupid[]" size="4" multiple="multiple" style="width: 65%">
<option value="all"><?=$lang['unlimited']?></option>
<?=$adminselect?>
</select></td></tr>
<tr><td bgcolor="<?=ALTBG1?>" valign="top"><?=$lang['members_search_group']?><br><?=$lang['members_search_comment']?></td>
<td align="right" bgcolor="<?=ALTBG2?>">
<select name="usergroupid[]" size="5" multiple="multiple" style="width: 65%">
<option value="all"><?=$lang['unlimited']?></option>
<?=$groupselect?>
</select></td></tr>
<tr><td bgcolor="<?=ALTBG1?>" valign="top"><?=$lang['members_search_extgroup']?><br><?=$lang['members_search_comment']?></td>
<td align="right" bgcolor="<?=ALTBG2?>">
<select name="extusergroupid[]" size="5" multiple="multiple" style="width: 65%">
<option value="all"><?=$lang['unlimited']?></option>
<?=$extgroupselect?>
</select></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_user']?></td>
<td align="right" bgcolor="<?=ALTBG2?>">
<?=$lang['case_insensitive']?> <input type="checkbox" name="cins" value="1">
<br><input type="text" name="username" size="40" value="<?=dhtmlspecialchars($username)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_email']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="srchemail" size="40" value="<?=dhtmlspecialchars($srchemail)?>"></td></tr>
<tr><td class="altbg1"><?=$lang['credits']?> <?=$lang['members_search_lower']?>:</td>
<td align="right" class="altbg2"><input type="text" name="lower[credits]" size="40" value="<?=dhtmlspecialchars($lower[credits])?>"></td></tr>
<tr><td class="altbg1"><?=$lang['credits']?> <?=$lang['members_search_higher']?>:</td>
<td align="right" class="altbg2"><input type="text" name="higher[credits]" size="40" value="<?=dhtmlspecialchars($higher[credits])?>"></td></tr>
<?=$searchcredits?>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_postslower']?>:</td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="postslower" value="<?=dhtmlspecialchars($postslower)?>" size="40"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_postshigher']?>:</td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="postshigher" size="40" value="<?=dhtmlspecialchars($postshigher)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_regip']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="regip" size="40" value="<?=dhtmlspecialchars($regip)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_lastip']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="lastip" size="40" value="<?=dhtmlspecialchars($lastip)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_regdatebefore']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="regdatebefore" size="40" value="<?=dhtmlspecialchars($regdatebefore)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_regdateafter']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="regdateafter" size="40" value="<?=dhtmlspecialchars($regdateafter)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_lastvisitbefore']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="lastvisitbefore" size="40" value="<?=dhtmlspecialchars($lastvisitbefore)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_lastvisitafter']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="lastvisitafter" size="40" value="<?=dhtmlspecialchars($lastvisitafter)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_lastpostbefore']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="lastpostbefore" size="40" value="<?=dhtmlspecialchars($lastpostbefore)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_lastpostafter']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="lastpostafter" size="40" value="<?=dhtmlspecialchars($lastpostafter)?>"></td></tr>
<tr><td bgcolor="<?=ALTBG1?>"><?=$lang['members_search_birthday']?></td>
<td align="right" bgcolor="<?=ALTBG2?>"><input type="text" name="birthyear" size="5" value="<?=dhtmlspecialchars($year)?>"> <?=$lang['year']?> <select name="birthmonth"><option value=""> </option><?=$monthselect?></select> <?=$lang['month']?> <select name="birthday"><option value=""> </option><?=$dayselect?></select> <?=$lang['day']?></td></tr>
</table><br><center>
<input type="submit" name="searchsubmit" value="<?=$lang['members_search']?>">
<input type="submit" name="newslettersubmit" value="<?=$lang['members_newsletter']?>">
<input type="submit" name="creditsubmit" value="<?=$lang['members_credits']?>">
<input type="submit" name="deletesubmit" value="<?=$lang['members_delete']?>"></center>
<?
}
if(submitcheck('searchsubmit', 1) || submitcheck('deletesubmit') || submitcheck('newslettersubmit') || submitcheck('sendsubmit', 1) || submitcheck('creditsubmit') || submitcheck('updatecreditsubmit', 1)) {
$memberperpage = 100;
$page = !ispage($page) ? 1 : $page;
$start_limit = ($page - 1) * $memberperpage;
$dateoffset = date('Z') - ($timeoffset * 3600);
$conditions = '';
$conditions .= $username != '' ? " AND ".($cins ? '' : 'BINARY')." username LIKE '".str_replace(array('%', '*', '_'), array('\%', '%', '\_'), $username)."'" : '';
$conditions .= $srchemail != '' ? " AND email LIKE '".str_replace('*', '%', $srchemail)."'" : '';
$conditions .= !empty($admingroupid) && !in_array('all', $admingroupid) != '' ? " AND adminid IN ('".implode('\',\'', $admingroupid)."')" : '';
$conditions .= !empty($usergroupid) && !in_array('all', $usergroupid) != '' ? " AND groupid IN ('".implode('\',\'', $usergroupid)."')" : '';
$conditions .= !empty($extusergroupid) && !in_array('all', $extusergroupid) != '' ? " AND extgroupids IN ('".implode('\',\'', $extusergroupid)."')" : '';
if(is_array($higher)) {
foreach($higher as $credit => $value) {
if($value != '') {
$conditions .= " AND $credit>'$value'";
}
}
}
if(is_array($lower)) {
foreach($lower as $credit => $value) {
if($value != '') {
$conditions .= " AND $credit<'$value'";
}
}
}
$conditions .= $postshigher != '' ? " AND posts>'$postshigher'" : '';
$conditions .= $postslower != '' ? " AND posts<'$postslower'" : '';
$conditions .= $regip != '' ? " AND regip LIKE '$regip%'" : '';
$conditions .= $lastip != '' ? " AND lastip LIKE '$lastip%'" : '';
$conditions .= $regdatebefore != '' ? " AND regdate<'".(strtotime($regdatebefore) + $dateoffset)."'" : '';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -