|
|
|
@ -55,9 +55,8 @@ if(!isSet($_REQUEST['action'])){
|
|
|
|
|
}elseif($_REQUEST['action']=='post'){
|
|
|
|
|
check_session();
|
|
|
|
|
if(isSet($_REQUEST['kick']) && isSet($_REQUEST['sendto']) && valid_nick($_REQUEST['sendto'])){
|
|
|
|
|
if($U['status']>=5 || ($countmods==0 && $U['status']>=3)){
|
|
|
|
|
kick_chatter(array($_REQUEST['sendto']), $_REQUEST['message']);
|
|
|
|
|
if(isSet($_REQUEST['what']) && $_REQUEST['what']=='purge') del_all_messages($_REQUEST['sendto']);
|
|
|
|
|
if($U['status']>=5 || ($C['memkick'] && $countmods==0 && $U['status']>=3)){
|
|
|
|
|
if(kick_chatter(array($_REQUEST['sendto']), $_REQUEST['message']) && isSet($_REQUEST['what']) && $_REQUEST['what']=='purge') del_all_messages($_REQUEST['sendto']);
|
|
|
|
|
}
|
|
|
|
|
}elseif(isSet($_REQUEST['message']) && isSet($_REQUEST['sendto']) && !preg_match('/^\s*$/',$_REQUEST['message'])){
|
|
|
|
|
validate_input();
|
|
|
|
@ -108,8 +107,7 @@ if(!isSet($_REQUEST['action'])){
|
|
|
|
|
send_admin();
|
|
|
|
|
}elseif($_REQUEST['do']=='kick'){
|
|
|
|
|
if(!isSet($_REQUEST['name'])) send_admin();
|
|
|
|
|
kick_chatter($_REQUEST['name'], $_REQUEST['kickmessage']);
|
|
|
|
|
if(isSet($_REQUEST['what']) && $_REQUEST['what']=='purge'){
|
|
|
|
|
if(kick_chatter($_REQUEST['name'], $_REQUEST['kickmessage']) && isSet($_REQUEST['what']) && $_REQUEST['what']=='purge'){
|
|
|
|
|
foreach($_REQUEST['name'] as $name){
|
|
|
|
|
del_all_messages($name);
|
|
|
|
|
}
|
|
|
|
@ -146,23 +144,27 @@ if(!isSet($_REQUEST['action'])){
|
|
|
|
|
}
|
|
|
|
|
send_admin();
|
|
|
|
|
}elseif($_REQUEST['action']=='setup'){
|
|
|
|
|
$tables=array('captcha', 'filter', 'members', 'messages', 'notes', 'sessions', 'settings');
|
|
|
|
|
$tables=array('captcha', 'filter', 'ignored', 'members', 'messages', 'notes', 'sessions', 'settings');
|
|
|
|
|
$num_tables=0;
|
|
|
|
|
$result=mysqli_query($mysqli, 'SHOW TABLES');
|
|
|
|
|
while($tmp=mysqli_fetch_array($result, MYSQLI_NUM)){
|
|
|
|
|
if(in_array($tmp[0],$tables)) $num_tables++;
|
|
|
|
|
}
|
|
|
|
|
if($num_tables<7) send_init();
|
|
|
|
|
update_db();
|
|
|
|
|
if(!valid_admin()) send_alogin();
|
|
|
|
|
if(!isSet($_REQUEST['do'])){
|
|
|
|
|
}elseif($_REQUEST['do']=='guestaccess'){
|
|
|
|
|
if(isSet($_REQUEST['set']) && preg_match('/^[0123]$/', $_REQUEST['set'])){
|
|
|
|
|
update_setting('guestaccess', $_REQUEST['set']);
|
|
|
|
|
}
|
|
|
|
|
}elseif($_REQUEST['do']=='dbupdate'){
|
|
|
|
|
update_db();
|
|
|
|
|
}elseif($_REQUEST['do']=='messages'){
|
|
|
|
|
update_messages();
|
|
|
|
|
}elseif($_REQUEST['do']=='rules'){
|
|
|
|
|
$_REQUEST['rulestxt']=preg_replace("/\r\n/", '<br>', $_REQUEST['rulestxt']);
|
|
|
|
|
$_REQUEST['rulestxt']=preg_replace("/\n/", '<br>', $_REQUEST['rulestxt']);
|
|
|
|
|
$_REQUEST['rulestxt']=preg_replace("/\r/", '<br>', $_REQUEST['rulestxt']);
|
|
|
|
|
update_setting('rulestxt', $_REQUEST['rulestxt']);
|
|
|
|
|
}
|
|
|
|
|
send_setup();
|
|
|
|
|
}elseif($_REQUEST['action']=='init'){
|
|
|
|
@ -264,26 +266,22 @@ function send_setup(){
|
|
|
|
|
echo "<center><h2>$I[setup]</h2><table cellspacing=\"0\">";
|
|
|
|
|
thr();
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[guestacc]</b></td><td align=\"right\">";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'guestaccess').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass'])."<table cellspacing=\"0\">";
|
|
|
|
|
echo "<tr><td align=\"left\"> <input type=\"radio\" name=\"set\" id=\"set1\" value=\"1\"";
|
|
|
|
|
if($ga==1) echo " checked";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'guestaccess').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass']).'<table cellspacing="0">';
|
|
|
|
|
echo '<tr><td align="left"> <input type="radio" name="set" id="set1" value="1"';
|
|
|
|
|
if($ga==1) echo ' checked';
|
|
|
|
|
echo "><label for=\"set1\"> $I[guestallow]</label></td><td> </td><tr>";
|
|
|
|
|
echo "<tr><td align=\"left\"> <input type=\"radio\" name=\"set\" id=\"set2\" value=\"2\"";
|
|
|
|
|
if($ga==2) echo " checked";
|
|
|
|
|
echo '<tr><td align="left"> <input type="radio" name="set" id="set2" value="2"';
|
|
|
|
|
if($ga==2) echo ' checked';
|
|
|
|
|
echo "><label for=\"set2\"> $I[guestwait]</label></td><td> </td><tr>";
|
|
|
|
|
echo "<tr><td align=\"left\"> <input type=\"radio\" name=\"set\" id=\"set3\" value=\"3\"";
|
|
|
|
|
if($ga==3) echo " checked";
|
|
|
|
|
echo '<tr><td align="left"> <input type="radio" name="set" id="set3" value="3"';
|
|
|
|
|
if($ga==3) echo ' checked';
|
|
|
|
|
echo "><label for=\"set3\"> $I[adminallow]</label></td><td> </td><tr>";
|
|
|
|
|
echo "<tr><td align=\"left\"> <input type=\"radio\" name=\"set\" id=\"set0\" value=\"0\"";
|
|
|
|
|
if($ga==0) echo " checked";
|
|
|
|
|
echo "><label for=\"set0\"> $I[guestdisallow]</label></td><td> </td></tr><tr><td> </td><td align=\"right\">".submit($I['change'])."</td></tr></table></form></td></tr></table></td></tr>";
|
|
|
|
|
thr();
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[dbupdate]</b></td><td align=\"right\">";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'dbupdate').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass'])."<table cellspacing=\"0\">";
|
|
|
|
|
echo '<tr><td> </td><td>'.submit($I['update']).'</td></tr></table></form></td></tr></table></td></tr>';
|
|
|
|
|
echo '<tr><td align="left"> <input type="radio" name="set" id="set0" value="0"';
|
|
|
|
|
if($ga==0) echo ' checked';
|
|
|
|
|
echo "><label for=\"set0\"> $I[guestdisallow]</label></td><td> </td></tr><tr><td> </td><td align=\"right\">".submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>';
|
|
|
|
|
thr();
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[sysmessages]</b></td><td align=\"right\">";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'messages').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass'])."<table cellspacing=\"0\">";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'messages').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass']).'<table cellspacing="0">';
|
|
|
|
|
echo "<tr><td> $I[msgenter]</td><td> <input type=\"text\" name=\"msgenter\" value=\"".get_setting('msgenter').'"></td></tr>';
|
|
|
|
|
echo "<tr><td> $I[msgexit]</td><td> <input type=\"text\" name=\"msgexit\" value=\"".get_setting('msgexit').'"></td></tr>';
|
|
|
|
|
echo "<tr><td> $I[msgmemreg]</td><td> <input type=\"text\" name=\"msgmemreg\" value=\"".get_setting('msgmemreg').'"></td></tr>';
|
|
|
|
@ -294,6 +292,11 @@ function send_setup(){
|
|
|
|
|
echo "<tr><td> $I[msgclean]</td><td> <input type=\"text\" name=\"msgclean\" value=\"".get_setting('msgclean').'"></td></tr>';
|
|
|
|
|
echo '<tr><td> </td><td align="right">'.submit($I['apply']).'</td></tr></table></form></td></tr></table></td></tr>';
|
|
|
|
|
thr();
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[rules]</b></td><td align=\"right\">";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('do', 'rules').hidden('nick', $_REQUEST['nick']).hidden('pass', $_REQUEST['pass']).'<table cellspacing="0">';
|
|
|
|
|
echo '<tr><td colspan=2><textarea name="rulestxt" rows="4" cols="60">'.htmlspecialchars(get_setting('rulestxt')).'</textarea></td></tr>';
|
|
|
|
|
echo '<tr><td> </td><td align="right">'.submit($I['apply']).'</td></tr></table></form></td></tr></table></td></tr>';
|
|
|
|
|
thr();
|
|
|
|
|
echo "</table><$H[form]>".hidden('action', 'setup').submit($I['logout']).'</form>';
|
|
|
|
|
print_credits();
|
|
|
|
|
print_end();
|
|
|
|
@ -313,6 +316,14 @@ function send_init(){
|
|
|
|
|
print_end();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function send_update(){
|
|
|
|
|
global $H, $I;
|
|
|
|
|
print_start();
|
|
|
|
|
echo "<center><h2>$I[dbupdate]</h2><br><$H[form]>".hidden('action', 'setup').submit($I['initgosetup']).'</form><br>';
|
|
|
|
|
print_credits();
|
|
|
|
|
print_end();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function send_alogin(){
|
|
|
|
|
global $H, $I;
|
|
|
|
|
print_start();
|
|
|
|
@ -495,8 +506,8 @@ function send_filter($arg=''){
|
|
|
|
|
if($filter['regex']==0) $filter['match']=preg_replace('/(\\\\(.))/', "$2", $filter['match']);
|
|
|
|
|
echo '<tr><td>'.frmadm('filter').hidden('id', $filter['id']);
|
|
|
|
|
echo "<table cellspacing=\"0\" width=\"100%\"><tr><td style=\"width:8em\"><b>$I[filter] $filter[id]:</b></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"match\" value=\"".htmlspecialchars($filter['match'])."\" size=\"20\" style=\"background-color:#$U[bgcolour];$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"replace\" value=\"".htmlspecialchars($filter['replace'])."\" size=\"20\" style=\"background-color:#$U[bgcolour];$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"match\" value=\"".htmlspecialchars($filter['match'])."\" size=\"20\" style=\"$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"replace\" value=\"".htmlspecialchars($filter['replace'])."\" size=\"20\" style=\"$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:9em\"><input type=\"checkbox\" name=\"allowinpm\" id=\"allowinpm-$filter[id]\" value=\"1\"$check><label for=\"allowinpm-$filter[id]\">$I[allowpm]</label></td>";
|
|
|
|
|
echo "<td style=\"width:5em\"><input type=\"checkbox\" name=\"regex\" id=\"regex-$filter[id]\" value=\"1\"$checked><label for=\"regex-$filter[id]\">$I[regex]</label></td>";
|
|
|
|
|
echo "<td style=\"width:5em\"><input type=\"checkbox\" name=\"kick\" id=\"kick-$filter[id]\" value=\"1\"$checkedk><label for=\"kick-$filter[id]\">$I[kick]</label></td>";
|
|
|
|
@ -505,8 +516,8 @@ function send_filter($arg=''){
|
|
|
|
|
}
|
|
|
|
|
echo '<tr><td>'.frmadm('filter').hidden('id', '+');
|
|
|
|
|
echo "<table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\" style=\"width:8em\"><b>$I[newfilter]</b></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"match\" value=\"\" size=\"20\" style=\"background-color:#$U[bgcolour];$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"replace\" value=\"\" size=\"20\" style=\"background-color:#$U[bgcolour];$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"match\" value=\"\" size=\"20\" style=\"$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:12em\"><input type=\"text\" name=\"replace\" value=\"\" size=\"20\" style=\"$U[style]\"></td>";
|
|
|
|
|
echo "<td style=\"width:9em\"><input type=\"checkbox\" name=\"allowinpm\" id=\"allowinpm\" value=\"1\"><label for=\"allowinpm\">$I[allowpm]</label></td>";
|
|
|
|
|
echo "<td style=\"width:5em\"><input type=\"checkbox\" name=\"regex\" id=\"regex\" value=\"1\"><label for=\"regex\">$I[regex]</label></td>";
|
|
|
|
|
echo "<td style=\"width:5em\"><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"1\"><label for=\"kick\">$I[kick]</label></td>";
|
|
|
|
@ -592,7 +603,7 @@ function send_approve_waiting(){
|
|
|
|
|
}else{
|
|
|
|
|
echo "$I[waitempty]<br><br>";
|
|
|
|
|
}
|
|
|
|
|
print "$H[backtochat]</center>";
|
|
|
|
|
echo "$H[backtochat]</center>";
|
|
|
|
|
print_end();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -644,7 +655,7 @@ function send_waiting_room(){
|
|
|
|
|
echo "</head>$H[begin_body]<center><h2>$I[waitingroom]</h2><p>".sprintf($I['admwaittext'], $U['displayname']).'</p><br><p>'.sprintf($I['waitreload'], $C['defaultrefresh']).'</p><br><br>';
|
|
|
|
|
}
|
|
|
|
|
echo "<hr><form action=\"$_SERVER[SCRIPT_NAME]\" method=\"post\">".hidden('action', 'wait').hidden('session', $U['session']).submit($I['reload']).'</form><br>';
|
|
|
|
|
echo "<h2>$I[rules]</h2><b>$C[rulestxt]</b></center>";
|
|
|
|
|
echo "<h2>$I[rules]</h2><b>".get_setting('rulestxt').'</b></center>';
|
|
|
|
|
print_end();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -659,18 +670,18 @@ function send_choose_messages(){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function send_post(){
|
|
|
|
|
global $U, $C, $P, $I, $countmods;
|
|
|
|
|
global $U, $C, $P, $I, $countmods, $mysqli;
|
|
|
|
|
$U['postid']=substr(time(), -6);
|
|
|
|
|
print_start();
|
|
|
|
|
echo "<center><table cellspacing=\"0\"><tr><td align=\"center\">".frmpst('post').hidden('postid', $U['postid']).@hidden('multi', $_REQUEST['multi']);
|
|
|
|
|
echo "<table cellspacing=\"0\"><tr><td valign=\"top\">$U[displayname]</td><td valign=\"top\">:</td>";
|
|
|
|
|
if(!isSet($U['rejected'])) $U['rejected']='';
|
|
|
|
|
if(isSet($_REQUEST['multi']) && $_REQUEST['multi']=="on"){
|
|
|
|
|
echo "<td valign=\"top\"><textarea name=\"message\" wrap=\"virtual\" rows=\"$U[boxheight]\" cols=\"$U[boxwidth]\" style=\"background-color:#$U[bgcolour];$U[style]\">$U[rejected]</textarea></td>";
|
|
|
|
|
echo "<td valign=\"top\"><textarea name=\"message\" wrap=\"virtual\" rows=\"$U[boxheight]\" cols=\"$U[boxwidth]\" style=\"$U[style]\">$U[rejected]</textarea></td>";
|
|
|
|
|
}else{
|
|
|
|
|
echo "<td valign=\"top\"><input type=\"text\" name=\"message\" value=\"$U[rejected]\" size=\"$U[boxwidth]\" maxlength=\"$C[maxmessage]\" style=\"background-color:#$U[bgcolour];$U[style]\"></td>";
|
|
|
|
|
echo "<td valign=\"top\"><input type=\"text\" name=\"message\" value=\"$U[rejected]\" size=\"$U[boxwidth]\" maxlength=\"$C[maxmessage]\" style=\"$U[style]\"></td>";
|
|
|
|
|
}
|
|
|
|
|
echo '<td valign="top">'.submit($I['talkto'])."</td><td valign=\"top\"><select name=\"sendto\" size=\"1\" style=\"background-color:#$C[colbg];color:#$C[coltxt]\">";
|
|
|
|
|
echo '<td valign="top">'.submit($I['talkto'])."</td><td valign=\"top\"><select name=\"sendto\" size=\"1\">";
|
|
|
|
|
echo '<option '; if(isSet($_REQUEST['sendto']) && $_REQUEST['sendto']=='*') echo 'selected '; echo "value=\"*\">-$I[toall]-</option>";
|
|
|
|
|
if($U['status']>=3){
|
|
|
|
|
echo '<option ';
|
|
|
|
@ -687,16 +698,25 @@ function send_post(){
|
|
|
|
|
if(isSet($_REQUEST['sendto']) && $_REQUEST['sendto']=='&') echo 'selected ';
|
|
|
|
|
echo "value=\"&\">-$I[toadmin]-</option>";
|
|
|
|
|
}
|
|
|
|
|
$ignored=array();
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, '(SELECT `by` FROM `ignored` WHERE `ignored`=? OR `by`=?) UNION (SELECT `ignored` FROM `ignored` WHERE `ignored`=? OR `by`=?)');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ssss', $U['nickname'], $U['nickname'], $U['nickname'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_bind_result($stmt, $ign);
|
|
|
|
|
while(mysqli_stmt_fetch($stmt)){
|
|
|
|
|
$ignored[]=$ign;
|
|
|
|
|
}
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
array_multisort(array_map('strtolower', array_keys($P)), SORT_ASC, SORT_STRING, $P);
|
|
|
|
|
foreach($P as $user){
|
|
|
|
|
if($U['nickname']!==$user[0]){
|
|
|
|
|
if($U['nickname']!==$user[0] && !in_array($user[0], $ignored)){
|
|
|
|
|
echo '<option ';
|
|
|
|
|
if(isSet($_REQUEST['sendto']) && $_REQUEST['sendto']==$user[0]) echo 'selected ';
|
|
|
|
|
echo "value=\"$user[0]\" style=\"$user[2]\">$user[0]</option>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
echo '</select>';
|
|
|
|
|
if($U['status']>=5 || ($countmods==0 && $U['status']>=3)){
|
|
|
|
|
if($U['status']>=5 || ($C['memkick'] && $countmods==0 && $U['status']>=3)){
|
|
|
|
|
echo "<input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"kick\"><label for=\"kick\"> $I[kick]</label>";
|
|
|
|
|
echo "<input type=\"checkbox\" name=\"what\" id=\"what\" value=\"purge\" checked><label for=\"what\"> $I[alsopurge]</label>";
|
|
|
|
|
}
|
|
|
|
@ -717,7 +737,7 @@ function send_post(){
|
|
|
|
|
function send_help(){
|
|
|
|
|
global $U, $C, $H, $I;
|
|
|
|
|
print_start();
|
|
|
|
|
echo "<h2>$I[rules]</h2>$C[rulestxt]<br><br><hr><h2>$I[help]</h2>$I[helpguest]";
|
|
|
|
|
echo "<h2>$I[rules]</h2>".get_setting('rulestxt')."<br><br><hr><h2>$I[help]</h2>$I[helpguest]";
|
|
|
|
|
if($C['imgembed'] || $C['vidembed']) echo "<br>$I[helpembed]";
|
|
|
|
|
if($U['status']>=3){
|
|
|
|
|
echo "<br>$I[helpmem]<br>";
|
|
|
|
@ -732,10 +752,47 @@ function send_help(){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function send_profile($arg=''){
|
|
|
|
|
global $U, $F, $H, $I;
|
|
|
|
|
global $U, $F, $H, $I, $P, $C, $mysqli;
|
|
|
|
|
print_start();
|
|
|
|
|
echo "<center><$H[form]>".hidden('action', 'profile').hidden('do', 'save').hidden('session', $U['session'])."<h2>$I[profile]</h2><i>$arg</i><table cellspacing=\"0\">";
|
|
|
|
|
thr();
|
|
|
|
|
array_multisort(array_map('strtolower', array_keys($P)), SORT_ASC, SORT_STRING, $P);
|
|
|
|
|
$ignored=array();
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT `ignored` FROM `ignored` WHERE `by`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 's', $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_store_result($stmt);
|
|
|
|
|
if(mysqli_stmt_num_rows($stmt)>0){
|
|
|
|
|
mysqli_stmt_bind_result($stmt, $ign);
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[unignore]</b></td><td align=\"right\"><table cellspacing=\"0\">";
|
|
|
|
|
echo "<tr><td> </td><td><select name=\"unignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
|
|
|
|
|
while(mysqli_stmt_fetch($stmt)){
|
|
|
|
|
$ignored[]=$ign;
|
|
|
|
|
$style='';
|
|
|
|
|
foreach($P as $user){
|
|
|
|
|
if($ign==$user[0]){
|
|
|
|
|
$style=" style=\"$user[2]\"";
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
echo "<option value=\"$ign\"$style>$ign</option>";
|
|
|
|
|
}
|
|
|
|
|
echo '</select></td></tr></table></td></tr></table></td></tr>';
|
|
|
|
|
thr();
|
|
|
|
|
}
|
|
|
|
|
mysqli_stmt_free_result($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
if(count($P)-count($ignored)>1){
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[ignore]</b></td><td align=\"right\"><table cellspacing=\"0\">";
|
|
|
|
|
echo "<tr><td> </td><td><select name=\"ignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
|
|
|
|
|
foreach($P as $user){
|
|
|
|
|
if($U['nickname']!==$user[0] && !in_array($user[0], $ignored)){
|
|
|
|
|
echo "<option value=\"$user[0]\" style=\"$user[2]\">$user[0]</option>";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
echo '</select></td></tr></table></td></tr></table></td></tr>';
|
|
|
|
|
thr();
|
|
|
|
|
}
|
|
|
|
|
echo "<tr><td><table cellspacing=\"0\" width=\"100%\"><tr><td align=\"left\"><b>$I[refreshrate]</b></td><td align=\"right\"><table cellspacing=\"0\">";
|
|
|
|
|
echo "<tr><td> </td><td><input type=\"text\" name=\"refresh\" size=\"3\" maxlength=\"3\" value=\"$U[refresh]\"></td></tr></table></td></tr></table></td></tr>";
|
|
|
|
|
thr();
|
|
|
|
@ -843,7 +900,11 @@ function send_login(){
|
|
|
|
|
print_start();
|
|
|
|
|
echo "<center><h1>$C[chatname]</h1><$H[form] target=\"_parent\">".hidden('action', 'login');
|
|
|
|
|
if($C['enablecaptcha']){
|
|
|
|
|
$code=rand(0, 99999);
|
|
|
|
|
$length=strlen($C['captchachars']);
|
|
|
|
|
$code='';
|
|
|
|
|
for($i=0;$i<5;$i++) {
|
|
|
|
|
$code .= $C['captchachars'][rand(0, $length-1)];
|
|
|
|
|
}
|
|
|
|
|
$randid=rand(0, 99999999);
|
|
|
|
|
$enc=base64_encode(openssl_encrypt("$code, $randid", 'aes-128-cbc', $C['captchapass'], 0, '1234567890123456'));
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'INSERT INTO `captcha` (`id`, `time`) VALUES (?, \''.time().'\')');
|
|
|
|
@ -859,12 +920,16 @@ function send_login(){
|
|
|
|
|
echo send_captcha($code);
|
|
|
|
|
echo '</td><td align="right"><input type="text" name="captcha" size="15" autocomplete="off"></td></tr>';
|
|
|
|
|
}
|
|
|
|
|
echo "<tr><td colspan=\"2\" align=\"center\">$I[choosecol]<br><select style=\"text-align:center;color:#$C[coltxt];background-color:#$C[colbg];\" name=\"colour\"><option value=\"\">* $I[randomcol] *</option>";
|
|
|
|
|
if(get_setting('guestaccess')>0){
|
|
|
|
|
echo "<tr><td colspan=\"2\" align=\"center\">$I[choosecol]<br><select style=\"text-align:center;\" name=\"colour\"><option value=\"\">* $I[randomcol] *</option>";
|
|
|
|
|
print_colours();
|
|
|
|
|
echo '</select></td></tr>';
|
|
|
|
|
}else{
|
|
|
|
|
echo "<tr><td colspan=\"2\" align=\"center\">$I[noguests]</td></tr>";
|
|
|
|
|
}
|
|
|
|
|
$nowchatting=get_nowchatting();
|
|
|
|
|
echo '<tr><td colspan="2" align="center">'.submit($I['enter'])."</td></tr></table></form>$nowchatting";
|
|
|
|
|
echo "<h2>$I[rules]</h2><b>$C[rulestxt]</b><br><br><p>$I[changelang]";
|
|
|
|
|
echo "<h2>$I[rules]</h2><b>".get_setting('rulestxt')."</b><br><br><p>$I[changelang]";
|
|
|
|
|
foreach($L as $lang=>$name){
|
|
|
|
|
echo " <a href=\"$_SERVER[SCRIPT_NAME]?lang=$lang\">$name</a>";
|
|
|
|
|
}
|
|
|
|
@ -1072,6 +1137,10 @@ function kill_session(){
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 's', $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'DELETE FROM `ignored` WHERE `ignored`=? OR `by`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ss', $U['nickname'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}
|
|
|
|
|
elseif($C['msglogout'] && $U['status']>=3) add_system_message(sprintf(get_setting('msgexit'), $U['displayname']));
|
|
|
|
|
}
|
|
|
|
@ -1097,11 +1166,11 @@ function kick_chatter($names, $mes){
|
|
|
|
|
}
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
if($C['msgkick']){
|
|
|
|
|
if($lonick!==''){
|
|
|
|
|
if($names[0]=='&'){
|
|
|
|
|
add_system_message(get_setting('msgallkick'));
|
|
|
|
|
}else{
|
|
|
|
|
$lonick=preg_replace('/\,\s$/','',$lonick);
|
|
|
|
|
if($lonick!==''){
|
|
|
|
|
if($i>1){
|
|
|
|
|
add_system_message(sprintf(get_setting('msgmultikick'), $lonick));
|
|
|
|
|
}else{
|
|
|
|
@ -1110,6 +1179,8 @@ function kick_chatter($names, $mes){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if($lonick!=='') return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function logout_chatter($names){
|
|
|
|
@ -1118,6 +1189,7 @@ function logout_chatter($names){
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'DELETE FROM `sessions` WHERE `session`=? AND `status`<? AND `status`!=\'0\'');
|
|
|
|
|
$stmt1=mysqli_prepare($mysqli, 'UPDATE `messages` SET `poster`=\'\' WHERE `poster`=? AND `poststatus`=\'9\'');
|
|
|
|
|
$stmt2=mysqli_prepare($mysqli, 'UPDATE `messages` SET `recipient`=\'\' WHERE `recipient`=? AND `poststatus`=\'9\'');
|
|
|
|
|
$stmt3=mysqli_prepare($mysqli, 'DELETE FROM `ignored` WHERE `ignored`=? OR `by`=?');
|
|
|
|
|
if(isSet($lines)){
|
|
|
|
|
foreach($names as $name){
|
|
|
|
|
foreach($lines as $temp){
|
|
|
|
@ -1127,8 +1199,10 @@ function logout_chatter($names){
|
|
|
|
|
if($temp['status']==1){
|
|
|
|
|
mysqli_stmt_bind_param($stmt1, 's', $temp['nickname']);
|
|
|
|
|
mysqli_stmt_bind_param($stmt2, 's', $temp['nickname']);
|
|
|
|
|
mysqli_stmt_bind_param($stmt3, 'ss', $temp['nickname'], $temp['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt1);
|
|
|
|
|
mysqli_stmt_execute($stmt2);
|
|
|
|
|
mysqli_stmt_execute($stmt3);
|
|
|
|
|
}
|
|
|
|
|
unset($P[$name]);
|
|
|
|
|
}
|
|
|
|
@ -1138,6 +1212,7 @@ function logout_chatter($names){
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt1);
|
|
|
|
|
mysqli_stmt_close($stmt2);
|
|
|
|
|
mysqli_stmt_close($stmt3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function update_session(){
|
|
|
|
@ -1183,19 +1258,23 @@ function parse_sessions(){
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'DELETE FROM `sessions` WHERE `nickname`=?');
|
|
|
|
|
$stmt1=mysqli_prepare($mysqli, 'UPDATE `messages` SET `poster`=\'\' WHERE `poster`=? AND `poststatus`=\'9\'');
|
|
|
|
|
$stmt2=mysqli_prepare($mysqli, 'UPDATE `messages` SET `recipient`=\'\' WHERE `recipient`=? AND `poststatus`=\'9\'');
|
|
|
|
|
$stmt3=mysqli_prepare($mysqli, 'DELETE FROM `ignored` WHERE `ignored`=? OR `by`=?');
|
|
|
|
|
while($temp=mysqli_fetch_array($result, MYSQLI_ASSOC)){
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 's', $temp['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
if($temp['status']<=1){
|
|
|
|
|
mysqli_stmt_bind_param($stmt1, 's', $temp['nickname']);
|
|
|
|
|
mysqli_stmt_bind_param($stmt2, 's', $temp['nickname']);
|
|
|
|
|
mysqli_stmt_bind_param($stmt3, 'ss', $temp['nickname'], $temp['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt1);
|
|
|
|
|
mysqli_stmt_execute($stmt2);
|
|
|
|
|
mysqli_stmt_execute($stmt3);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt1);
|
|
|
|
|
mysqli_stmt_close($stmt2);
|
|
|
|
|
mysqli_stmt_close($stmt3);
|
|
|
|
|
}
|
|
|
|
|
$result=mysqli_query($mysqli, 'SELECT * FROM `sessions` WHERE `entry`=\'0\' ORDER BY `status` DESC, `lastpost` DESC');
|
|
|
|
|
if(mysqli_num_rows($result)>0){
|
|
|
|
@ -1407,65 +1486,41 @@ function amend_profile(){
|
|
|
|
|
|
|
|
|
|
function save_profile(){
|
|
|
|
|
global $U, $C, $I, $mysqli;
|
|
|
|
|
if(isSet($_REQUEST['oldpass']) && $_REQUEST['oldpass']=='' && ($_REQUEST['newpass']!=='' || $_REQUEST['confirmpass']!=='')){
|
|
|
|
|
send_profile($I['wrongpass']);
|
|
|
|
|
}elseif(isSet($_REQUEST['newpass']) && $_REQUEST['newpass']!==$_REQUEST['confirmpass']){
|
|
|
|
|
if(!isSet($_REQUEST['oldpass'])) $_REQUEST['oldpass']='';
|
|
|
|
|
if(!isSet($_REQUEST['newpass'])) $_REQUEST['newpass']='';
|
|
|
|
|
if(!isSet($_REQUEST['confirmpass'])) $_REQUEST['confirmpass']='';
|
|
|
|
|
if($_REQUEST['newpass']!==$_REQUEST['confirmpass']){
|
|
|
|
|
send_profile($I['noconfirm']);
|
|
|
|
|
}
|
|
|
|
|
// check and rewrite session
|
|
|
|
|
if(isSet($_REQUEST['oldpass']) && $_REQUEST['oldpass']!==''){
|
|
|
|
|
}elseif($_REQUEST['newpass']!==''){
|
|
|
|
|
$U['oldhash']=md5(sha1(md5($U['nickname'].$_REQUEST['oldpass'])));
|
|
|
|
|
}else{
|
|
|
|
|
$U['oldhash']=$U['passhash'];
|
|
|
|
|
}
|
|
|
|
|
if(isSet($_REQUEST['newpass']) && $_REQUEST['newpass']!==''){
|
|
|
|
|
$U['newhash']=md5(sha1(md5($U['nickname'].$_REQUEST['newpass'])));
|
|
|
|
|
}else{
|
|
|
|
|
$U['newhash']=$U['passhash'];
|
|
|
|
|
$U['oldhash']=$U['newhash']=$U['passhash'];
|
|
|
|
|
}
|
|
|
|
|
$U['orihash']=$U['passhash'];
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT * FROM `sessions` WHERE `session`=? AND `passhash`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ss', $U['session'], $U['oldhash']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_store_result($stmt);
|
|
|
|
|
if(mysqli_stmt_num_rows($stmt)>0){
|
|
|
|
|
mysqli_stmt_free_result($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
amend_profile();
|
|
|
|
|
if($U['passhash']!==$U['oldhash']) send_profile($I['wrongpass']);
|
|
|
|
|
$U['passhash']=$U['newhash'];
|
|
|
|
|
amend_profile();
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'UPDATE `sessions` SET `refresh`=?, `displayname`=?, `fontinfo`=?, `style`=?, `passhash`=?, `boxwidth`=?, `boxheight`=?, `bgcolour`=?, `notesboxwidth`=?, `notesboxheight`=?, `timestamps`=?, `embed`=? WHERE `session`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'dssssddsdddds', $U['refresh'], $U['displayname'], $U['fontinfo'], $U['style'], $U['passhash'], $U['boxwidth'], $U['boxheight'], $U['bgcolour'], $U['notesboxwidth'], $U['notesboxheight'], $U['timestamps'], $U['embed'], $U['session']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}else{
|
|
|
|
|
mysqli_stmt_free_result($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}
|
|
|
|
|
if($U['orihash']!==$U['oldhash']) send_profile($I['wrongpass']);
|
|
|
|
|
// rewrite member file
|
|
|
|
|
if($U['status']>=2){
|
|
|
|
|
$err='';
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT `passhash`, `status` FROM `members` WHERE `nickname`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 's', $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_bind_result($stmt, $temp['passhash'], $temp['status']);
|
|
|
|
|
if(mysqli_stmt_fetch($stmt)){
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
$U['sessionstatus']=$U['status'];
|
|
|
|
|
$U['status']=$temp['status'];
|
|
|
|
|
if($temp['passhash']!==$U['orihash']){
|
|
|
|
|
$err=$I['wrongpass'];
|
|
|
|
|
}else{
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'UPDATE `members` SET `passhash`=?, `refresh`=?, `colour`=?, `bgcolour`=?, `fontface`=?, `fonttags`=?, `boxwidth`=?, `boxheight`=?, `notesboxwidth`=?, `notesboxheight`=?, `timestamps`=?, `embed`=? WHERE `nickname`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'sdssssdddddds', $U['passhash'], $U['refresh'], $U['colour'], $U['bgcolour'], $U['fontface'], $U['fonttags'], $U['boxwidth'], $U['boxheight'], $U['notesboxwidth'], $U['notesboxheight'], $U['timestamps'], $U['embed'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}
|
|
|
|
|
$U['status']=$U['sessionstatus'];
|
|
|
|
|
}else{
|
|
|
|
|
if(isSet($_REQUEST['unignore']) && $_REQUEST['unignore']!=''){
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'DELETE FROM `ignored` WHERE `ignored`=? AND `by`=?');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ss', $_REQUEST['unignore'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}
|
|
|
|
|
if($err!=='') send_profile($err);
|
|
|
|
|
if(isSet($_REQUEST['ignore']) && $_REQUEST['ignore']!=''){
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'INSERT INTO `ignored` (`ignored`,`by`) VALUES (?, ?)');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ss', $_REQUEST['ignore'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
}
|
|
|
|
|
send_profile($I['succprofile']);
|
|
|
|
|
}
|
|
|
|
@ -1507,7 +1562,7 @@ function add_user_defaults(){
|
|
|
|
|
// message handling
|
|
|
|
|
|
|
|
|
|
function validate_input(){
|
|
|
|
|
global $U, $P, $C;
|
|
|
|
|
global $U, $P, $C, $mysqli;
|
|
|
|
|
$U['message']=substr($_REQUEST['message'], 0, $C['maxmessage']);
|
|
|
|
|
if(!isSet($U['rejected'])) $U['rejected']=substr($_REQUEST['message'], $C['maxmessage']);
|
|
|
|
|
if(preg_match('/&[^;]{0,8}$/', $U['message']) && preg_match('/^([^;]{0,8};)/', $U['rejected'], $match)){
|
|
|
|
@ -1550,17 +1605,26 @@ function validate_input(){
|
|
|
|
|
$U['poststatus']='6';
|
|
|
|
|
$U['displaysend']="[Admin] $U[displayname] - ";
|
|
|
|
|
}else{// known nick in room?
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT * FROM `ignored` WHERE (`ignored`=? AND `by`=?) OR (`ignored`=? AND `by`=?)');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ssss', $U['nickname'], $_REQUEST['sendto'], $_REQUEST['sendto'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_store_result($stmt);
|
|
|
|
|
if(mysqli_stmt_num_rows($stmt)==0){
|
|
|
|
|
foreach($P as $chatter){
|
|
|
|
|
if($_REQUEST['sendto']==$chatter[0]){
|
|
|
|
|
$U['recipient']=$chatter[0];
|
|
|
|
|
$U['displayrecp']=style_this($chatter[0], $chatter[2]);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
mysqli_stmt_free_result($stmt);
|
|
|
|
|
mysqli_stmt_close($stmt);
|
|
|
|
|
if($U['recipient']!==''){
|
|
|
|
|
$U['poststatus']='9';
|
|
|
|
|
$U['delstatus']='9';
|
|
|
|
|
$U['displaysend']="[$U[displayname] to $U[displayrecp]] - ";
|
|
|
|
|
}else{// nick left already
|
|
|
|
|
}else{// nick left already or ignores us
|
|
|
|
|
$U['message']='';
|
|
|
|
|
$U['rejected']='';
|
|
|
|
|
}
|
|
|
|
@ -1712,8 +1776,12 @@ function del_last_message(){
|
|
|
|
|
function print_messages($delstatus=''){
|
|
|
|
|
global $U, $C, $mysqli;
|
|
|
|
|
mysqli_query($mysqli, 'DELETE FROM `messages` WHERE `postdate`<=\''.(time()-60*$C['messageexpire'])."'");
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT `postdate`, `postid`, `text`, `delstatus` FROM `messages` WHERE `id` IN (SELECT * FROM (SELECT `id` FROM `messages` WHERE `poststatus`=\'1\' ORDER BY `postdate` DESC LIMIT ?) AS t) OR (`poststatus`>\'1\' AND `poststatus`<=?) OR (`poststatus`=\'9\' AND (`poster`=? OR `recipient`=?)) ORDER BY `postdate` DESC');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ddss', $C['messagelimit'], $U['status'], $U['nickname'], $U['nickname']);
|
|
|
|
|
$stmt=mysqli_prepare($mysqli, 'SELECT `postdate`, `postid`, `text`, `delstatus` FROM `messages` WHERE ('.
|
|
|
|
|
'`id` IN (SELECT * FROM (SELECT `id` FROM `messages` WHERE `poststatus`=\'1\' ORDER BY `postdate` DESC LIMIT ?) AS t) '.
|
|
|
|
|
'OR (`poststatus`>\'1\' AND `poststatus`<=?) '.
|
|
|
|
|
'OR (`poststatus`=\'9\' AND ( (`poster`=? AND `recipient` NOT IN (SELECT * FROM (SELECT `ignored` FROM `ignored` WHERE `by`=?) AS t) ) OR `recipient`=?) )'.
|
|
|
|
|
') AND `poster` NOT IN (SELECT * FROM (SELECT `ignored` FROM `ignored` WHERE `by`=?) AS t) ORDER BY `postdate` DESC');
|
|
|
|
|
mysqli_stmt_bind_param($stmt, 'ddssss', $C['messagelimit'], $U['status'], $U['nickname'], $U['nickname'], $U['nickname'], $U['nickname']);
|
|
|
|
|
mysqli_stmt_execute($stmt);
|
|
|
|
|
mysqli_stmt_bind_result($stmt, $message['postdate'], $message['postid'], $message['text'], $message['delstatus']);
|
|
|
|
|
while(mysqli_stmt_fetch($stmt)){
|
|
|
|
@ -1866,13 +1934,13 @@ function style_this($text, $styleinfo){
|
|
|
|
|
function init_chat(){
|
|
|
|
|
global $H, $C, $U, $I, $mysqli;
|
|
|
|
|
$suwrite='';
|
|
|
|
|
$tables=array('captcha', 'filter', 'members', 'messages', 'notes', 'sessions', 'settings');
|
|
|
|
|
$tables=array('captcha', 'filter', 'ignored', 'members', 'messages', 'notes', 'sessions', 'settings');
|
|
|
|
|
$num_tables=0;
|
|
|
|
|
$result=mysqli_query($mysqli, 'SHOW TABLES');
|
|
|
|
|
while($tmp=mysqli_fetch_array($result, MYSQLI_NUM)){
|
|
|
|
|
if(in_array($tmp[0],$tables)) $num_tables++;
|
|
|
|
|
}
|
|
|
|
|
if($num_tables==7){
|
|
|
|
|
if($num_tables>=7){
|
|
|
|
|
$suwrite=$I['initdbexist'];
|
|
|
|
|
$result=mysqli_query($mysqli, 'SELECT * FROM `members` WHERE `status`=\'8\'');
|
|
|
|
|
if(mysqli_num_rows($result)>0){
|
|
|
|
@ -1885,6 +1953,7 @@ function init_chat(){
|
|
|
|
|
}else{
|
|
|
|
|
mysqli_multi_query($mysqli, 'CREATE TABLE IF NOT EXISTS `captcha` (`id` int(10) unsigned NOT NULL, `time` int(10) unsigned NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `filter` (`id` tinyint(3) unsigned NOT NULL, `match` tinytext NOT NULL, `replace` text NOT NULL, `allowinpm` tinyint(1) unsigned NOT NULL, `regex` tinyint(1) unsigned NOT NULL, `kick` tinyint(1) unsigned NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `ignored` (`id` int(10) unsigned NOT NULL, `ignored` tinytext NOT NULL, `by` tinytext NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `members` (`id` tinyint(3) unsigned NOT NULL, `nickname` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `passhash` tinytext NOT NULL, `status` tinyint(3) unsigned NOT NULL, `refresh` tinyint(3) unsigned NOT NULL, `colour` tinytext NOT NULL, `bgcolour` tinytext NOT NULL, `fontface` tinytext NOT NULL, `fonttags` tinytext NOT NULL, `boxwidth` tinyint(3) unsigned NOT NULL, `boxheight` tinyint(3) unsigned NOT NULL, `notesboxheight` tinyint(3) unsigned NOT NULL, `notesboxwidth` tinyint(3) unsigned NOT NULL, `regedby` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `lastlogin` int(10) unsigned NOT NULL, `timestamps` tinyint(1) unsigned NOT NULL, `embed` tinyint(1) unsigned NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `messages` (`id` int(10) unsigned NOT NULL, `postdate` int(10) unsigned NOT NULL, `postid` int(10) unsigned NOT NULL, `poststatus` tinyint(3) unsigned NOT NULL, `poster` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `recipient` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `text` text NOT NULL, `delstatus` tinyint(3) unsigned NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `notes` (`id` int(10) unsigned NOT NULL, `type` tinytext NOT NULL, `lastedited` int(10) unsigned NOT NULL, `editedby` tinytext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `text` text NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
@ -1892,12 +1961,14 @@ function init_chat(){
|
|
|
|
|
'CREATE TABLE IF NOT EXISTS `settings` (`id` tinyint(3) unsigned NOT NULL, `setting` tinytext NOT NULL, `value` tinytext NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; '.
|
|
|
|
|
'ALTER TABLE `captcha` ADD UNIQUE KEY `id` (`id`); '.
|
|
|
|
|
'ALTER TABLE `filter` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `ignored` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `members` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `messages` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `notes` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `sessions` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `settings` ADD PRIMARY KEY (`id`); '.
|
|
|
|
|
'ALTER TABLE `filter` MODIFY `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT; '.
|
|
|
|
|
'ALTER TABLE `ignored` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT; '.
|
|
|
|
|
'ALTER TABLE `members` MODIFY `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT; '.
|
|
|
|
|
'ALTER TABLE `messages` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT; '.
|
|
|
|
|
'ALTER TABLE `notes` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT; '.
|
|
|
|
@ -1935,8 +2006,8 @@ function init_chat(){
|
|
|
|
|
$suwrite=$I['susuccess'];
|
|
|
|
|
}
|
|
|
|
|
print_start();
|
|
|
|
|
print "<center><h2>$I[init]</h2><br><h3>$I[sulogin]</h3>$suwrite<br><br><br>";
|
|
|
|
|
print "<$H[form]>".hidden('action', 'setup').hidden('nick', $_REQUEST['sunick']).hidden('pass', $_REQUEST['supass']).submit($I['initgosetup']).'</form>';
|
|
|
|
|
echo "<center><h2>$I[init]</h2><br><h3>$I[sulogin]</h3>$suwrite<br><br><br>";
|
|
|
|
|
echo "<$H[form]>".hidden('action', 'setup').hidden('nick', $_REQUEST['sunick']).hidden('pass', $_REQUEST['supass']).submit($I['initgosetup']).'</form>';
|
|
|
|
|
print_credits();
|
|
|
|
|
print_end();
|
|
|
|
|
}
|
|
|
|
@ -1945,7 +2016,16 @@ function update_db(){
|
|
|
|
|
global $C, $mysqli;
|
|
|
|
|
$dbversion=get_setting('dbversion');
|
|
|
|
|
if($dbversion<$C['dbversion']){
|
|
|
|
|
if($dbversion<2){
|
|
|
|
|
mysqli_query($mysqli, 'CREATE TABLE IF NOT EXISTS `ignored` (`id` int(10) unsigned NOT NULL, `ignored` tinytext NOT NULL, `by` tinytext NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8');
|
|
|
|
|
mysqli_query($mysqli, 'ALTER TABLE `ignored` ADD PRIMARY KEY (`id`)');
|
|
|
|
|
mysqli_query($mysqli, 'ALTER TABLE `ignored` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT');
|
|
|
|
|
}
|
|
|
|
|
if($dbversion<3){
|
|
|
|
|
mysqli_query($mysqli, 'INSERT INTO `settings` (`setting`, `value`) VALUES (\'rulestxt\', \'1. YOUR_RULS<br>2. YOUR_RULES\')');
|
|
|
|
|
}
|
|
|
|
|
update_setting('dbversion', $C['dbversion']);
|
|
|
|
|
send_update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2020,7 +2100,7 @@ function check_db(){
|
|
|
|
|
$mysqli=mysqli_connect($C['dbhost'], $C['dbuser'], $C['dbpass'], $C['dbname']);
|
|
|
|
|
if(mysqli_connect_errno($mysqli)){
|
|
|
|
|
if($_REQUEST['action']=='setup'){
|
|
|
|
|
die($I['nosetupdb']);
|
|
|
|
|
die($I['nodbsetup']);
|
|
|
|
|
}else{
|
|
|
|
|
die($I['nodb']);
|
|
|
|
|
}
|
|
|
|
@ -2046,9 +2126,9 @@ function load_lang(){
|
|
|
|
|
function load_config(){
|
|
|
|
|
global $C;
|
|
|
|
|
$C=array(
|
|
|
|
|
'version' =>'1.0', // Script version
|
|
|
|
|
'dbversion' =>1, // Database version
|
|
|
|
|
'showcredits' =>true, // Allow showing credits
|
|
|
|
|
'version' =>'1.3', // Script version
|
|
|
|
|
'dbversion' =>3, // Database version
|
|
|
|
|
'showcredits' =>false, // Allow showing credits
|
|
|
|
|
'colbg' =>'000000', // Background colour
|
|
|
|
|
'coltxt' =>'FFFFFF', // Default text colour
|
|
|
|
|
'collnk' =>'0000FF', // Link colour
|
|
|
|
@ -2075,8 +2155,9 @@ function load_config(){
|
|
|
|
|
'dbpass' =>'YOUR_DB_PASS', // Database password
|
|
|
|
|
'dbname' =>'public_chat', // Database
|
|
|
|
|
'captchapass' =>'YOUR_PASS', // Password used for captcha encryption
|
|
|
|
|
'captchachars' =>'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', // Characters used for captcha generation
|
|
|
|
|
'enablecaptcha' =>true, // Enable captcha? ture/false
|
|
|
|
|
'dismemcaptcha' =>true, // Disable captcha for members? ture/false
|
|
|
|
|
'dismemcaptcha' =>false, // Disable captcha for members? ture/false
|
|
|
|
|
'embed' =>true, // Default for displaying embedded imgs/vids or turn them into links true/false
|
|
|
|
|
'imgembed' =>true, // Allow image embedding in chat using [img] tag? ture/false Warning: this might leak session data to the image hoster when cookies are disabled.
|
|
|
|
|
'vidembed' =>true, // Allow video embedding in chat using [vid] tag? ture/false Warning: this might leak session data to the video hoster when cookies are disabled.
|
|
|
|
@ -2086,12 +2167,12 @@ function load_config(){
|
|
|
|
|
'msglogout' =>false, // Add a message on member logout
|
|
|
|
|
'msglogin' =>true, // Add a message on member login
|
|
|
|
|
'msgkick' =>true, // Add a message when kicking someone
|
|
|
|
|
'memkick' =>true, // Let a member kick guests if no mod is present
|
|
|
|
|
'sendmail' =>false, // Send mail on new message - only activate on low traffic chat or your inbox will fill up very fast!
|
|
|
|
|
'mailsender' =>'www-data <www-data@localhost>', // Send mail using this e-Mail address
|
|
|
|
|
'mailreceiver' =>'Webmaster <webmaster@localhost>', // Send mail to this e-Mail address
|
|
|
|
|
'redirect' =>"$_SERVER[SCRIPT_NAME]?action=redirect&url=", // Redirect script default: "$_SERVER[SCRIPT_NAME]?action=redirect&url="
|
|
|
|
|
'lang' =>'en', // Default language
|
|
|
|
|
'rulestxt' =>'1. YOUR_RULS<br>2. YOUR_RULES' // Rules - divide multiple rules by <br> to make them appear in a new line
|
|
|
|
|
'lang' =>'en' // Default language
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|