Скрипт форума для удаления темы

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Скрипт форума для удаления темы

Сообщение kupidon » 04.12.2015 15:19

Добрый день. форум 3.0.13

Пришла пора немного почистить Базу данных, хочу удалить некоторые темы.
Подскажите можно ли использовать готовый скрипт phpbb для удаления темы с сообщениями?
Очень не хочется подключаться к каждой таблице, удаляя каждое сообщение (принадлежащее конкретному топику) по отдельности...а ведь еще есть другие таблицы, вроде индексации слов для поисковика.

Пожалуйста помогите найти команду, чтобы удалять тему по номеру топика.
То есть делаю запрос к БД по опред критериям, выбираю кучу номеров тем и, перебирая их, удаляю темы поочередно стандартными средствами


ps, Ребята дайте кнопку создавать темы для авторов 3.0. приходится писать куда попало

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11489
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Скрипт форума для удаления темы

Сообщение Sheer » 04.12.2015 20:13

Это штатный функционал. У модератора "Быстрые действия".
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 07.12.2015 15:05

А как посмотреть код этого функционала?
из модераторской удалять пуштучно несколько тыс тем - несеръезно.

Вот, что я нарыл в коде: получается что из модераторской я пришел в файл mcp.php.
здесь я нашел case 'delete_topic':

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

.........
// Instantiate module system and generate list of available modules
$module->list_modules('mcp');

