Въпрос за Calladmin

PHP, MySQL, JavaScript, HTML, CSS и др.
Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Въпрос за Calladmin

Мнение от illusion » 23 Сеп 2017, 15:30

Здравейте,
Имам въпрос за calladmin. Инсталирах го, свързах го, всичко е точно, но искам да се показва и IP-то на нарушителя в calladmin-a. В момента се показва само в PHPMyAdmin, но аз искам някак си да изведа информацията от phpmyadmin в самият сайт да се показва при calladmin-a.
Ето снимка, искам някъде там да се добави и IP-то на нарушителя.
Изображение

Благодаря предварително.

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Въпрос за Calladmin

Мнение от DaRk_StyLe » 23 Сеп 2017, 16:36

Редактирай .php скрипта, който извежда информацията, показана на снимката. Можеш да провериш как се вписва информацията за IP-то, като отвориш кода на Call Admin плъгина.

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Въпрос за Calladmin

Мнение от illusion » 23 Сеп 2017, 16:40

Там е работата, че не съм много по calladmin-a. Ако искате ще ви дам .sma и .php скрипта..

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Въпрос за Calladmin

Мнение от DaRk_StyLe » 23 Сеп 2017, 16:43

Качи ги, за да може някой да ти помогне.

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Въпрос за Calladmin

Мнение от illusion » 23 Сеп 2017, 16:55

.sma

Код за потвърждение: Избери целия код

// *************************************************************************************************
//	####    #### ###### ####      ##   ## ###### ##   ## ######
//	## ##  ## ## ##  ## ##  #	###   ##  ##  ## ##  ##	
//	##  ###   ## ###### ##  #       ###   ######   ###   ##
//	##        ## ##  ## ####      ##   ## ##  ##   ##    ######
// *************************************************************************************************
// This plugin is made by MAD.XayC a.k.a pheon
//
// Thnx: 
// 	@Nextra ==> For Code Suggestions !
//      @Exolent[jNr] ==> For Help with multiple spaces !
//
// Date: 2011.24.01
// *************************************************************************************************

#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <sqlx>

