So integrieren Sie DISCUZ-Benutzer mit PHP

墨辰丷
Freigeben: 2023-03-30 15:20:02
Original
2255 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode zur Integration von DISCUZ-Benutzern in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Vor ein paar Tagen bin ich auf ein Projekt gestoßen, bei dem zwei Discuz-Benutzer zusammengeführt werden mussten. Eine Benutzerebene lag bei etwa 120.000, die andere bei 18.000. Unnötig zu erwähnen, dass die 10.080-Benutzerebene weggeworfen wurde, sodass 120.000 übrig blieben. von. Es begann schwierig zu sein, die Datentabellen zu verwalten. Wenn ein neuer Benutzer registriert ist, wurden 8 Tabellen hinzugefügt. Ich habe nicht überprüft, ob andere Tabellen die Möglichkeit haben, Datensätze zu ändern. Zu diesem Zeitpunkt hatte ich das Gefühl, dass ich diese Tabellen eine Weile nicht sortieren konnte, also suchte ich danach und fand das Discuz-Tool, aber es konnte nur Elemente innerhalb von 100.000 importieren, also musste ich es selbst ausprobieren Darin habe ich direkt eine Zeile in die Schlüsseltabelle eingefügt. Andere Tabellen vervollständigen möglicherweise automatisch die relevanten Daten während des Benutzervorgangs. Daher habe ich versucht, die ursprünglichen 18.000 Benutzer zu exportieren, und dann ein PHP-Skript geschrieben, um das direkt zu schreiben 18.000 Benutzer im Uncenter Das Mitglied innen und außen. Ich habe es getestet und es war in Ordnung. Leider sind keine Benutzerpunkte oder ähnliches verloren gegangen, nur der Benutzername und das Passwort des Benutzers wurden beibehalten.

Wichtige Schritte:

1. Exportieren Sie die Uncenter-Mitgliedsdatenbank des Systems, das Sie nicht verwenden möchten, in eine SQL-Datei.

2. Führen Sie das Skript aus.

Erklärung: Dieses Skript liefert nur Ideen, bevor Sie es verwenden. Sollten Daten verloren gehen, hat der Autor nichts damit zu tun. (Der Code ist einfach, nicht sprühen)

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);
Nach dem Login kopieren

Werfen wir einen Blick auf die Methode zur Verwendung der UC-Integration

Ich habe am ucenter und an der Mitgliedschaft gearbeitet Die beiden Discuz-Systeme haben in den letzten zwei Tagen die gleiche Implementierungsmethode verwendet.

Die beiden Discuz-Systeme teilen sich das gleiche Mitgliedschaftssystem; //Die Lösung ist später

Integrieren Sie zuerst ucenter;

Installieren Sie zuerst ein Discuz-System vollständig; ucenter eingeben; Anwendungen hinzufügen:

Zum Installieren klicken: Gehen Sie zum nächsten Schritt unten

Wenn Sie Klicken Sie und die oben genannten Probleme werden angezeigt. Sie müssen die oben genannten Probleme lösen, bevor die Installation fortgesetzt werden kann

Bitte kehren Sie zur Eingabe der IP-Adresse von UCenter zurück: Wenn nichts schief geht, fahren Sie mit dem nächsten Schritt fort


ucenter-Integration ist abgeschlossen; gleichzeitiges Anmelden und Beenden ist nur zum ersten Mal erforderlich; >In

$_config['db']['1']['tablepre'] = chuzi_'

; Fügen Sie

$_config['db']['2']['tablepre'] hinzu = it_

Das zweite Subsystem öffnet db_driver_mysql.php unter der sourceclassdb-Datei Fügen Sie unten Zeile 34 hinzu$this->tablepre = $config['1 ']['tablepre'];

$this->tableprechu = $config['2 ']['tablepre'];

Zeile 112 gibt $this->tablepre zurück. $tablename; wie folgt geändert

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;
    }
Nach dem Login kopieren
Zusammenfassung: Das ist es. Der gesamte Inhalt des Artikels soll für das Studium aller hilfreich sein.
Verwandte Empfehlungen:

ThinkPHP-Methode zur Implementierung von Multi-Table-Abfrage- und Paging-Funktionen

PHP-Implementierungserwerb Methoden „Monat“, „Dieser Monat“, „Letzte 15 Tage“, „Letzte 30 Tage“

PHP verwendet „preg_split“ und „explosive“, um die Methode zum Aufteilen von Textbereichen zum Speichern von Inhalten zu implementieren

Das obige ist der detaillierte Inhalt vonSo integrieren Sie DISCUZ-Benutzer mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage