Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Admin (SQL, починка таблиц)

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
alexenin
phpBB 1.2.1
Сообщения: 27
Стаж: 19 лет 9 месяцев
Контактная информация:

Admin (SQL, починка таблиц)

Сообщение alexenin »

Позволяет выполнять sql запросы, вывод всех таблиц, починку таблиц и получать запрос в файле.

admin-dbsql.php

Код: Выделить всё

<?php
define('IN_PHP', 1);
define('IN_PHPBB', 1);

$version = "<p> v1.03 (20/12/2005) &copy;alexenin</p>";
if ( !empty($setmodules) )
{
        $file = basename(__FILE__);
#        $module['Groups']['Manage'] = $filename;
	$module['General']['sql'] = "$file";

        return;
}
$phpbb_root_path = "./../";
require($phpbb_root_path  . 'extension.inc');
require('./pagestart.' . $phpEx);
include($phpbb_root_path . 'includes/functions_selects.'.$phpEx);


$show_result = 0;
$show_timer = 1;

$params = array('repair_go' => 'repair_go', 
		'show_result' => 'show_result', 
		'showtables' => 'showtables',
		'show_timer' => 'show_timer', 
		'loadfile' => 'loadfile', 
		'sql' => 'sql');

while( list($var, $param) = @each($params) )
{
        if ( !empty($HTTP_POST_VARS[$param]) || !empty($HTTP_GET_VARS[$param]) )
        {
    	    $$var = ( !empty($HTTP_POST_VARS[$param]) ) ? $HTTP_POST_VARS[$param] : $HTTP_GET_VARS[$param];
        }
        else
        {
            $$var = '';
        }
}

$sql=stripslashes($sql);
if ($sql=="") $sql="SELECT count(*) FROM phpbb_users WHERE user_posts>0;";

if ($repair_go) 
    {
    $sql="SHOW tables";
    if (!($result = $db->sql_query($sql))) 
	    { 
		message_die(GENERAL_ERROR, 'Could not obtain sql', '', __LINE__, __FILE__, $sql); 
	    }
    $sql="";
    $sql_t="";
    while($res = $db->sql_fetchrow($result))
	{
	    while( list($k, $v) = each($res) )
	    {
    		if ($sql_t != "") $sql_t.=", ";
		$sql_t.=$v;
    	    }
	}
    $sql.="REPAIR TABLE ".$sql_t.";";
    unset($v);
    unset($sql_t);
    unset($res);
    }