// =================================================================================================
#define CREATE_DB	"CREATE TABLE IF NOT EXISTS `call_admin` (`id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nick` VARCHAR(30) NOT NULL ,`report` VARCHAR(255) NOT NULL ,`date` VARCHAR(10) NOT NULL ,`time` VARCHAR(10) NOT NULL ,`ip` VARCHAR(16) NOT NULL ,`server` VARCHAR(30) NOT NULL)"
#define IMPORRT_DB	"INSERT INTO `call_admin` (nick,ip,report,date,time,server) VALUES ('%s','%s','%s','%s','%s','%s')"
#define szHost  ""
#define szUser  "" 
#define szPass  ""
#define szDb    ""
// =========================
new const Version[] = "3.0"
// =========================
new Handle:SqlConnection
// =========================
new pPrefix
new pShowmsg
// =================================================================================================
public plugin_init() {
	register_plugin("CallAdmin Mysql",Version,"MAD.XayC")
	// ================================================
	pPrefix = register_cvar("ca_prefix","BulgarianStrke.COM")
	pShowmsg = register_cvar("ca_showmsg","1")
	// ================================================
	register_clcmd("say","HookSay")
	register_clcmd("say_team","HookSay")
}
// =================================================================================================
public plugin_cfg() { 
	SqlConnection = SQL_MakeDbTuple(szHost,szUser,szPass,szDb)
	new QueryCache[1024]
	formatex(QueryCache,1023,CREATE_DB) 
	SQL_ThreadQuery(SqlConnection,"QueryCreateTable",QueryCache)
} 
// =================================================================================================
public HookSay(id) { 
	new timestr[9],datestr[11],nick[32],ip[16],cvarstring[64],srvname[32],authid[33]
	// ==========================================
	static szText[256]
	read_args(szText,255)
	remove_quotes(szText)
	// ==========================================
	get_cvar_string("hostname",srvname,31)
	get_user_name(id,nick,31) 
	get_user_authid(id,authid,32)
	get_user_ip(id,ip,15,1) 
	get_time("%Y.%m.%d",datestr,10) 
	get_time("%H:%M:%S",timestr,8)
	get_pcvar_string(pPrefix,cvarstring,63)
	// ==========================================
	if(equal(authid,"VALVE_ID_LAN")) {
		ColorChat(0,RED,"[%s] Get Steam First!",cvarstring)
		return PLUGIN_HANDLED
		} else {
		if(equali(szText,"/calladmin",10) && szText[10]) {
			// ==========================================
			while(replace(szText[10], charsmax(szText), "  ", " ") || equal(szText[10]," ")) {
				ColorChat(0,RED,"[%s] ^1You cannot call an admin without a reason for it!",cvarstring)
				return PLUGIN_HANDLED
			}
			// ==========================================
			switch(get_pcvar_num(pShowmsg)) {
				case 1: { ColorChat(0,RED,"[%s] ^4%s ^1has just called an admin. Reason:^4%s",cvarstring,nick,szText[10]); }
				case 2: { ColorChat(id,RED,"[%s] ^1You have just called an admin. Reason:^4%s",cvarstring,szText[10]); }
				case 3: { for(new i=1; i<get_maxplayers(); i++) { 
						if(is_user_admin(i)) {
							ColorChat(i,RED,"[%s] ^4%s ^1has just called an admin. Reason:^4%s",cvarstring,nick,szText[10])
						}
					}
				}
			}
			// ==========================================
			new query[1001] 
			format(query,1000,IMPORRT_DB,nick,ip,szText[10],datestr,timestr,srvname)  
			SQL_ThreadQuery(SqlConnection,"QueryCreateTable",query) 
			return PLUGIN_HANDLED
			// ==========================================
		}
		if(equal(szText,"/calladmin",10)) {
			PlayersMenu(id)
			return PLUGIN_HANDLED
		}
	}
	// ==========================================
	return PLUGIN_CONTINUE
}
// =================================================================================================
public PlayersMenu(id) {
	new menu = menu_create("\rPlayers Menu:", "players_handler")
	new players[32], pnum, tempid
	new szName[32], szTempid[10]
	get_players(players, pnum)
	for( new i; i<pnum; i++ ) {
		tempid = players[i]
		get_user_name(tempid, szName, 31)
		num_to_str(tempid, szTempid, 9)
		menu_additem(menu, szName, szTempid, 0)
	}
	menu_display(id, menu, 0)
}
public players_handler(id, menu, item) {
	if(item == MENU_EXIT) 
		return PLUGIN_HANDLED
	new data[6], iName[64]
	new access, callback
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
	new tempid = str_to_num(data)	
	new namex[32]
	get_user_name(tempid,namex,31)
	new szArg[32]
	read_args(szArg,32)
	remove_quotes( szArg)
	client_cmd(id,"messagemode ^"say /calladmin %s^"",namex)
	return PLUGIN_HANDLED
}
// =================================================================================================
public plugin_end() { SQL_FreeHandle(SqlConnection); } 
// =================================================================================================
public QueryCreateTable(iFailState,Handle:hQuery,szError[],iError,iData[],iDataSize,Float:flQueueTime) {
	switch(iFailState) {
		case TQUERY_CONNECT_FAILED: { log_amx("Failed to connect to database (%i): %s", iError, szError); }
		case TQUERY_QUERY_FAILED: { log_amx("Error on query for QueryCreateTable() (%i): %s", iError, szError); }
		default: { /*successfully created tables*/ }
	}
}
// *************************************************************************************************
//	####    #### ###### ####      ##   ## ###### ##   ## ######
//	## ##  ## ## ##  ## ##  #	###   ##  ##  ## ##  ##	
//	##  ###   ## ###### ##  #       ###   ######   ###   ##
//	##        ## ##  ## ####      ##   ## ##  ##   ##    ######
// *************************************************************************************************
има 2 файла като php, единия е config.php другия е index.php, не знам кой да ви дам, затова ще ви дам и двата.

config.php

Код за потвърждение: Избери целия код

