Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Logout Script
#1
Hallo,
wie funktioniert das Logout Script? Ich möchte "einfach" nur, das wenn man sich übers Forum logoutet man auf der index.php also ganz normal landet, aber wenn man sich über meine HP logoutet man auf der Startseite der HP landet. Homepage und Forum nutzen das selbe Loginsystem -- Wenn man in der HP eingeloggt ist, ist man im Forum eingeloggt und umgekehrt. Mit dem Loginscript kann man glaub ich im Formular nicht einfach eine andere Url angeben, da ja soweit ich das sehen konte gar kein Formular besteht (wozu auch). >>Hoffe das ist eine kleine Hilfe beim beantworten<<

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren
#2
Das kannst du nur durch Bearbeiten der Datei member.php erreichen. Suche nach folgendem:
PHP-Code:
else if($mybb->input['action'] == "logout"
In dieser If-Abfrage wird zwei mal der redirect auf die index.php durchgeführt.
Du müsstest beidesmal davor eine Abfrage erstellen, von wo aus der User sich ausloggt.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#3
Ich hab das Logout Script aber nicht kopiert gekriegt und hab das einfach mit einer Javascript weiterleitung gelöst (bei der dann noch die uid mit drangehängt wird). Wie kopier ich den das Logout Script; als ich das probiert habe und dann mich darüber gelogoutet habe kam weißes Bild;; ich konnte auch ohne Probleme wieder zurück in den Login Bereich!

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren
#4
Du brauchst das Script nicht zu kopieren. Du setzt einfach einen Link:
PHP-Code:
echo "<a href=\"http://www.deinurl.de/forum/member.php?action=logout&uid=".$mybb->user['uid']."\">Abmelden</a>"
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#5
Ok hab ich:::::
Wie mach ich das nun mit der Bedingung?

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren
#6
Ungefähr so (in der Datei member.php):
PHP-Code:
if (ereg("mitglieder.php"$_SERVER['PHP_SELF']) || ereg("mitglieder2.php"$_SERVER['PHP_SELF']))
{
    
redirect("mitglieder_logoutseite.php"$lang->redirect_alreadyloggedout);
}
else
{
    
redirect("index.php"$lang->redirect_alreadyloggedout);

und beim zweiten Mal das ganze mit:
PHP-Code:
redirect("index.php"$lang->redirect_loggedout); 

Das bedeuted, wenn die Seite von der das Script aufgerufen wird mitglieder.php oder mitglieder2.php heißt dann gehe zur Seite mitglieder_logoutseite.php (in deinem Forenhauptverzeichnis), sonst gehe zur Seite index.php.
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser
Zitieren
#7
Das klappt irgendwie nicht!
Muss ich den von der vorherigen Seite (logout.php) nicht noch etwas mitsenden?

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren
#8
Hallo Bimon,
Bitte versuche mal dies, anstelle von frankriegers code:

Suche:
PHP-Code:
redirect("index.php"$lang->redirect_loggedout); 
Ersetze mit:
PHP-Code:
        if($mybb->input['url'] && !preg_match("/^(member\.php)?([^\?action=logout]+)/i"$mybb->input['url']))
        {
            
$redirect_url htmlentities($mybb->input['url']);
        }
        elseif(
$_SERVER['HTTP_REFERER'])
        {
            
$redirect_url htmlentities($_SERVER['HTTP_REFERER']);
        }

        
redirect($redirect_url$lang->redirect_loggedout); 

Das ist ungetestet.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
Zitieren
#9
Ne geht immer noch nicht!
[Bild: Nirgendssicher.jpg]
Zitieren
#10
Ich kann auch nicht glauben das ein Link zum Logout Script in der member.php ausreicht!
Dann wird das doch immer von der member.php ausgeführt, oder nicht?
Wo ist da der Unterschied? prüft preg_match() die Seite die vorher geöffnet war oder wie?

Bimon
[Bild: Nirgendssicher.jpg]
Zitieren