Gibt es eine Möglichkeit, die Freigabe des Benutzernamens (basierend auf der IP-Adresse oder gleichzeitigem Login an einem anderen Ort) für WordPress zu annullieren? Wenn es ein Plugin gibt, um nur die IP-Adresse und die Anmeldezeit zu verfolgen, sollte es auch in Ordnung sein. Vielen Dank
Plugin, um das Teilen des Benutzernamens in WordPress zu vermeiden
Sie könnten dies zu Ihrer functions.php oder einer Plugin-Datei hinzufügen.
//set the most current user to have a cookie matching a unique value
add_action("set_logged_in_cookie", "one_cookie", 10, 5);
function one_cookie($logged_in_cookie, $expire, $expiration, $user_id, $logged_in) {
$secure = apply_filters('secure_logged_in_cookie', false, $user_id, is_ssl());
$cookie = uniqid();
update_user_meta($user_id, "one_cookie", $cookie);
setcookie("one_cookie", $cookie, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure, true);
return;
}
//check requests from users to ensure they have this cookie
add_action("init", "check_one_cookie", 1);
function check_one_cookie() {
$user = wp_get_current_user();
if ($user->ID == 0) { return; }
$storedcookie = get_user_meta($user->ID, 'one_cookie');
print_r(array('$storedcookie'=>$storedcookie));
if (!empty($storedcookie) && $_COOKIE['one_cookie'] != $storedcookie) {
/*if the user doesn't have the same cookie as we have stored, log them out.*/
wp_logout();
//auth_redirect() may have a more desired effect
}
}
//unset a users cookie
add_action('wp-logout', 'one_cookie_logout');
function one_cookie_logout() {
setcookie("one_cookie", "", 1);
}
Dies funktioniert jedoch nur in eine Richtung. Jedes Mal, wenn eine neue Anmeldung verarbeitet wird, wird die alte gesperrt. Wenn Sie das rückgängig machen möchten, müssen Sie wahrscheinlich viel mehr Code schreiben, damit ein Benutzer eine Sperre usw. aufheben kann.
Sie können dies auch erreichen, indem Sie die entsprechenden Funktionen in „wp-includes/pluggable.php“ ersetzen.
Ich habe den obigen Code getestet, um mit WordPress 3.1 zu arbeiten.
-
Beachten Sie, dass dies dem Benutzer, unabhängig von seiner IP-Adresse, Benutzer für Benutzer verweigert. Wenn Sie zulassen möchten, dass sich derselbe Benutzer anmelden kann, aber von verschiedenen IPs (wahrscheinlich nicht der beste Weg), fügen Sie einfach ein Benutzer-Metafeld für seine IP hinzu oder codieren Sie es im Cookie und überprüfen Sie dann die Anforderungen damit.
– Nullvariable
12. April 2011 um 18:24 Uhr
Getestet in 3.6.1 und funktioniert gut, außer dass die Funktion “check_one_cookie” wie folgt aktualisiert werden muss:
add_action("init", "check_one_cookie", 1);
function check_one_cookie() {
$user = wp_get_current_user();
if ($user->ID == 0) { return; }
$storedcookie = get_user_meta($user->ID, 'one_cookie');
// print_r(array('$storedcookie'=>$storedcookie));
if (!empty($storedcookie) && $_COOKIE['one_cookie'] != $storedcookie[0]) {
/*if the user doesn't have the same cookie as we have stored, log them out.*/
wp_logout();
//auth_redirect() may have a more desired effect
}
}
$gespeichertes Cookie sollte ersetzt werden durch $gespeichertes Cookie[0]
(und vergessen Sie nicht COOKIEPATH, COOKIE_DOMAIN durch Ihre eigenen Daten zu ersetzen)
-
Lebensretter Ich wurde verrückt mit diesem haha
– cppit
11. Januar 2014 um 9:04 Uhr
Ich habe dies nicht verwendet, aber die IP-Logger-WordPress-Plugin sieht vielversprechend aus. Es hat viele Protokollierungs- und Verwaltungsfunktionen.
Möchten Sie es so machen, dass nur eine einzige IP einen Benutzernamen verwenden kann? Wenn ja, blockieren Sie jeden Benutzer mit einer dynamischen IP. Oder versuchen Sie, gleichzeitige Anmeldungen desselben Benutzers zu blockieren?
– Billy ONeal
10. April 2010 um 1:36 Uhr
Ich versuche, die gleichzeitige Anmeldung zu blockieren.
– PS.
11. April 2010 um 22:24 Uhr