<?php
/* 
 * MySQL Call Admin System 1.0
 * Plugin - IMBA
 * Web - carbonated @ fragfactory.info
 */

//Малко защита :D START
if(!defined("key")) {
    header("Location: ./index.php");
}
//Малко защита :D END

//Връзка с базата данни START
$host = "; //хоста на mysql сървъра (обикновено localhost)
$user = ""; //потребителят на вашата база данни (трябва ад има SELECT права (за плугина INSERT))
$pass = ""; //паролата на потребителя
$database = ""; //базата данни
$table = "call_admin"; //плугина я създава автоматично, ако не съществува, но все пак ако си правите редакции по кода, да не тършувате
//Връзка с базата данни END

//Conntecting.. НЕ се пипа нищо (ако не знаете какво правите) START
$connect = mysql_connect($host, $user, $pass) or die("<center><b>Грешка #1 - не мога да се свържа с MySQL сървъра!</b><br />Възможни причини:<br /> - Проверете дали MySQL сървъра <b>($host)</b> функционира, и Вие имате достъп до него<br />- проверете дали правилно сте въвели сървъра, името и паролата във файла config.php</center>");
mysql_select_db($database, $connect) or die("<center><b>Грешка #2 - не мога да се свържа с MySQL базата дании <b>($database)</b>!</b><br />Възможни причини:<br />- проверете дали базата данни <b>($database)</b> съществува<br />- проверете дали потребителят, който сте посочили <b>($user)</b> има права за достъп до базата данни</center>");
//Conntecting.. END

//Настройка на системата START
$last_calls_count = "15"; //колко последни викания на админ да показва
$last_calls_refresh_count = "20"; //на колко секунди да рефрешва страницата
$server_color = "#000000"; //цвят за сървъра всички типове цвят без RGB! / може да ползвате и английските наименования - white, black, green, yellow, pink и т.н.
$date_color = "grey"; //цвят за датата -"-
$time_color = "blue"; //цвят на часа -"-
$nick_color = "green"; //цвят на ника -"-
$reason_color = "red"; //цвят на причината -"-
$border_color = "blue"; //цвят на ограждението
$font_size = "16"; //големина на шрифта за последни повиквания
$counter_font_size = "16"; //големина на шрифта за брояча
//Настройка на системата END

?>
index.php

Код за потвърждение: Избери целия код

<?php
define("key", TRUE);
include "./includes/config.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <script language="JavaScript">
        var countDownInterval=<?php echo "$last_calls_refresh_count"; ?>;
        var c_reloadwidth=200
        </script>
        <ilayer id="c_reload" width=&{c_reloadwidth}; ><layer id="c_reload2" width=&{c_reloadwidth}; left=0 top=0></layer></ilayer>
        <script>
        var countDownTime=countDownInterval+1;
        function countDown(){
        countDownTime--;
        if (countDownTime <=0){
        countDownTime=countDownInterval;
        clearTimeout(counter)
        window.location.reload()
        return
        }
        if (document.all)
        document.all.countDownText.innerText = countDownTime+" ";
        else if (document.getElementById)
        document.getElementById("countDownText").innerHTML=countDownTime+" "
        else if (document.layers){
        document.c_reload.document.c_reload2.document.write('<div style="font-size: <?php echo "$counter_font_size"; ?>px;">Страницата ще се <a href="javascript:window.location.reload()">рефрешне</a> след <b id="countDownText">'+countDownTime+' </b> секунди!</div>')
        document.c_reload.document.c_reload2.document.close()
        }
        counter=setTimeout("countDown()", 1000);
        }
        function startit(){
        if (document.all||document.getElementById)
        document.write('<div style="font-size: <?php echo "$counter_font_size"; ?>px;">Страницата ще се <a href="javascript:window.location.reload()">рефрешне</a> след <b id="countDownText">'+countDownTime+' </b> секунди!</div>')
        countDown()
        }
        if (document.all||document.getElementById)
        startit()
        else
        window.onload=startit
        </script>
        <table>
            <?php
            $query = "SELECT * FROM `$table` ORDER by `id` DESC LIMIT 0,$last_calls_count";
            $result = mysql_query($query) or die(mysql_error());
            while($row = mysql_fetch_assoc($result)) {
                $secure_nick = addslashes(htmlspecialchars($row[nick]));
                $secure_reason = addslashes(htmlspecialchars($row[report]));
                echo "<div style='border-top: 1px solid $border_color; font-size: $font_size;'><b><font color='$server_color'>$row[server]</font></b> | <b><font color='$date_color'>$row[date]</font></b> в <b><font color='$time_color'>$row[time]</font></b> | <b><font color='$nick_color'>$secure_nick</font></b>: <b><font color='$reason_color'>$secure_reason</font></b> </div>";
            }
            ?>
        </table>
    </body>
