[Ищу] VOC++(Моды,Дизайны)

Фикс исправляющий баг, когда при регистрации (если в админке отключен клубный режим), пользователь выбрав пол в результате оставался в группе ОНИ.
(странно что за 5 лет этот баг так никто и не исправил)
*** скрытое содержание ***

не работает...(((
 
PHP:
создаем data/vote/vote.dat
далее
в корне чата создаем файл users_ban.php с таким содержанием:
<?php 
///Конфиг/// 
$votes_for_ban = 3; //Кол-во голосов для бана. 
$raz = 0; // Кол-во фраз для разрешения бана. это если есть подсчет.///Скрипт/// 
require_once("inc_common.php"); 
include($ld_engine_path."rooms_get_list.php"); 
include($engine_path."users_get_list.php"); 
if (!$is_regist) { 
$error_text = "$w_no_user"; 
include($file_path."designes/".$design."/error_page.php"); 
exit; 
} 
include("inc_user_class.php"); 
include($ld_engine_path."users_get_object.php"); 
$f_name="полный/путь/к/data/vote/vote.dat"; 
$expired = time()-120; // время бана в минутах
$result_votes = array(); 
$result_votes = file($f_name); 
for ($i=0; $i<count($result_votes);$i++) 
{ 
$result_vote = str_replace("\n","",$result_votes[$i]); 
list($nameban[$i],$whoban[$i],$prich[$i],$golos[$i],$time[$i]) = explode("::",$result_vote); 
} 
if ($time[0]<$expired) { 
($f=fopen($f_name,"w")) or die ("Ошибка открытия файла!!"); 
fclose($f); 
} 
$html_to_out = ""; 
set_variable("op"); 
$html_to_out .= "<h3>".$w_voting_title."</h3>"; 
if (($current_user->user_class > 0) && !($tmp_admin_rights & ADM_BAN_MODERATORS)) { 
$current_user->sayedmesg = $raz + 1; 
} 
if ($raz > $current_user->sayedmesg) { 
$html_to_out .= "Вам нельзя голосовать вам нужно $raz сообщений, а у вас $current_user->sayedmesg"; 
include($file_path."designes/".$design."/output_page.php"); 
exit; 
} 
if ($op == "") $op = "choose"; 
switch ($op) { 
case "choose": 
$result_votes = array(); 
$f_name="полный/путь/к/data/vote/vote.dat"; 
$result_votes = file($f_name); 
for ($i=0; $i<count($result_votes);$i++) 
{ 
$result_vote = str_replace("\n","",$result_votes[$i]); 
list($nameban[$i],$whoban[$i],$prich[$i],$golos[$i],$time[$i]) = explode("::",$result_vote); 
} 
$html_to_out .= $w_select_nick.": <form method=\"post\" action=\"users_ban.php\" name=\"voteFrm\">". 
"<input type=\"hidden\" name=\"session\" value=\"$session\">". 
"<input type=\"hidden\" name=\"op\" value=\"do_vote\">". 
"<table border=\"0\">"; 
if ($nameban[0] == "") { 
if(count($room_ids)>1){ 
for($kk=0;$kk<count($room_ids);$kk++){ 
$html_to_out .= "<tr><td colspan=\"2\">$w_in_room <b>".$rooms[$room_ids[$kk]]["title"]."</b></td></tr>\n"; 
for ($i=0; $i<count($users); $i++){ 
$data = explode("\t", $users[$i]); 
if ($data[10] == $room_ids[$kk]) { 
$name = $data[0]; 
$html_to_out .= "<tr><td><input type=\"radio\" name=\"toVote\" value=\"$name\"></td><td>$name</td></tr>\n"; 
} 
} 
} 
}else{ 
for ($i=0; $i<count($users); $i++){ 
$data = explode("\t", $users[$i]); 
$name = $data[0]; 
$html_to_out .= "<tr><td><input type=\"radio\" name=\"toVote\" value=\"$name\"></td><td>$name</td></tr>\n"; 
} 
} 
}else{ 
$html_to_out .= "<tr><td><input type=\"radio\" name=\"toVote\" value=\"".$nameban[0]."\"></td><td>".$nameban[0]."</td></tr>\n"; 
} 
$html_to_out .="<tr><td>$w_admin_reason:</td><td><input type=\"text\" name=\"cause\" class=\"input\"></td></tr>\n"; 
$html_to_out .= "<tr><td colspan=\"2\"><input type=\"submit\" value=\"$w_admin_ban\"></td></tr></table></form>"; 
break; 
case "do_vote": 
set_variable("cause"); 
set_variable("toVote"); 
if ($cause == "") {$html_to_out .= $w_vote_no_cause; break;} 
$cause = htmlspecialchars($cause); 
$who_banned = $current_user->nickname; 
$f_name="полный/путь/к/data/vote/vote.dat"; 
($f=fopen($f_name,"a")) or die ("Ошибка открытия файла!!"); 
fclose($f); 
$nameban = array(); 
$whoban = array(); 
$prich = array(); 
$golos = array(); 
$time = array(); 
$flood_protection = 0; 
$result_votes = array(); 
$result_votes = file($f_name); 
for ($i=0; $i<count($result_votes);$i++) 
{ 
$result_vote = str_replace("\n","",$result_votes[$i]); 
list($nameban[$i],$whoban[$i],$prich[$i],$golos[$i],$time[$i]) = explode("::",$result_vote); 
} 
$tmp_golos = $golos[count($golos) - 1]; 
$tmp2_golos = $votes_for_ban - 1; 
if ($tmp_golos != $tmp2_golos) { 
if ($nameban[0] == "") { 
($f=fopen($f_name,"a")) or die ("Ошибка открытия файла!!"); 
$golos_end = 1; 
$date_end = time(); 
fwrite($f,"$toVote::$who_banned::$cause::$golos_end::$date_end\n"); 
fclose($f); 
$messages_to_show[] = array(MESG_TIME=>my_time(), 
MESG_ROOM=>$room_id, 
MESG_FROM=>"", 
MESG_FROMWOTAGS=>"", 
MESG_FROMSESSION=>"", 
MESG_FROMID=>0, 
MESG_FROMAVATAR=>"", 
MESG_TO=>"", 
MESG_TOSESSION=>"", 
MESG_TOID=>"", 
MESG_BODY=>"<font color=\"$highlited_color\">".str_replace("#", $toVote, str_replace("*", $cause, $w_voting_organized))."</font>"); 
include($engine_path."messages_put.php"); 
$html_to_out .= $w_vote_accepted; 
break; 
} else { 
for ($aaa=0; $aaa<$votes_for_ban; $aaa++){ 
if ($whoban[$aaa] == $who_banned) {$html_to_out .= "Вы уже проголосовали!"; $asd = "ok"; break;} 
} 
if ($asd == "ok") {break;} 
else { 
($f=fopen($f_name,"a")) or die ("Ошибка открытия файла!!"); 
$zxc = count($golos) -1 ; 
$time_end = $time[$zxc]; 
$golos_end = $golos[$zxc] + 1 ; 
fwrite($f,"$toVote::$who_banned::$cause::$golos_end::$time_end\n"); 
fclose($f); 
$messages_to_show[] = array(MESG_TIME=>my_time(), 
MESG_ROOM=>$room_id, 
MESG_FROM=>"", 
MESG_FROMWOTAGS=>"", 
MESG_FROMSESSION=>"", 
MESG_FROMID=>0, 
MESG_FROMAVATAR=>"", 
MESG_TO=>"", 
MESG_TOSESSION=>"", 
MESG_TOID=>"", 
MESG_BODY=>"<font color=\"$highlited_color\">".str_replace("#", $toVote, str_replace("*", $golos_end, str_replace("~", $votes_for_ban, $w_now_has_votes)))."</font>"); 
include($engine_path."messages_put.php"); 
$html_to_out .= $w_vote_accepted; 
} 
} 
} 
else if ($tmp_golos == $tmp2_golos) { 
$html_to_out .= "Установлен бан для: ".$nameban[0]; 
($f=fopen($f_name,"a")) or die ("Ошибка открытия файла!!"); 
$zxc = count($golos) -1 ; 
$time_end = $time[$zxc]; 
$golos_end = $golos[$zxc] + 1 ; 
fwrite($f,"$toVote::$who_banned::$cause::$golos_end::$time_end"); 
fclose($f); 
$sod_file = file($f_name); 
$f_name_new = "полный/путь/к/data/vote/ban_".$nameban[0].".dat"; 
($f=fopen($f_name_new,"w")) or die ("Ошибка открытия файла!!"); 
for ($i=0;$i<count($sod_file);$i++){ fwrite($f,$sod_file[$i]); } 
fclose($f); 
($f=fopen($f_name,"w")) or die ("Ошибка открытия файла!!"); 
fclose($f); 
$cause = $prich[0]; 
$kill_time = "1"; // время голосования в минутах
$nameToBan = $nameban[0]; 
for ($i=0;$i<count($users);$i++) { 
$banuser_array = explode("\t", $users[$i], USER_TOTALFIELDS); 
if (strcmp($banuser_array[USER_NICKNAME], $toVote) == 0) { 
if ($banuser_array[USER_REGID]) { 
//fake is_regist to load user-data 
$is_regist = $banuser_array[USER_REGID]; 
include($ld_engine_path."users_get_object.php"); 
//current user now contains user to ban 
if (($current_user->user_class > 0) && !($tmp_admin_rights & ADM_BAN_MODERATORS)){ 
$error_text = "$w_adm_cannot_ban_mod"; 
include($file_path."designes/".$design."/error_page.php"); 
exit; 
} 
} 
$to_ban = array(); 
$to_ban[0] = "un|".$banuser_array[USER_CANONNICK]; 
$to_ban[1] = "ch|".$banuser_array[USER_COOKIE]; 
$to_ban[] = "ip|".$banuser_array[USER_IP]; 
$messages_to_show[] = array(MESG_TIME=>my_time(), 
MESG_ROOM=>$banuser_array[USER_ROOM], 
MESG_FROM=>"", 
MESG_FROMWOTAGS=>"", 
MESG_FROMSESSION=>"", 
MESG_FROMID=>0, 
MESG_FROMAVATAR=>"", 
MESG_TO=>"", 
MESG_TOSESSION=>"", 
MESG_TOID=>"", 
MESG_BODY=>"<font color=\"$def_color\">".str_replace("*", $toVote, str_replace("~", $cause, $w_vote_banned))."</font>"); 
include($engine_path."messages_put.php"); 
if (count($to_ban)>0) { 
include($ld_engine_path."admin.php"); 
} 
if ($logging_ban) { 
include_once($data_path."engine/files/log_message.php"); 
log_ban($cu_array[USER_NICKNAME], 
$banuser_array[USER_CANONNICK], 
$banuser_array[USER_IP], 
$banuser_array[USER_ROOM], $cause); 
} 
} 
} 
break; 
} 
break; 
} 
include($file_path."designes/".$design."/output_page.php"); 
echo "</div>";
include($file_path."designes/".$design."/common_body_end.php");?>
Обновить:            <a></a><head><a href="#" onclick="location.reload()"><img src="<?=$current_design?>grunge/ref.gif" alt="Обновить" border="0">
---------------------------------
меняем в нем строки полный/путь/к/data/vote/vote.dat на свои, их 4 штуки
обратите внимание на строки 3,4,18, 175
==========================================
создаем файл data/engine/mysql/users_ban.php с таким содержанием 
<?php 
if (!defined("_COMMON_")) {echo "stop";exit;} 
include_once($ld_engine_path."inc_connect.php"); 
$time = time(); 
mysql_query("INSERT INTO ".$mysql_table_prefix."ban_vote VALUES(NULL, '$toVote', '1', '$who_banned', '$cause', $time)") or die("database error<br>".mysql_error()); 
?> 
=============================================
создаем таблицу:
 CREATE TABLE `voc2_ban_vote` ( 
  `id` int(10) unsigned NOT NULL auto_increment, 
  `ban_name` varchar(15) NOT NULL default '', 
  `votes` int(5) NOT NULL default '0', 
  `voters` text NOT NULL, 
  `cause` varchar(100) NOT NULL default '', 
  `time` varchar(12) NOT NULL default '', 
  PRIMARY KEY  (`id`) 
);  
================================================
отдельный флаг:
в admin_navi.php впихиваем :
if ($current_user->user_class & ADM_USERS_BAN) $admin_navi[count($admin_navi)] = array("title"=>kick, "link"=>$chat_url."users_ban.php?&session=".$session);  
------------------------------------------------
в inc_common.php вставляем 
define('ADM_USERS_BAN',524288);  
//число меняем на свое
===================================================
и
$total_admin_levels = 20;  
//тотал левел меняем на свой
==========================================
в языковый файл вставляем строки
$w_vote_banned = "Общими усилиями пользователей пользователь * исключен из чата. Причина исключения: ~"; 
$w_vote_for_ban = "kick"; 
$w_vote_no_cause = "Не выбрана причина. Вернитесь <a href=\"javascript:history.back('1')\">назад</a> и введите причину."; 
$w_voting_organized = "<span class=\"ha\">Поставлено на голосование исключение из чата пользователя #.Вип персоны, если вы согласны с его исключением, проголосуйте за это (ссылка в меню \"kick\").Время голосования: 1 минута.  Причина исключения: *</span>"; 
$w_now_has_votes = "Сейчас пользователь <b>#</b> имеет <b>*</b> голосов за исключение его из чата.<br>Для исключения из чата необходимо ~ голосов(а)"; 
$w_voting_title = "Голосование за исключение из чата"; 
$w_vote_exists = "Уже существует голосование против этого пользователя. Попробуем добавить ваш голос к существующим..."; 
$w_already_voted = "Ошибка. Вы уже голосовали против этого пользователя."; 
$w_vote_accepted = "Ваш голос принят."; 
$w_adm_level[ADM_USERS_BAN] = "Голосование за исключение";  
===================================================
если хотите что б голосовали все то в chat/designes/ваш_диз/navibar.php
впихиваем :
<a href="javascript:;" onclick="javascript:open_win('users_ban.php?session=<?php echo $session;?>&op=choose', 'vote_for_ban');" class="jsnavi"><?php echo $w_vote_for_ban; ?></a>

Код не рабочий, думал что-то неправильно постоянно делаю, и только недавно заметил что мы создаем таблицу MySQL но нигде не прописывали даже настройки для коннекта к ней не говоря уже об ее использовании.:bc: Видно откуда-то передрали код, но не до конца.
 
  • Нравится
Реакции: TecT
Да,щас сам ненашол откуда берутся пароли к базе.Но это у меня лежит уже очень долгое время,и раньше стояло прекрасно.Пути то раставил?
 
видел в одном чате мод мнения о пользователе , мож есть у кого??
 
Да,щас сам ненашол откуда берутся пароли к базе.Но это у меня лежит уже очень долгое время,и раньше стояло прекрасно.Пути то раставил?

Да, конечно расставлял, там в PHP гдето ошибка он 500 ошибку сервера вызывает, этот код у тебя не мог работать, ты наверно неправильно для меня скопировал его :bc:
 
Код не рабочий, думал что-то неправильно постоянно делаю, и только недавно заметил что мы создаем таблицу MySQL но нигде не прописывали даже настройки для коннекта к ней не говоря уже об ее использовании.:bc: Видно откуда-то передрали код, но не до конца.
плохо ты замечаешь! главное ты заметил что создаем новую таблицу в базе но ты не заметил что ещё и инклудишь include_once($ld_engine_path."inc_connect.php");
думаю от самого названия уже понятно что там и будет конект к базе!...скорей всего с путями ты не разобрался или что то не так сделал!...
 
плохо ты замечаешь! главное ты заметил что создаем новую таблицу в базе но ты не заметил что ещё и инклудишь include_once($ld_engine_path."inc_connect.php");
думаю от самого названия уже понятно что там и будет конект к базе!...скорей всего с путями ты не разобрался или что то не так сделал!...
100%
скрипт работает, не понятно на какое время банит (в коде это реализовано как
PHP:
$expired = time()-120; // время бана в минутах
, а функция time() возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени. Тоесть бан не в минутах а в секундах, если не ошибаюсь...причем по идее каждый раз все больше и больше...если ошибаюсь прошу поправить (знаний пхп не оч много)

тип бана по айпи адресу скорее всего
также проблемы с кодировкой были...
тестирую скрипт дальше...
 
2 1019121 Вы хотя б давали ссылку откуда нагло скопирован код /showpost.php?p=892098&postcount=3278
2 GetAway
Создадите файл data/engine/files/users_ban.php с таким содержанием (т.к. в VOC++ нет базы на мускуле, это моя ошибка когда вылаживал код:(


PHP:
<?php  

if (!defined("_COMMON_")) {echo "stop";exit;}  
include_once($ld_engine_path."inc_connect.php");  
$time = time();  
mysql_query("INSERT INTO ".$mysql_table_prefix."ban_vote VALUES(NULL, '$toVote', '1', '$who_banned', '$cause', $time)") or die("database error<br>".mysql_error());  

?>
А вообще курим вот эту ветку:
Для просмотра ссылки Войди или Зарегистрируйся
 
2 1019121 Вы хотя б давали ссылку откуда нагло скопирован код /showpost.php?p=892098&postcount=3278
2 GetAway
Создадите файл data/engine/files/users_ban.php с таким содержанием (т.к. в VOC++ нет базы на мускуле, это моя ошибка когда вылаживал код:(
PHP:
<?php  
if (!defined("_COMMON_")) {echo "stop";exit;}  
include_once($ld_engine_path."inc_connect.php");  
$time = time();  
mysql_query("INSERT INTO ".$mysql_table_prefix."ban_vote VALUES(NULL, '$toVote', '1', '$who_banned', '$cause', $time)") or die("database error<br>".mysql_error());  
?>
А вообще курим вот эту ветку:
Для просмотра ссылки Войди или Зарегистрируйся

Там ветка для Вуду чата, и причем для мускульного движка, ответа как поставить эту штуку в ВОК++ так и не нашел, не могли бы вы опубликовать сие творение для ВОК++ тут, чтобы не искать по кускам на том форуме и тут.:bc:
 
Назад
Сверху