Перейти к публикации

Как изменить префикс "dle"


Рекомендованные сообщения

Здравствуйте форумчане!

Вопрос такой:

define ("USERPREFIX", "dle"); в /engine/data

как изменить префикс dle на другой и безболезненно?

(Сайт http://www.izbushkinet.ru/)

Ссылка на сообщение
Поделиться на других сайтах

смысл?! охота переписать весь движок?

Читаем тут: http://dle-news.ru/tips/152-edinaja_registracija_i_avtorizacija_na_neskolkikh_sajjtakh.html

Ссылка на сообщение
Поделиться на других сайтах

ну а тогда можно или ручками - 36 таблиц минимум

или новой установкой - но с нужным префиксом

или изменить файл архива name.sql.txt - методом замены префиксов и создать новую базу

способов много...

Изменено пользователем Klemanso
Ссылка на сообщение
Поделиться на других сайтах

Не получается. Пишет:

(!!!) Empty database.

(!!!) Пустая база данных.

Вот собственно весь скрипт:

<?php

/**

* Скрипт автоматической замены префикса таблиц базы данных.

*

* @author Владислав Dr.Freddy Костянецкий <bytecoded@gmail.com>

* @version 1.0.0 от 18 июля 2009 г.

* @link http://drfreddy.ru/2011/7/24/prefix

*/

// Конфигурация скрипта.

define( 'CURRENT_PREFIX', 'one_' ); // Текущий префикс таблиц.

define( 'REPLACE_PREFIX', 'two_' ); // Требуемый префикс таблиц.

define( 'MYSQL_HOST', 'localhost' ); // Сервер СУБД.

define( 'MYSQL_CHAR', 'utf8' ); // Кодировка соединения.

define( 'MYSQL_PORT', '3306' ); // Порт подключения.

define( 'MYSQL_USER', '' ); // Имя пользователя.

define( 'MYSQL_PASS', '' ); // Пароль пользователя.

define( 'MYSQL_BASE', '' ); // Целевая база данных.

// НИЖЕ НИЧЕГО МЕНЯТЬ НЕ НУЖНО!!!

print "<pre>Let's the mortal combat begin!nn";

$tables = array();

$connection_id = @ mysql_connect( MYSQL_HOST . ':' . MYSQL_PORT, MYSQL_USER, MYSQL_PASS );

if ( ! $connection_id ) die( '(!!!) MySQL connection failed.' );

if ( ! mysql_select_db( MYSQL_BASE, $connection_id ) ) die( '(!!!) Database selection failed.' );

mysql_query( 'SET NAMES ' . MYSQL_CHAR, $connection_id );

$tables_rid = mysql_query( 'SHOW TABLES FROM ' . MYSQL_BASE, $connection_id );

while ( $row = mysql_fetch_row( $tables_rid ) ) $tables[] = $row[0];

if ( ! count( $tables ) ) die( '(!!!) Empty database.' );

foreach( $tables as $table )

{

if ( substr( $table, 0, strlen( CURRENT_PREFIX ) ) != CURRENT_PREFIX ) continue;

print " Table: $tablen";

$new_name = substr_replace( $table, REPLACE_PREFIX, 0, strlen( CURRENT_PREFIX ) );

mysql_query( "ALTER TABLE `$table` RENAME `$new_name`;", $connection_id );

print ' Renamed to ' . $new_name . "n";

}

exit( "nnTHE END" );

Ссылка на сообщение
Поделиться на других сайтах

Если база небольшая, то можно сделать след. образом:

1. Скачать дамп базы;

2. Открыть любым текстовым редактором, но лучше Notepad++ или AkelPad;

3. Перейти в функцию "Найти и заменить": dle_ на ***_ (что-то свое);

4. Заливаем БД и меняем в /date/config.php префикс на тот, что установили ранее.

Ссылка на сообщение
Поделиться на других сайтах

ну правильно пишет... данные то небось читаются по старой конфигурации, а новую надо еще настраивать

Ссылка на сообщение
Поделиться на других сайтах

ну правильно пишет... данные то небось читаются по старой конфигурации, а новую надо еще настраивать

Ты о чем вообще?

Ссылка на сообщение
Поделиться на других сайтах

Ребята, тогда следующий вопрос. Есть два сайта. У каждого соответственно своя база данных.

Хочу создать общую базу данных пользователей.

Как сделать так, чтобы авторизованные на первом сайте автоматически становились также авторизованы на сайте втором?

И есть ли возможность синхронизации данных между двумя базами пользователей?

Изменено пользователем izbushkin
Ссылка на сообщение
Поделиться на других сайтах

Как сделать так, чтобы авторизованные на первом сайте автоматически становились также авторизованы на сайте втором?

Как это сделать написано на странице http://dle-news.ru/tips/152-edinaja_registracija_i_avtorizacija_na_neskolkikh_sajjtakh.html но второй сайт должен быть сделан с нуля.

И есть ли возможность синхронизации данных между двумя базами пользователей?

Нет, пользователи беруться только из одной БД, а не из двух одновременно.

Ссылка на сообщение
Поделиться на других сайтах

Как сделать так, чтобы авторизованные на первом сайте автоматически становились также авторизованы на сайте втором?

Как это сделать написано на странице http://dle-news.ru/t...h_sajjtakh.html но второй сайт должен быть сделан с нуля.

И есть ли возможность синхронизации данных между двумя базами пользователей?

Нет, пользователи беруться только из одной БД, а не из двух одновременно.

Спасибо за комментарий!

А подскажите тогда как мне всё же изменить префикс "dle" на старом сайте? Есть ли какой то способ?

Ссылка на сообщение
Поделиться на других сайтах

izbushkin,

Выше писали, сначала нужно сделать бекап БД, поменять префикс таблиц в бекапе, восстановить бекап БД и потом в файле engine/data/dbconfig.php сменить.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...