</html>
Изтрил съм DB-то да не се вижда.

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Въпрос за Calladmin

Мнение от DaRk_StyLe » 23 Сеп 2017, 17:06

Трябва да се изведе ред 'ip' от таблицата 'call_admin'. Не съм запознат с уеб програмирането, затова изчакай някой да ти редактира скрипта. Обърни внимание, че това е IP-то на играча, написал командата.

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Въпрос за Calladmin

Мнение от illusion » 23 Сеп 2017, 17:09

А ще може ли да се направи да изписва ип-то на играча и ип-то на този, който го е докладвал? Може и само ип-то на играча, ако искате и заплащане ще предложа, няма проблем, стига всичко да е перфе.

Аватар
DaRk_StyLe
Извън линия
Потребител
Потребител
Мнения: 264
Регистриран на: 26 Окт 2016, 12:40
Се отблагодари: 11 пъти
Получена благодарност: 33 пъти

Въпрос за Calladmin

Мнение от DaRk_StyLe » 23 Сеп 2017, 17:49

Трябва да се пренапише плъгинът, тъй като в момента не се логва никаква информация за нарушителя.

Аватар
1fRaNkkK
Извън линия
Потребител
Потребител
Мнения: 776
Регистриран на: 09 Окт 2016, 15:21
Се отблагодари: 8 пъти
Получена благодарност: 55 пъти

Въпрос за Calladmin

Мнение от 1fRaNkkK » 23 Сеп 2017, 18:00

За показване на IP-то не съм сигурен дали ще проработи - не разбирам от php, но се надявам да проработи - пробвай.

В index.php намери:

Код за потвърждение: Избери целия код

while($row = mysql_fetch_assoc($result)) {
                $secure_nick = addslashes(htmlspecialchars($row[nick]));
                $secure_reason = addslashes(htmlspecialchars($row[report]));
                echo "<div style='border-top: 1px solid $border_color; font-size: $font_size;'><b><font color='$server_color'>$row[server]</font></b> | <b><font color='$date_color'>$row[date]</font></b> в <b><font color='$time_color'>$row[time]</font></b> | <b><font color='$nick_color'>$secure_nick</font></b>: <b><font color='$reason_color'>$secure_reason</font></b> </div>";
            }
и го направи:

Код за потвърждение: Избери целия код

while($row = mysql_fetch_assoc($result)) {
                $secure_nick = addslashes(htmlspecialchars($row[nick]));
                $secure_reason = addslashes(htmlspecialchars($row[report]));
                $secure_ip = addslashes(htmlspecialchars($row[ip]));
                echo "<div style='border-top: 1px solid $border_color; font-size: $font_size;'><b><font color='$server_color'>$row[server]</font></b> | <b><font color='$date_color'>$row[date]</font></b> в <b><font color='$time_color'>$row[time]</font></b> | <b><font color='$nick_color'>$secure_nick</font></b>: <b><font color='$reason_color'>$secure_reason</font></b> | <b><font color='aqua'>IP</font></b>: <b><font color='aqua'>$secure_ip</font></b> </div>";
            }

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1810
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 371 пъти
Обратна връзка:

Въпрос за Calladmin

Мнение от illusion » 23 Сеп 2017, 19:32

Да, извади ИП адреса, само ми трябва ако може да се направи да е само на нарушителя.

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Уеб Програмиране”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта