So melden Sie sich ohne Bestätigung ab "Möchten Sie sich wirklich abmelden?"?
4 Antworten
- Stimmen
-
- 2012-10-06
Diesgeschieht,weil Sie dieerforderliche Noncein der URL vermissen,diein
überprüft wirdwp-login.php
case 'logout' : check_admin_referer('log-out'); ...
Verwenden Sie
wp_logout_url
,um die URLeinschließlich der Nonce abzurufen.Wenn Sie zueinerbenutzerdefinierten URL umleitenmöchten,übergeben Sie dieseeinfach als Argument.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
Sie können auch
wp_loginout
verwenden,um den Linkfür Sieeinschließlich der Übersetzung zugenerieren:echo wp_loginout('/redirect/url/goes/here')
This happens because you are missing the neccessary nonce in the URL, which is being checked in
wp-login.php
case 'logout' : check_admin_referer('log-out'); ...
Use
wp_logout_url
in order to retreive the URL including the nonce. If you want to redirect to a custom URL, simply pass it as an argument.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
You could also use
wp_loginout
which generates the link for you including translation:echo wp_loginout('/redirect/url/goes/here')
-
echo wp_loginout ('/redirect/url/goes/here')funktionierteinwandfrei ..echo wp_loginout('/redirect/url/goes/here') is working fine..
- 1
- 2015-10-30
- Mayur Devmurari
-
Ich verwende "wp_logout_url (get_permalink ())" und die Bestätigungsseite wirdnicht umgangen.Das Nonce wird als Teil der URLgeneriert,aberich werdetrotzdem zur Bestätigungsseite weitergeleitetI'm using `wp_logout_url( get_permalink())` and the confirmation page is not bypassed. The nonce is generated as part of the URL but I am still sent to the confirmation page
- 1
- 2018-12-17
- Ralphonz
-
Gleiches Problem hier :(Same issue here :(
- 0
- 2019-04-14
- Jarmerson
-
Vielen Dank.hatmir dasecho wp_logout_url ()bearbeitet;thanks. worked me that echo wp_logout_url();
- 0
- 2020-05-26
- Erhan Demirci
-
- 2016-04-04
Wenn Sie die Funktion
wp_logout_url()
nicht verwenden können,können Sie diese Überprüfungmit folgendem Code deaktivieren:add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
Ersetzen Sie
'url-you-want-to-redirect'
durch die URL,die Sienach dem Abmelden umleitenmöchten.Fügen Sieesin Ihre
einfunctions.php
If you can't use
wp_logout_url()
function, You can turn off this validation using this code:add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
Replace
'url-you-want-to-redirect'
with the URL you want to redirect after logout.Add it in your
functions.php
-
Diesfunktioniert zum Abmelden ohne Validierung,leitetjedochnicht zurgewünschten URL weiter.This works for logging out without validation, but it doesn't redirect to the url I want.
- 0
- 2017-06-29
- Phu Nguyen
-
@PhuNguyen Siemüssennur die Umleitungs-URL zur Umleitungsanforderungin dem Code hinzufügen,in demnach dem Doppelpunkt '' Anführungszeichen stehen.@PhuNguyen You just need to add the redirect URL to the redirect request in that code where there is ' ' quotes, after the colon.
- 0
- 2017-12-17
- NJENGAH
-
Gibtes Sicherheitsaspektebeim Entfernen dieser Validierung?are there any security implications for removing this validation?
- 0
- 2018-03-20
- rok
-
@ user1264304 Ichglaube,dassböswilliges JS,dasirgendwiein den Browsergeladen wurde,eine Weiterleitung zur Anmeldeseite durchführen kann,aber alles,wasestun wird,ist,den Benutzer abzumelden.Wirklichbösartiger Code würde wahrscheinlich versuchen,die URL voreinergültigen Nonce zuersetzen.Der Benutzer kann zueiner anderen Sitenavigieren,die danneinen Link zur Abmeldeseite der aktuellen Siteenthält - vorausgesetzt,die andere Site weiß,dass der Benutzereine Beziehung hat.Wieder keine andere Konsequenz als das Abmelden des Benutzers.Ich habe dasnochnie gesehen.Um Ihre Frage zubeantworten,gibt esmeines Erachtens keine Sicherheitsaspektefür das Entfernen der Validierung.@user1264304 I believe malicious JS somehow loaded into the browser could do a redirect to the login page, but all it's going to do is logout the user. Truly malicious code would probably seek to replace the URL before a valid nonce. The user could navigate to another site which then has a link the current site's logout page - assuming the other site is aware that the user has a relationship. Again, no consequence other than logging out the user. I've never seen this. So to answer your question, I do Not think there is a security implication for removing the validation.
- 0
- 2018-05-04
- TonyG
-
Ähm,zu viele Weiterleitungen ...Err, Too Many Redirects...
- 0
- 2019-02-05
- Solomon Closson
-
Hervorragende Lösungfürmich,vor allem,weil aufmeiner Abmeldeseite kein zusätzliches PHPbenötigt wird.Ichbenutzeeinfach diesen Link: wp-login.php? Action=logout Und als Weiterleitung verwendeich home_url (),damites aufjeder Sitefunktioniert.Excellent solution for me especially because it needs no extra php on my logout page. I simply use this link:wp-login.php?action=logout And as redirect, I use home_url() so it works on any site.
- 0
- 2020-08-28
- Ralf
-
- 2019-03-04
Wenn Siein Ihrem Menüeinen benutzerdefinierten Linkerstellen,setzen Sie die Bezeichnung auf
“Logout”
und die URL aufhttp://yourdomain.com/wp-login.php?action=logout
. Fügen Sie diese Funktion dann Ihrer Dateifunctions.php
hinzu:function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
Wenn Sienach dem Abmelden zur Anmeldeseite umleitenmöchten,sollten Sie die Anmelde-URL wiefolgt anhängen:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
** hat versucht,dass dasnichtfunktioniert hat. Ichmöchtemich wirklich abmelden,dannistbeim Klicken auf die Schaltflächeetwas schiefgegangen.
If you create a custom link in your menu, set the label to
“Logout”
, and set the URL tohttp://yourdomain.com/wp-login.php?action=logout
. Then add this function to yourfunctions.php
file:function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
If you want to redirect to the login page after logout then you should append login URL as:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
** tried that did not work. Really want to log out page then 4 something went wrong when clicking the button.
-
- 2019-08-01
Dies hatbei mirfunktioniert,indem am Ende
/?customer-logout=true
hinzugefügt wurde.http://www.website.com/?customer-logout=true
This worked for me by adding
/?customer-logout=true
at the end.http://www.website.com/?customer-logout=true
Im Moment,wennichmich abmelde über:
leitetmich zu der Seite weiter,auf derich die Abmeldungbestätigenmuss.
Wie kannich die Bestätigungentfernen undnach dem Abmelden zur Startseite umleiten?