if ($showtables)
{
    $sql="SHOW tables;";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="./subSilver.css">
</head>
<body bgcolor="#E5E5E5" text="#000000" link="#006699" vlink="#5493B4">

 <center>
<h2 style="margin-top:10px">SQL запрос</h2>


<table width="99%" cellpadding="2" cellspacing="0" border="0" align="center" class="forumline">

 <!--             Заказы             -->
<?
$loadfile=0;
if (!isset($HTTP_POST_VARS['go'])&&!$loadfile) 
{
?>
<tr><th colspan=2 class="thHead">Выполнить запрос</th></tr>
<tr><td>
<table width="100%" cellpadding="2" cellspacing="1" border="0" align="center">
<form action=<?=append_sid("admin_sql.$phpEx")?> method=post enctype="multipart/form-data">
<tr>
        <td class="row1" width=31% valign=top><span class="genmed">Выполнить sql запрос</span></td>
<td class="row1">
<textarea name="sql" rows=15 cols=35 wrap=virtual style='width:95%;color:black' tabindex=3 class=row1>
<?=$sql?></textarea>
</td>
</tr>
<tr>
        <td class="row1" valign=middle><span class="genmed">Показывать результат запроса</span></td>
	<td class="row2">
	    <span class="genmed">
            Да&nbsp;<input type="radio" name="show_result" value="1" checked />
	    Нет&nbsp;&nbsp;<input type="radio" name="show_result" value="0" /></span>
	</td>
</tr>
<tr>
        <td class="row1" valign=middle><span class="genmed">Показывать время выполнения этапов</span></td>
	<td class="row2">
	    <span class="genmed">
            Да&nbsp;<input type="radio" name="show_timer" value="1" checked  />
	    Нет&nbsp;&nbsp;<input type="radio" name="show_timer" value="0"/></span>
	</td>
</tr>
<tr>
        <td class="row1" valign=middle><span class="genmed">Результат отправить в файле</span></td>
	<td class="row2">
	    <span class="genmed">
            Да&nbsp;<input type="radio" name="loadfile" value="1" />
	    Нет&nbsp;&nbsp;<input type="radio" name="loadfile" value="0" checked /></span>
	</td>
</tr>
<tr>
        <td class="row1" valign=middle><span class="genmed">Произвести восстановление базы</span></td>
	<td class="row2">
	    <span class="genmed">
            Да&nbsp;<input type="radio" name="repair_go" value="1" />
	    Нет&nbsp;&nbsp;<input type="radio" name="repair_go" value="0" checked /></span>
	</td>
</tr>
<tr>
        <td class="row1" valign=middle><span class="genmed">Показать таблицы</span></td>
	<td class="row2">
	    <span class="genmed">
            Да&nbsp;<input type="radio" name="showtables" value="1" />
	    Нет&nbsp;&nbsp;<input type="radio" name="showtables" value="0" checked /></span>
	</td>
</tr>
<tr>
        <td colspan=2 class="row1" valign=bottom align=center>
	    <span class="genmed"><input type=hidden name=go><input class="mainoption" type=submit value="Выполнить"></span></td>
</tr>
</form>
</table>
</td>
</tr>
</table>
<?
echo $version;
exit;
}
else
{
?>
<form action=<?=append_sid("admin_sql.$phpEx")?> method=post enctype="multipart/form-data">
<input type="hidden" name="sql" value="<?=$sql?>">
<input type=hidden name=back>
<tr><th colspan=2 class="thHead">Текст запроса</th></tr>
<tr><td colspan=2 class="row1" align=center>&nbsp;</td></tr>
<tr><td colspan=2 class="row1" align=center><span class="gen"><?=$sql?></span></td></tr>
<tr><td colspan=2 class="row1" align=center>&nbsp;</td></tr>
<tr>
    <td colspan=2 class="row1" align=center>
	<input class="mainoption" type=submit value="Вернуться на страницу SQL запроса.">
    </td>
</tr>
<tr><td colspan=2 class="row1" align=center>&nbsp;</td></tr>
</table>
</form>
<?
}


if ($show_result || $show_timer){
?>
<br>
<table width="99%" cellpadding="0" cellspacing="0" border="0" align="center" class="forumline">
<?
}
$starttime='';
$temptime='';
function outin($mode='0',$data1='', $data2='&nbsp;')
{
if ($mode==0) echo "<tr><td colspan=2 class=\"row1\">".$data1.$data2."</td></tr>\n";
if ($mode==1) echo "<tr><td class=\"row1\" width=35% valign=middle><span class=\"genmed\">".$data1."</span></td>
        	    <td class=\"row2\" valign=middle><span class=\"genmed\">$data2</span></td></tr>\n";
if ($mode==2) echo "<tr><td colspan=2 class=\"row1\" valign=middle><span class=\"genmed\">$data1</span></td></tr>\n";
if ($mode==3) echo "<tr><td class=\"row1\" width=35% valign=middle><span class=\"gengood\">$data1</span></th>
        	    <th class=\"row1\" valign=middle><span class=\"gengood\">$data2</span></th></tr>\n";
if ($mode==4) echo "<tr><td colspan=2 class=\"thHead\" valign=middle><span class=\"gengood\">$data1</span></td></tr>\n";
}

class Debug
{
    function startTimer()
    {
        global $starttime;
        $mtime = microtime ();
        $mtime = explode (' ', $mtime);
        $mtime = $mtime[1] + $mtime[0];
        $starttime = $mtime;
    }

    function startTimer1()
    {
        global $temptime;
        $mtime = microtime ();
        $mtime = explode (' ', $mtime);
        $mtime = $mtime[1] + $mtime[0];
        $temptime = $mtime;
    }
    function endTimer()
    {
        global $starttime;
        $mtime = microtime ();
        $mtime = explode (' ', $mtime);
        $mtime = $mtime[1] + $mtime[0];
        $endtime = $mtime;
        $totaltime = round (($endtime - $starttime), 5);
        return $totaltime;
    }

    function endTimer1()
    {
        global $temptime;
        $mtime = microtime ();
        $mtime = explode (' ', $mtime);
        $mtime = $mtime[1] + $mtime[0];
        $endtime = $mtime;
        $totaltime = round (($endtime - $temptime), 5);
        return $totaltime;
    }
}

$Debug = new Debug;
// product
$Debug->startTimer();
#outin ();
if ($show_result||$show_timer) outin (4,"Выполнение запроса");
$res=array();

#    echo $sql;

    if (!($result = $db->sql_query($sql))) 
	    { 
		message_die(GENERAL_ERROR, 'Could not obtain sql', '', __LINE__, __FILE__, $sql); 
	    }
    echo "<tr><td colspa=2 class=\"row1\"><table width=99% cellpadding=2 cellspacing=1 border=0 align=center class=forumline>";
    echo "<tr>";


    if (preg_match('/^(INSERT|UPDATE|DELETE)*$/is', $sql))
    {
	echo "<th>Запрос выполнен</th>";
    }
    else
    {
	while($res = $db->sql_fetchrow($result))
	{
	    while( list($k, $v) = each($res) )
	    {
		$resu{$k} = 1;
		$val[]= $v;
    	    }
	}
    while( list($k, $v) = each($resu) )
    {
	echo "<th>".$k."</th>";
    }
    echo "</tr>";

    $count=count($resu);
    for ($i=0; $i<count($val);$i+=$count)
	{
	echo "<tr>";
	for ($j=$i; $j<$count+$i;$j++)
	    {
		echo "<td class=\"row1\">".$val[$j]."</td>";
	    }
	echo "</tr>";
	    
	}

}
echo "</table></td></tr>";
outin();

outin(2,"<span class=\"quote\">&nbsp;Запрос выполнен за ".$Debug->endTimer()." сек.&nbsp;</span>");

#echo "</td></tr></table>";


?>
</td></tr>
<?=outin();?>
</table>

 </td></tr></table>
</center>
<br>
<br>
    <span class="gen"><a class="gengood" href="<?=append_sid("admin_sql.$phpEx")?>">Вернуться на страницу SQL запроса.</a></span>
<br>
<?=$version;?>


</body>
</html>
Вложения
sadmin-sql.jpg
Очень не удобный стал стиль форума...
И в профиле, как всегда, без выбора.
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Стаж: 18 лет 2 месяца

Сообщение Nemo1987 »

Опасный мод....

Добавлено спустя 3 минуты 20 секунд:

Warning: main(./pagestart.php): failed to open stream: No such file or directory in /адрес/sql.php on line 16
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5277
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 189 раз
Поблагодарили: 805 раз
Контактная информация:

Сообщение Siava »

Nemo1987
Его в админку надо сохранить вообще-то..
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Стаж: 18 лет 2 месяца

Сообщение Nemo1987 »

Siava, т.е.?

Добавлено спустя 15 секунд:

Закинуть в admin/

Добавлено спустя 6 минут 30 секунд:

Тоже самое :(((

Добавлено спустя 2 минуты 47 секунд:

У меня нету в корне
Nemo1987 писал(а):pagestart.php
Аватара пользователя
alexenin
phpBB 1.2.1
Сообщения: 27
Стаж: 19 лет 9 месяцев
Контактная информация:

Сообщение alexenin »

Сорри, файл называется append_sid("admin_sql.$phpEx")?>, т.е. admin_sql.php

Писалось на скорую руку.
Использовать только при доработке.
Очень не удобный стал стиль форума...
И в профиле, как всегда, без выбора.
Закрыто

Вернуться в «Бета-версии модов для phpBB 2.0.x»