Machen Sie Website-Login auch auf WordPress

8

Ich habe eine Website mit PHP und MySQL entwickelt, die bereits ein Anmelde- und Registrierungsformular enthält. ( myweb.com )

Ich habe WordPress in dieser URL myweb.com/blog

hinzugefügt

Ich möchte die Anmelde- und Registrierungsseite in WordPress deaktivieren und die Benutzer zwingen, meine zu verwenden. Grundsätzlich integriere meinen Login mit WordPress, damit der User auf beiden Seiten eingeloggt ist.

Meine Site members Tabelle sieht so aus. Und alle registrierten Benutzer werden hier gespeichert. Und Passwörter in meinem DB werden mit md5()

gehashed %Vor%

und WordPress-Struktur ist so und ist derzeit leer

%Vor%

Ich habe versucht, die Schritte hier zu erwähnen

aber ich erhalte diesen Fehler in Zeile 254 var_dump($user);

%Vor%

Außerdem werden alle Benutzerinformationen in meiner Tabelle members auf meiner Site gespeichert, nicht in WordPresss db.

Hier ist mein Login-Code für meine Site, dem ich kürzlich auch den WordPress-Login hinzugefügt habe.

%Vor%

Muss ich alles aus meiner members -Tabelle kopieren und in wp_users auffüllen oder gibt es eine Möglichkeit, sich bei Wordpress anzumelden, ohne doppelte Daten in zwei verschiedenen Tabellen zu haben? Ich möchte keine 2 Logins und 2 Registrierungsformulare auf beiden Seiten haben.

Warum wird wp_authenticate() in meinem obigen Code nicht authentifiziert?

    
user2636556 14.01.2014, 05:19
quelle

3 Antworten

4

Sie können das Wordpress-Login so einstellen, dass eine benutzerdefinierte Tabelle verwendet wird, indem Sie die config.php bearbeiten und diese beiden Zeilen hinzufügen:

%Vor%

Dabei ist new_user_table die Tabelle Ihrer Website und new_usermeta_table die Biotabelle Ihrer Website (falls Sie eine möchten)

Die benutzerdefinierte Tabelle muss die gleiche Struktur wie eine normale Wordpress-Tabelle haben. Um das mit der Tabelle Ihrer bestehenden Website zu arbeiten, müssen Sie einige Felder hinzufügen und sicherstellen, dass das Passwort auf die gleiche Weise hasiert wird.

So strukturieren Sie die Benutzertabelle

So strukturieren Sie die Benutzer-Meta-Tabelle

Um die Passwörter bei der Registrierung korrekt zu hashen, fügen Sie die Datei wp-includes / pluggable.php hinzu und verwenden Sie die Funktion
<?php $hash = wp_hash_password( $password ) ?>

Für bestehende Passwörter, die nicht korrekt gehashed wurden, müssen Sie ein E-Mail-Passwort zurücksetzen.

Or. Wenn Sie Ihre aktuellen Passwort-Hashes beibehalten möchten (aus Sicherheitsgründen nicht empfohlen, aber machbar), können Sie die Wordpress-Hashing-Funktion ändern. In wp-includes / pluggable.php ändern:

%Vor%

Und ändern:

%Vor%

Einzelheiten zu wp_check_password Hier gehen

Alternativ

Sie können überspringen, indem Sie sich mit Ihrer benutzerdefinierten Benutzertabelle herumärgern und den Wordpress-Login für den Rest Ihrer Site anwenden lassen. Verwenden Sie hierzu einfach den folgenden Code:

%Vor%

Stellen Sie sicher, dass 'wp-config.php' der vollständige relative Pfad zur Datei ist, und fügen Sie diesen Code dann in jede Seite Ihrer nicht-Wordpress-Site ein. Ersetzen Sie das Echo durch den Inhalt, der für einen angemeldeten Benutzer angezeigt werden soll, und ersetzen Sie die Kopfzeile mit dem, was für einen Gast angezeigt werden soll. Wenn der Inhalt einfach HTML ist, können Sie Folgendes tun:

%Vor%     
Seff 23.01.2014 04:06
quelle
0

Versuchen Sie, die Optionen in Ihrer wp-config.php -Datei so zu ändern, dass sie auf Ihre members -Datenbank zeigt; Es ist wahrscheinlich eine gute Idee, mit MySQL einen eigenen Benutzer / Passwort zu erstellen und der Mitglieder-DB Privilegien zu erteilen. Es gibt eine Reihe nützlicher Optionen, die Sie mit dieser Datei einstellen / ändern können. Ich schlage vor, Sie lesen die Dokumentation für weitere Informationen. Wenn Sie sich entschließen, den oben genannten Ansatz zu versuchen, stellen Sie sicher, dass Sie auch die Zeile $table-prefix so ändern, dass sie Ihrer vorhandenen Datenbank entspricht.

Sehen Sie auch, wenn dieser Blog Post ist hilfreich, da es sich direkt um die externe Authentifizierung handelt. Es gibt ein PHP-Skript, das Sie kopieren / einfügen oder auf andere Weise an Ihre speziellen Bedürfnisse anpassen können. Achten Sie besonders auf die Zeilen include_once("../wp-config.php"); und include_once("../wp-includes/class-phpass.php"); .

    
ILMostro_7 14.01.2014 05:42
quelle
0

Das habe ich vor einiger Zeit mit einer Funktion aus der Wordpress-API geschafft.

%Vor%

$wordpress_user_id ist die ID des Benutzers in der Wordpress-Tabelle.

$remember ist eine boolesche Variable, die angibt, ob Wordpress ein persistierendes Cookie erstellen soll, das den Benutzer zwischen Sitzungen "erinnert".

Ich erinnere mich nicht an die dritte, aber Sie könnten es leicht googlen.

P.S. Um die Funktion wp_set_auth_cookie verfügbar zu haben, müssen Sie einige Wordpress-Dateien einbinden / benötigen, bevor Sie sie verwenden. Versuchen Sie es mit der Datei wp-load.php .

    
Haralan Dobrev 23.01.2014 19:33
quelle