Home  >  Article  >  Backend Development  >  PHP method to integrate DISCUZ users

PHP method to integrate DISCUZ users

墨辰丷
墨辰丷Original
2018-06-07 17:24:582259browse

This article mainly introduces the method of integrating DISCUZ users in PHP. Interested friends can refer to it. I hope it will be helpful to everyone.

A few days ago I encountered a project that required merging two discuz. One user level was around 120,000, and the other was 18,000. Needless to say, the 10,080 user must have been thrown away, leaving 120,000. of. It started to feel difficult to handle. The data tables are all related. When a new user is registered, 8 tables have added records. I haven’t checked whether other tables have the possibility of modifying records. At that time, I felt that I couldn't sort out those tables for a while, so I searched for it and found the discuz tool. But it could only import items within 100,000, so I had to try it myself. After thinking about it, I directly inserted a line into the key table. As for the record, other tables may automatically complete the relevant data during the user operation, so I tried to export the original 18,000 users, and then wrote a PHP script to directly write the 18,000 users into the uncenter The member inside and outside. I tested it and it was OK. Unfortunately, none of the user points or anything has passed, only the user's username and password have been retained.

Key steps:

1. Export the uncenter member database of the system you plan not to use into a sql file.

2. Run the script.

Statement: This script only provides ideas. Please back up the data in advance before use. The author has nothing to do with data loss. (The code is simple, don’t spray)

set_time_limit(0); 
$link = mysql_connect('localhost', 'ngjc', 'ohFt6yhHYvt5') 
 or die('Could not connect: ' . mysql_error()); 
echo 'Connected successfully'; 
mysql_select_db('ngjc') or die('Could not select database'); 
require "sql.php";//此处换成导出的sql文件 
$arrayerr=array(); 
$oknum=0; 
$errnum=0; 
mysql_query("SET NAMES utf8"); 
foreach($sqlarr as $sql) 
{ 
 if(!mysql_query($sql)) 
 { 
  $arrayerr[]=$sql;$errnum++; 
 } 
 else 
 { 
  $oknum++; 
 } 
} 
echo "<pre class="brush:php;toolbar:false">OK:$oknum <br>errornum:$errnum <br> error:<br>"; 
print_r($arrayerr); 
mysql_close($link);

Let’s take a look at the method of using UC integration

I have been working on the ucenter and membership systems of 2 discuz in the past two days; after My unremitting efforts; finally the integration is completed; after integration, the functions are as follows;

Two discuz systems share the same ucenter; // Implementation method:

Two discuz systems share the same membership system ; //The solution is at the back;

Integrate ucenter first;

Completely install a discuz system first; enter ucenter; add applications:

Click to install: Keep going to the next step

#If click appears, you must solve the above problems before the installation can continue
Please return to input IP address of UCenter: If nothing goes wrong, go to the next step

ucenter integration is completed; you can log in at the same time; exit at the same time; it only needs to be activated for the first time;

Open config_global.php under the second subsystem config/;

In $_config['db']['1']['tablepre'] = chuzi_'; Add $_config['db']['2']['tablepre'] = it_

The second subsystem opens db_driver_mysql.php under the source\class\db file ;

In line 34$this->tablepre = $config['1']['tablepre'];Add below $this->tableprechu = $ config['2']['tablepre'];
Line 112 return $this->tablepre.$tablename;change to the following

if(preg_match("/^common_member(.*)/i",$tablename)|| preg_match("/^home(.*)/i",$tablename) || in_array($tablename, array(&#39;common_credit_rule_log&#39;)))
    {
      return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行;
    }else{
    return $this->tablepre.$tablename;
    }

Summary: The above is the entire content of this article, I hope it will be helpful to everyone's study.

Related recommendations:

thinkPHP method to implement multi-table query and paging function

PHP implementation acquisition Month, this month, last 15 days, last 30 days methods

PHP uses preg_split and explode to implement splitting textarea to store content

The above is the detailed content of PHP method to integrate DISCUZ users. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn