sql >> Database teknologi >  >> RDS >> Mysql

Få hjemmesidelogin til at fungere på WordPress også

Du kan indstille wordpress-login til at bruge en brugerdefineret tabel ved at redigere config.php og tilføje disse to linjer:

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

Hvor new_user_table er dit websteds tabel og new_usermeta_table er dit websteds biotabel (hvis du vil have en)

Den brugerdefinerede tabel skal have samme struktur som en normal wordpress-tabel. Så for at få dette til at fungere sammen med din eksisterende hjemmesides tabel, skal du tilføje nogle felter og sørge for, at adgangskoden er hashed på samme måde.

Sådan strukturerer du brugertabellen

Sådan struktureres brugermetatabellen

For at hash adgangskoderne korrekt ved registrering skal du inkludere filen wp-includes/pluggable.php og bruge funktionen
<?php $hash = wp_hash_password( $password ) ?>

For eksisterende adgangskoder, der ikke er hashed korrekt, skal du konfigurere en nulstilling af e-mail-adgangskode.

Eller. hvis du gerne vil beholde din nuværende hash-kodeord (anbefales ikke af sikkerhedsmæssige årsager, men det kan lade sig gøre), kan du ændre wordpress-hash-funktionen. I wp-includes/pluggable.php ændres:

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

Og skift:

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);
            }
}

For detaljer om wp_check_password Gå her

Alternativt

Du kan springe over at rode rundt med din brugerdefinerede brugertabel og få WordPress-login til at gælde for resten af ​​dit websted. For at gøre dette skal du blot bruge følgende kode:

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

Sørg for, at 'wp-config.php' er den fulde relative sti til filen, og placer derefter denne kode på hver side på dit ikke-wordpress-websted. erstatte ekkoet med det indhold, der skal vises for en logget bruger, og erstat headeren med det, der skal vises for en gæst. Hvis indholdet er simpelt html, kan du gøre følgende:

<?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. Android henter data fra MySql-tabellen

  2. Sådan indlæses værdier dynamisk i Tomcat's Context XML-fil

  3. Post MySQL-resultat ved hjælp af AJAX via jQuery

  4. Erstat i forespørgselssyntaks