Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spraw, aby logowanie do witryny działało również na WordPress

Możesz ustawić logowanie Wordpress tak, aby używało niestandardowej tabeli, edytując plik config.php i dodając te dwie linie:

define('CUSTOM_USER_TABLE','new_user_table'); //login, pass, email etc
define('CUSTOM_USER_META_TABLE', 'new_usermeta_table'); //optional bio, don't have to include this line

Gdzie new_user_table to tabela Twojej witryny, a new_usermeta_table to biotabela Twojej witryny (jeśli chcesz)

Tabela niestandardowa musi mieć taką samą strukturę jak normalna tabela Wordpress. Tak więc, aby to zadziałało z tabelą istniejącej witryny, musisz dodać kilka pól i upewnić się, że hasło jest zahaszowane w ten sam sposób.

Oto jak ustrukturyzować tabelę użytkowników

Oto jak ustrukturyzować metatablicę użytkownika

Aby poprawnie zahaszować hasła podczas rejestracji, dołącz plik wp-includes/pluggable.php i użyj funkcji
<?php $hash = wp_hash_password( $password ) ?>

W przypadku istniejących haseł, które nie są poprawnie zaszyfrowane, musisz skonfigurować resetowanie hasła poczty e-mail.

Lub. jeśli chcesz zachować swoje obecne skróty hasła (niezalecane ze względów bezpieczeństwa, ale możliwe), możesz zmienić funkcję skrótu wordpress. W wp-includes/pluggable.php zmień:

if ( !function_exists('wp_hash_password') ){
    function wp_hash_password($password) {
                //apply your own hashing structure here
            return $password;
    }
}

I zmień:

if ( !function_exists('wp_check_password') ){
    function wp_check_password($password, $hash, $user_id = '') {
            //check for your hash match
            return apply_filters('check_password', $check, $password, $hash, $user_id);
            }
}

Aby uzyskać szczegółowe informacje na temat wp_check_password Przejdź tutaj

Alternatywnie

Możesz pominąć zabawę w niestandardową tabelę użytkowników i zastosować login wordpress do reszty witryny. Aby to zrobić, użyj po prostu następującego kodu:

<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
    echo 'Welcome, registered user!';
} else {
    header( 'Location: http://google.com' ) ;
};
?>

Upewnij się, że „wp-config.php” jest pełną ścieżką względną do pliku, a następnie umieść ten kod na każdej stronie w witrynie innej niż Wordpress. zamień echo na jakąkolwiek treść, która ma być wyświetlana dla zalogowanego użytkownika, a nagłówek zamień na jakąkolwiek treść, która ma być wyświetlana dla gościa. Jeśli treść to prosty html, możesz wykonać następujące czynności:

<?php
include 'wp-config.php';
if ( is_user_logged_in() ) {
?>

<html>
<head></head>
<body><p>Welcome Registered user</p></body>
</html>

<?php
} else {
?>

<html>
<head></head>
<body><p>Please log in</p></body>
</html>

<?php
};
?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak zapisać dane, które użytkownik wprowadził na stronie formularza po wykonaniu skryptu?

  2. Jak mogę używać przezroczystego szyfrowania danych w MySQL?

  3. pobierz tablicę wartości kolumn w codeigniter

  4. Konwersja z mysql do mysqli (mysql_fetch_array)

  5. Moja instrukcja sql SELECT JOIN na trzech stołach