if ($quickmod)
{
	$mode = 'quickmod';

	switch ($action)
	{
		case 'lock':
		case 'unlock':
		case 'lock_post':
		case 'unlock_post':
		case 'make_sticky':
		case 'make_announce':
		case 'make_global':
		case 'make_normal':
		case 'fork':
		case 'move':
		case 'delete_post':
		case 'delete_topic':
			$module->load('mcp', 'main', 'quickmod');
			return;
		break;

		case 'topic_logs':
			// Reset start parameter if we jumped from the quickmod dropdown
			if (request_var('start', 0))
			{
				$_REQUEST['start'] = 0;
			}

			$module->set_active('logs', 'topic_logs');
		break;

		case 'merge_topic':
			$module->set_active('main', 'forum_view');
		break;

		case 'split':
		case 'merge':
			$module->set_active('main', 'topic_view');
		break;

		default:
			trigger_error("$action not allowed as quickmod", E_USER_ERROR);
		break;
	}
}
else
{
	// Select the active module
	$module->set_active($id, $mode);
}
..........   
а вот дальше не соображу. :(
Подскажите пожалуста где "выковырять" код по удалению темы.

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Скрипт форума для удаления темы

Сообщение LavIgor » 07.12.2015 17:27

kupidon писал(а): Подскажите пожалуста где "выковырять" код по удалению темы.
Ищем после Вашей строчки.
$module->load('mcp', 'main', 'quickmod'); => идём в файл mcp_main.php.
https://github.com/phpbb/phpbb/blob/3.0 ... n.php#L109

Идём в функцию mcp_delete_topic.
https://github.com/phpbb/phpbb/blob/3.0 ... n.php#L787

Находим в другом файле функцию delete_topics.
https://github.com/phpbb/phpbb/blob/3.0 ... n.php#L620

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 08.12.2015 12:57

Спасибо...двигаюсь далее. Из того кода, который вы мне помогли найти-
Беру копирую функцию mcp_delete_topic и вставляю вверх своего кода (в файл http://XXX/forum/mydelpurch.php)
Ниже, под описанием функции, пишу mcp_delete_topic(17);
Если что не так- громко не смейтесь, я только учусь)

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

/**
* Delete Topics
*/
function mcp_delete_topic($topic_ids)
{
	global $auth, $user, $db, $phpEx, $phpbb_root_path;
	if (!check_ids($topic_ids, TOPICS_TABLE, 'topic_id', array('m_delete')))
	{
		return;
	}
	$redirect = request_var('redirect', build_url(array('action', 'quickmod')));
	$forum_id = request_var('f', 0);
	$s_hidden_fields = build_hidden_fields(array(
		'topic_id_list'	=> $topic_ids,
		'f'				=> $forum_id,
		'action'		=> 'delete_topic',
		'redirect'		=> $redirect)
	);
	$success_msg = '';
	if (confirm_box(true))
	{
		$success_msg = (sizeof($topic_ids) == 1) ? 'TOPIC_DELETED_SUCCESS' : 'TOPICS_DELETED_SUCCESS';
		$data = get_topic_data($topic_ids);
		foreach ($data as $topic_id => $row)
		{
			if ($row['topic_moved_id'])
			{
				add_log('mod', $row['forum_id'], $topic_id, 'LOG_DELETE_SHADOW_TOPIC', $row['topic_title']);
			}
			else
			{
				add_log('mod', $row['forum_id'], $topic_id, 'LOG_DELETE_TOPIC', $row['topic_title'], $row['topic_first_poster_name']);
			}
		}
		$return = delete_topics('topic_id', $topic_ids);
	}
	else
	{
		confirm_box(false, (sizeof($topic_ids) == 1) ? 'DELETE_TOPIC' : 'DELETE_TOPICS', $s_hidden_fields);
	}
	if (!isset($_REQUEST['quickmod']))
	{
		$redirect = request_var('redirect', "index.$phpEx");
		$redirect = reapply_sid($redirect);
		$redirect_message = 'PAGE';
	}
	else
	{
		$redirect = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
		$redirect_message = 'FORUM';
	}
	if (!$success_msg)
	{
		redirect($redirect);
	}
	else
	{
		meta_refresh(3, $redirect);
		trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_' . $redirect_message], '<a href="' . $redirect . '">', '</a>'));
	}
}
/**
*/

ниже то, что получилось (обращаю внимание, что файл лежитв корне форума, по адресу http://XXX/forum/mydelpurch.php):

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

<?php
$db =mysql_connect (******************);//подключение к серверу
	mysql_select_db(*****************) or die (mysql_error());//выбор базы данных
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
	error_reporting(E_ALL); 
	ini_set("display_errors", 1);
if (!$db) {
	exit('WRONG CONNECTION');
}
if(!mysql_select_db('*****************,$db)) {
	exit($db);
}

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

 $template->set_filenames(array(
    'body' => 'mydelpurch.html',
));
page_header('*********************');

if(!in_array($user->data['user_id'], array(2,55)))
{
	redirect($phpbb_root_path.'404.html');
	trigger_error('NO_MODE');}
	
	
/**
* Remove topic(s)
*/
function mcp_delete_topic($topic_ids)
{
	global $auth, $user, $db, $phpEx, $phpbb_root_path;
	if (!check_ids($topic_ids, TOPICS_TABLE, 'topic_id', array('m_delete')))
	{
		return;
	}
	$redirect = request_var('redirect', build_url(array('action', 'quickmod')));
	$forum_id = request_var('f', 0);
	$s_hidden_fields = build_hidden_fields(array(
		'topic_id_list'	=> $topic_ids,
		'f'				=> $forum_id,
		'action'		=> 'delete_topic',
		'redirect'		=> $redirect)
	);
	$success_msg = '';
	if (confirm_box(true))
	{
		$success_msg = (sizeof($topic_ids) == 1) ? 'TOPIC_DELETED_SUCCESS' : 'TOPICS_DELETED_SUCCESS';
		$data = get_topic_data($topic_ids);
		foreach ($data as $topic_id => $row)
		{
			if ($row['topic_moved_id'])
			{
				add_log('mod', $row['forum_id'], $topic_id, 'LOG_DELETE_SHADOW_TOPIC', $row['topic_title']);
			}
			else
			{
				add_log('mod', $row['forum_id'], $topic_id, 'LOG_DELETE_TOPIC', $row['topic_title'], $row['topic_first_poster_name']);
			}
		}
		$return = delete_topics('topic_id', $topic_ids);
	}
	else
	{
		confirm_box(false, (sizeof($topic_ids) == 1) ? 'DELETE_TOPIC' : 'DELETE_TOPICS', $s_hidden_fields);
	}
	if (!isset($_REQUEST['quickmod']))
	{
		$redirect = request_var('redirect', "index.$phpEx");
		$redirect = reapply_sid($redirect);
		$redirect_message = 'PAGE';
	}
	else
	{
		$redirect = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
		$redirect_message = 'FORUM';
	}
	if (!$success_msg)
	{
		redirect($redirect);
	}
	else
	{
		meta_refresh(3, $redirect);
		trigger_error($user->lang[$success_msg] . '<br /><br />' . sprintf($user->lang['RETURN_' . $redirect_message], '<a href="' . $redirect . '">', '</a>'));
	}
}
/**
* 
*/

mcp_delete_topic(17); //  хочу попробовать удалить топик 17

...........
...........


Результат белый экран.
Файл лежит в корне форума, может для работы этой функции его надо куда нибудь в другое место? :(

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Скрипт форума для удаления темы

Сообщение LavIgor » 08.12.2015 13:41

1. Зачем изобретать велосипед, если объект $db создаётся движком?
2. Код основной функции я дал по третьей ссылке, подключаете ли Вы файл, в котором она содержится?

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 09.12.2015 5:52

спасибо за помощь.
1. если в начале кода, вместо данных подключения к БД, пишу: global $template, $db;
то при проверке, он выдает ошибку WRONG CONNECTION :

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

if (!$db) {
	exit('WRONG CONNECTION');
}
if(!mysql_select_db('host1290766_for',$db)) {
	exit($db);
}
если положить файл в папку includes- то работает ((, не знаю как сделать чтобы он работал в корне форума.

2. Переделал начало кода...подключил прямой ссылкой файл functions_admin.php

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

include 'http://XXXX/forum/includes/functions_admin.php';
delete_topics(17);
но подозреваю, что данной функции надо передавать несколько параметров (вот только не могу разобраться каких):

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

function delete_topics($where_type, $where_ids, $auto_sync = true, $post_count_sync = true, $call_delete_posts = true)
а пока что белый экран :(

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

<?php
$db =mysql_connect (******************);//подключение к серверу
   mysql_select_db(*****************) or die (mysql_error());//выбор базы данных
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
   error_reporting(E_ALL); 
   ini_set("display_errors", 1);
if (!$db) {
   exit('WRONG CONNECTION');
}
if(!mysql_select_db('*****************,$db)) {
   exit($db);
}

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

 $template->set_filenames(array(
    'body' => 'mydelpurch.html',
));
page_header('*********************');

if(!in_array($user->data['user_id'], array(2,55)))
{
   redirect($phpbb_root_path.'404.html');
   trigger_error('NO_MODE');}

//*********************deltopic**********
include 'http://XXXX/forum/includes/functions_admin.php';
delete_topics(17);
..............
.................

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

Re: Скрипт форума для удаления темы

Сообщение Anvar » 09.12.2015 8:51

kupidon, У вас подключен include($phpbb_root_path . 'common.' . $phpEx);
Данный файл подключает все необходимые компоненты для работы с базой данных.
Всё что между <?php и define('IN_PHPBB', true); в вашем случае не требуется.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!

поиск моих эксклюзивных решений

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 09.12.2015 14:31

Вот так работает:

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

<?php
$db =mysql_connect ("localhost", **********); //подключение к серверу
mysql_select_db("host1290766_for") or die (mysql_error());//выбор базы данных
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
	error_reporting(E_ALL); 
	ini_set("display_errors", 1);

if (!$db) {
	exit('WRONG CONNECTION');
}
if(!mysql_select_db('host1290766_for',$db)) {
	exit($db);
}

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start 
$user->session_begin();
$auth->acl($user->data);
$user->setup();
Вот так НЕ работает :( : (ошибка: WRONG CONNECTIONssssssssss)

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

if (!$db) {
	exit('WRONG CONNECTION');
}
if(!mysql_select_db('host1290766_for',$db)) {
	exit('WRONG CONNECTIONssssssssss');
}


// Start 
$user->session_begin();
$auth->acl($user->data);
$user->setup();

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11489
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Скрипт форума для удаления темы

Сообщение Sheer » 09.12.2015 16:32

Изобретатель... держи
topic_delete.zip
(1.91 КБ) 155 скачиваний
Отправлено спустя 1 минуту 40 секунд:

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

include($phpbb_root_path . 'common.' . $phpEx);
... и ты уже подключился к базе.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Скрипт форума для удаления темы

Сообщение LavIgor » 09.12.2015 18:20

kupidon писал(а): ошибка: WRONG CONNECTIONssssssssss
Ну так вот этот кусок кода лишний, конечно же.
kupidon писал(а):

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

if(!mysql_select_db('host1290766_for',$db))
$db - это объект phpBB, а не тот идентификатор подключения к базе, который Вы использовали в своём коде.

Все манипуляции с базой данных осуществляются с помощью вызова методов этого объекта.

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 10.12.2015 8:40

Sheer, спасибо огромное, ваш код действительно работает!!!
Теперь остается совместить код Sheer и мой код в один. Если соединяю, то работает только удаление тем. Я думаю разберусь с этим, но сначала хочу разобраться с тем на чем так настаивают другие мои помощники. А именно методы $db

Дело в том, что если я меняю подключение к БД, то все ранее написанное не работает. Видимо все, что написал ранее не заточено под методы $db :(

ошибок больше нет, но и sql запросы не отрабатываются.
Посмотрите пожалуйста, не вдаваясь в детали запросов, а просто на орфографию ( код небольшой, удаление тем я пока убрал):

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

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/mcp/mcp_main.' . $phpEx);
include($phpbb_root_path . 'includes/functions_admin.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mcp');


 $template->set_filenames(array(
    'body' => 'mydelpurch.html',
));
page_header('Удаление фотографий и тем.');

if(!in_array($user->data['user_id'], array(2,55)))
{
	redirect($phpbb_root_path.'404.html');
	trigger_error('NO_MODE');}

     
if (isset($_POST['delpurch'])){
$delpurch= $_POST['delpurch'];
 }   

$query0 = 'UPDATE `sp_purchases` SET `state`=7 WHERE purchase_id IN ('.$delpurch.')';
$result0 = mysql_query($query0);

$query = 'SELECT id_items, purchase_id, name,  image_urls FROM sp_items WHERE purchase_id IN ('.$delpurch.') order by purchase_id';
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
    $krt= unserialize($row['image_urls']);

    foreach ($krt as &$value) {
         if ($value!="")
        {
           $fsize1=0;
           $fsize2=0;
           $newdir = mb_substr($value,0,2);
           $filename1 = "http://****.ru/forum/sp/photos/s/" .$newdir.'/'.$value;
           $filename2 = "http://****.ru/forum/sp/photos/b/" .$newdir.'/'.$value;
           $fh1 = fopen($filename1, "r");
           $fh2 = fopen($filename2, "r");
           while(($str = fread($fh1, 1024)) != null) $fsize1 += strlen($str);
           while(($str = fread($fh2, 1024)) != null) $fsize2 += strlen($str); 

           $itogosize= $itogosize + $fsize1+$fsize2;

 
$rezpurch = mysql_query('SELECT name FROM sp_purchases WHERE id_purchases IN ('.$row['purchase_id'].')');
$purchrow = mysql_fetch_array($rezpurch);
$purchname= $purchrow['name'];

    if (unlink("/home2/host1290766/****.ru/htdocs/www/forum/sp/photos/s/".$newdir.'/'.$value))
  { $resultat1="Малый файл успешно удален!"; }
  else
   { if ($fsize1>0) { $resultat1="Ошибка при удалении мал файла!"; }
    else {  $resultat1="Файла не существует!";  }
   } 
          
    if (unlink("/home2/host1290766/****.ru/htdocs/www/forum/sp/photos/b/".$newdir.'/'.$value))
{ $resultat2="Большой файл успешно удален!"; }
  else
   { if ($fsize2>0) { $resultat2="Ошибка при удалении бол файла!"; }
    else {  $resultat2="Файла не существует!";  }
   }
   
$zakupka1=$row['purchase_id'];

if ($zakupka1 == $zakupka2 ){
    $photo1='<tr style = "fontSize:10" bgcolor="#FFEBCD">
<td><a href="http:****.ru/forum/sp/photos/s/".$newdir."/".$value." target="_blank">'.$row['name'].'</a></td>
<td>'.$resultat1.'</td>
<td>'.$resultat2.'</td></tr>';
}
else { 
    $photo1='<tr color="red" face="Arial" bgcolor="##00FA9A"><td colspan="3" align="center" style="font-size: 18px;">'.$purchname.'</td></tr>
    <tr style = "fontSize:10" bgcolor="#FFEBCD">
<td><a href="http:****.ru/forum/sp/photos/s/".$newdir."/".$value." target="_blank">'.$row['name'].'</a></td>
<td>'.$resultat1.'</td>
<td>'.$resultat2.'</td></tr>';
$zakupka2=$row['purchase_id'];
}
    $template->assign_block_vars('delimages', array(
    'PHOTO'=> $photo1,
       ));
 
        }
    }
    unset($value);  //разорвать ссылку на последний элемент
    unset($newdir);
    }
$itogosize=$itogosize/1024/1024;
$template->assign_var('ITOGOSIZE', $itogosize);  

clearstatcache();

if(isset($_GET['name']) && isset($_GET['link'])) 
{ 
echo $_GET['name']; 
}

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>  

может можно оставить такие запросы к БД, (тем более все работало) и что надо для этого сделать?

ps/огромное спасибо всем за помощь

Отправлено спустя 5 минут 39 секунд:
а если вверху скрипта сделать обычное подключение к БД , вставить мой код ( который сформирует массив тем для удаления), потом подключение $db из common.php и код удаления тем по сформированному выше массиву ?
будет такое работать?
Я понимаю, что это извращения, но кидаться изучать что-то новое (имею ввиду методы $db) не выучив старого... :oops:

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 926 раз

Re: Скрипт форума для удаления темы

Сообщение LavIgor » 10.12.2015 12:29

kupidon, гайдлайны, видимо, не для Вас. :?
Их соблюдение поможет в первую очередь избежать дыр в безопасности, которыми насыщен Ваш код.
request_var в phpBB придумали не просто так.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11489
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: Скрипт форума для удаления темы

Сообщение Sheer » 10.12.2015 14:00

kupidon, Я ничего не понял.... Зачем изобретать велосипед?
kupidon писал(а): А именно методы $db
Зачем вам это? Для работы с базами данных существует ряд функций phpBB, написанных специально для этого.
Или вам нужно одновременное подключение к двум или более базам? Или вы пишите какой-то скрипт, который не имеет никакой связи с phpBB?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

Re: Скрипт форума для удаления темы

Сообщение kupidon » 10.12.2015 15:16

LavIgor писал(а): Их соблюдение поможет в первую очередь избежать дыр в безопасности, которыми насыщен Ваш код.
request_var в phpBB придумали не просто так.
спасибо, почитаю сейчас про это.
Sheer писал(а): Зачем вам это? Для работы с базами данных существует ряд функций phpBB, написанных специально для этого.
Или вам нужно одновременное подключение к двум или более базам? Или вы пишите какой-то скрипт, который не имеет никакой связи с phpBB?
я пытаюсь писать на php, но вопрос в том, что вставив вначале моего кода прямое подключение к БД ( как было ранее) все отлично работает, а убрав эти две строчки подключения и заменив подключение common.php - перестает работать... :( вот что пытаюсь до вас донести.

Вернуться в «Поддержка модов для phpBB 3.0.x»