YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Hacks und Addons » Externer Login/Memberbereich » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 4.096 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Externer Login/Memberbereich
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

 Externer Login/Memberbereich Antworten Zitieren Editieren Melden       UP

Titel: Externer Login/Memberbereich
Version: 0.1
Beschreibung: Hallo,

ich habe mich jetzt mal hingesetzt und einen externen Login für das WBB 2.3.5 geschrieben.

Mit dem Hack könnt ihr einen externen Mitgliederbereich, sowie Login realisieren.
Ihr müsst nur
- den relativen Pfad zum Forum von der Webseite aus
- den relativen Pfad zur Webseite vom Forum aus
- die MySQL-Verbindungsdaten
- die Boardnr der DB-Tabellen angeben
angeben und schon kann es losgehen!

Besonderheiten
  • funktioniert mit und ohne Cookies (über SID)
  • allgemeine Prüfung ob Benutzer eingeloggt ist möglich
  • nur 2 Foren-Dateien müssen geändert werden


Achtung
Da die früheren Cookies eine Pfadangabe beinhalten sind sie für den Pfad der Page nicht gültig.
Daher gilt: Alle Cookies, die nachdem ihr im ACP die Cookie-Angaben so eingestellt habt, wie in der Install.txt steht, erstellt werden, können auch von dem Script gelesen und ausgewertet werden!
----


weiter zum Download


__________________
Mfg
Niemand Nr.1

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Niemand Nr.1: 16.09.06 21:28.

16.09.06 17:34 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
MastaG
Mitglied


Dabei seit: 05.02.04
Beiträge: 123

Antworten Zitieren Editieren Melden       UP

moin,

hab das Ding mal getestet hab mir das anders vorgestellt (ähnlich wie ne newsseite)

folgendes: Wenn man bereits eingeloggt ist kommt folgende fehlermeldung:

Ihnen wird der Zutritt zu dieser Seite verwehrt.
Aus einem der folgenden Gründe fehlt Ihnen die Berechtigung, diese Seite zu betreten:

* Sie sind im Forum nicht angemeldet. Einige Bereiche und Funktionen im Forum sind nur für angemeldete Benutzer zugänglich. Bitte nutzen Sie die Eingabemöglichkeit auf dieser Seite, um sich anzumelden. Falls Sie nicht registriert sind, können Sie dies hier tun.
* Ihr Benutzeraccount könnte gesperrt worden sein. Melden Sie sich gegebenenfalls ab und kontaktieren den zuständigen Administrator.
* Es gibt Bereiche im Forum, die bestimmten Benutzern vorbehalten sind. Sie haben möglicherweise versucht einen solchen Bereich zu betreten.

Angemeldet als: MastaG [abmelden]




---------------

Wenn man nicht eingeloggt ist kommt Vielen dank für ihre anmeldung und man steht wieder beim login... also irgendwas läuft da falsch smile

__________________
großes Grinsen ? Du liest wohl gerne Signaturen, oder ? großes Grinsen

16.09.06 18:50 MastaG ist offline E-Mail Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

ja,

das problem hatte ich auch, da die cookies bereits gesetzt sind und zwar mit pfadangabe.

deswegen muss man im ACP auch den Pfad für die Cookies neu setzen und die Cookies, die ab DIESEM Moment erstellt werden, beinhalten dann nicht mehr den Boardpfad, sondern sind allgemein gültig = das Script (anderer Pfad) kann diese mitbenutzen...


Edit: Und funktioniert bei euch alles?

__________________
Mfg
Niemand Nr.1

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Niemand Nr.1: 18.09.06 13:02.

16.09.06 21:25 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
bodehold
Mitglied


images/avatars/avatar-4593.jpg

Dabei seit: 17.03.04
Beiträge: 6

Antworten Zitieren Editieren Melden       UP

Hi.

Erstmal muss ich sagen, dass ich den Hack super finde. Musste auch lange danach suchen großes Grinsen

Er funktioniert auch spitze, aber an 2 Stellen komme ich nich weiter.


Ich will die main.php includen, dann bringt er aber einen komischen Fehler:
code:
1:
2:
3:
4:
5:
6:
7:
Warning: Cannot modify header information - headers already sent by
(output started at /var/www/webxx/html/ae/index.php:10) 
in /var/www/webxx/html/ae/lib/functions.php on line 36
Du bist eingeloggt als Accountname

Logout? 


Ich kann mich aber trotzdem ganz normal ein- und ausloggen. Dabei kommt dann aber der zweite Fehler. Und zwar lande ich dann immer direkt auf der main.php. Ich würde aber gerne auf die ursprüngliche Seite zurückkommen?

Kannst du mir dabei helfen?

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von bodehold: 04.10.06 11:24.

04.10.06 11:23 bodehold ist offline E-Mail Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Hi,

zu 1.) wo möchtest du die main.php includen? und wo wird die überprüfung includiert?
probiers mal mit den original Dateien. kommt der fehler dann immernoch?


zu 2.) du musst ganz oben in deinen dateien einen FILENAME definieren: define(FILENAME, 'main.php'); dieser muss immer den namen deiner datei haben.
Wenn deine Datei nun members.php heißt, muss der define also folgendermaßen lauten: define(FILENAME, 'members.php');

__________________
Mfg
Niemand Nr.1
04.10.06 22:12 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
bodehold
Mitglied


images/avatars/avatar-4593.jpg

Dabei seit: 17.03.04
Beiträge: 6

Antworten Zitieren Editieren Melden       UP

Also ich habe folgende Struktur:

Ordner:
forum
lib (da die dateien des hacks)

Dateien:
index.php
main.php

Die main.php wird ganz normal in die index.php includiert. Allerdings kommt der Fehler auch nur dann, wenn ich die include. Gehe ich ganz normal auf die main.php, dann kommt die Fehlermeldung nich.


zu 2.)
Also bestimmt die Datei die ich da eintrage, wohin ich dann weitergeleitet werde?

Vielen Dank für die schnelle Hilfe...
04.10.06 23:28 bodehold ist offline E-Mail Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Schau mal, ob in der index.php irgendetwas ausgegeben wird!
Wenn nicht, schaue am anfang der index.php, ob dort ein Leerzeichen vor dem <? steht. Das gleiche gilt für das Ende mit ?>: Steht dahinter noch ein leerzeichen oder eine Leerzeile?
Es darf kein HTML-Code oder sonstiges vorher ausgeführt werden.

auch ein
<?php
...
?> ich bin <?php
...
?>

darf nicht sein, denn dann würde das " ich bin " als HTML-Ausgabe ausgegeben werden!

Wohin du nach deinem Login/Logout weitergeleitet wirst, bestimmt der Parameter "pageurl", welcher zusätzlich nochmal base64 encoded ist.

php:
1:
<input type="hidden" name="pageurl" value="' . base64_encode(PAGEURL . '/' . FILENAME) .'" />

gib innerhalb von base64_encode() ne andere URL an und schon wirst du dorthin weitergeleitet!

__________________
Mfg
Niemand Nr.1
05.10.06 20:25 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
zugo zugo ist männlich
Mitglied


Dabei seit: 01.11.06
Beiträge: 31
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Hallo, ich habe folgendes Problem.

Ich möchte gerne, dass nur wirklich registrierte User weitergeleitet werden.

(User, die sich zwar angemeldet, aber zwecks Registrierung noch keine Bestätigung per Aktivierungslink durchgeführt haben, soll die Weiterleitung verwehrt werden,
obwohl diese sich ja bekanntlich bereits - zwecks Vorab-Profil-Einstellungen - im Forum einloggen können.)


Kann mir hierzu jemand helfen ?

Wie erreiche ich das ?

(Meine wbb-Version ist: wbb2.3.6)

__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von zugo: 11.11.06 12:40.

11.11.06 12:38 zugo ist offline E-Mail WWW Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Hi,

das geht ganz einfach:

Nehmen wir an, der User registriert sich, loggt sich ein und wird auf deine Startseite weitergeleitet.

Nun soll er anstatt deren Inhalt einen Hinweis sehen, dass er erst freigeschaltet werden muss.

===============

1. Gehe ins ACP des Forums und lass dir die Benutzergruppen anzeigen.

2. Ganz links steht die ID der Benutzergruppe. Die IDs der Benutzergruppen Gäste, Standardgruppe für nicht aktivierte User und Standardgruppe für gesperrte User brauchst du. Bei mir ist das: 5,6,7

3. Füge nun in deine Startseite (bei mir: main.php) eine Überprüfung auf die Benutzergruppe ein. Dazu gibt es ja die Variable $wbbuserdata mit den Benutzergruppen im Array:
php:
1:
2:
3:
4:
if( in_array(5$wbbuserdata['groupids']) || in_array(6$wbbuserdata['groupids']) || in_array(7$wbbuserdata['groupids']) ) {
  echo 'Sorry, du musst erst freigeschalten werden oder aber dein Account wurde gesperrt oder: Du bist noch gar nicht registriert!';
  exit;
}


Das sollte dann aber nicht nur in der Startseite enthalten sein, sondern in allen Seiten, welche davon betroffen sind.

Hoffe, ich konnte dir weiterhelfen.

__________________
Mfg
Niemand Nr.1
11.11.06 13:01 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
zugo zugo ist männlich
Mitglied


Dabei seit: 01.11.06
Beiträge: 31
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Hallo Niemand Nr.1,

erst mal vielen Dank für die schnelle Antwort,

ich habe es mal mit der Beispielsdatei main.php aus dem Download versucht.

Gebe ich dort aber
code:
1:
2:
 if( in_array(5, $wbbuserdata['groupids']) || in_array(6, $wbbuserdata['groupids']) || in_array(7, $wbbuserdata['groupids']) ) {   echo 'Sorry, du musst erst freigeschalten werden oder aber dein Account wurde gesperrt oder: Du bist noch gar nicht registriert!';   exit; }
 


z.B. in derfolgenden Position ein:

code:
1:
:://Pruefe, ob der Benutzer eingeloggt ist//check.php ist abgewandelte session.phprequire_once('./lib/check.php');if( in_array(5, ($wbbuserdata['groupids'])) || ...............................//Ist benutzer eingeloggt::

bekomme ich bei Aufruf von

main.php über mein browser folgende Meldungen

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /mnt/cr1/08/546/00000013/htdocs/page/main.php on line 33

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /mnt/cr1/08/546/00000013/htdocs/page/main.php on line 33

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /mnt/cr1/08/546/00000013/htdocs/page/main.php on line 33


Was mache ich falsch?

__________________

12.11.06 14:03 zugo ist offline E-Mail WWW Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Dann ist die Variable $wbbuserdata nicht belegt.

Mach folgendes:

Das aus meinem vorherigen Beitrag änderst du um:
php:
1:
2:
3:
4:
if( in_array(5$wbbuserdata['groupids']) || in_array(6$wbbuserdata['groupids']) || in_array(7$wbbuserdata['groupids']) ) {
  echo 'Sorry, du musst erst freigeschalten werden oder aber dein Account wurde gesperrt oder: Du bist noch gar nicht registriert!';
  exit;
}


Und zwar in das:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
//Variable loeschen
unset($isError);

//Pruefen, ob uberhaupt Benutzergruppen angegeben sind. Wenn nicht --> nicht eingeloggt
if( is_array($wbbuserdata['groupids']) ) {
  //Pruefe, ob Benutzer Mitglied in einer dieser Gruppen
  //Wenn ja, dann setze Variable auf TRUE
  if( in_array(5$wbbuserdata['groupids']) || in_array(6$wbbuserdata['groupids']) || in_array(7$wbbuserdata['groupids']) ) {
    $isError true;
  }
}
//Keine Benutzergruppen = nicht eingeloggt
else {
  $isError true;
}

//Benutzer ist nicht eingeloggt / Mitglied einer der Benutzergruppen (5,6,7)
if( $isError ) {
  echo 'Sorry, du musst erst freigeschalten werden oder aber dein Account wurde gesperrt oder: Du bist noch gar nicht registriert!';
  exit;
}


__________________
Mfg
Niemand Nr.1
12.11.06 16:14 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
Kesandal
Mitglied


Dabei seit: 13.04.04
Beiträge: 7
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Hallo zusammen,
ansich funktioniert das Login bei mir Problemlos...
Nun wollte ich aber folgendes machen (vereinfacht):


php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
include("./include/login.php");

if($wbbuserdata['userid']) {
    
  //JA
  echo '<div id="login">Willkommen <span style="font-weight:bold; color: white;">'.$wbbuserdata['username'].'</span>';
  
  // Was angezeigt werden soll wenn User zusätzich noch Admin oder Mod ist....
  
  if($wbbuserdata['a_can_use_acp']==&& $wbbuserdata['a_acp_or_mcp']==1)
  {
      echo "Sie sind Administrator!";
  }
  else
  {
      echo "Sie sind normales Mitglied! ";
  }
  echo '</div>';
}
}



Ich wollte es noch so machen, dass wenn der User Mod / Admin ist etwas zusätzlich angezeigt werden soll..
Habe es hier vereinfacht mit nur einem "echo"...

Jedoch wird bei mir obwohl ich Admin bin "sie sind normales mitglied" Angezeigt...

Das müsste doch eigentich klappen oder ?


Gruß,

Kesa
11.02.07 16:11 Kesandal ist offline E-Mail Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Hallo Kesandal,

mach mal bitte in dein Script folgendes rein:

php:
1:
2:
3:
echo '<pre>';
  print_r($wbbuserdata);
  exit;


Dann siehst du alle Werte, die $wbbuserdata enthält.
Hier sind keine Gruppenrechte enthalten.

Wie die Funktion für das Auslesen der Gruppenrechte heißt, weiß ich grad nicht und kann ich im Moment leider auch nicht nachschauen, da ich auf'm Sprung bin.

Aber du kannst ja selbst mal suchen und ich werd mich später auch nochmal schlau machen.

Auf das der Schnellere es hier Antworte... und LOS! Irre

__________________
Mfg
Niemand Nr.1
11.02.07 17:55 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
Kesandal
Mitglied


Dabei seit: 13.04.04
Beiträge: 7
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

angezeigt hat er mir jetzt ne menge, aber ich sehe da nichts relevantes drinnen unglücklich


Ich kam ja auf die Zeile

if($wbbuserdata['a_can_use_acp']==1 && $wbbuserdata['a_acp_or_mcp']==1)

weil ich sie beim ACP-Button gesehen hab großes Grinsen


Noch jmd. ne Idee ? smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Kesandal: 13.02.07 18:36.

13.02.07 18:36 Kesandal ist offline E-Mail Finden Als Freund hinzufügen
Niemand Nr.1
Mitglied


Dabei seit: 18.01.04
Beiträge: 13

Themenstarter Thema begonnen von Niemand Nr.1
Antworten Zitieren Editieren Melden       UP

Hi,

hab deine Mail erhalten und mich eben nochmal hingesetzt.

Hier die Lösung:
Ich hab in der MySQL-Abfrage das Feld gc.data versehentlich rausgenommen und daher wurden die Rechte nicht mehr mitgeliefert und in das Array $wbbuserdata eingespeichert.

Hier nun die neue function getwbbuserdata:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
function getwbbuserdata($id$bywhat 'userid'$issession 0) {
    global $db$n;
    $wbbuserdata = array();
    $variables = array();
    $groupids = array();
    
    if ($issession == 0$wbbuserdata $db->query_first("SELECT uf.*,u.*,gc.groupids,gc.data FROM bb".$n."_users u LEFT JOIN bb".$n."_groupcombinations gc USING(groupcombinationid) LEFT JOIN bb".$n."_userfields uf ON (uf.userid=u.userid) WHERE u.userid='$id'");
    else {
            $wbbuserdata $db->query_first("SELECT u.*,gc.groupids, gc.data FROM bb".$n."_users u ".
            "LEFT JOIN bb".$n."_groupcombinations gc USING(groupcombinationid) ".
            "WHERE u.userid='$id'");
    }
    $groupids explode(','$wbbuserdata['groupids']);

    $variables unserialize($wbbuserdata['data']);
    unset($wbbuserdata['data']);
    if (is_array($variables) && count($variables)) {
        while (list($key$val) = each($variables)) {
            $wbbuserdata[$key] = $val;
        }
    }
    $wbbuserdata['groupids'] = $groupids;
    return $wbbuserdata;
}


Sucht in dieser mal das Wort gc.data.
Es kommt 2x vor.
Wenn ihr das zur Abfrage hinzufügt, erhaltet ihr auch die Rechte Augenzwinkern

__________________
Mfg
Niemand Nr.1

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Niemand Nr.1: 16.02.07 08:40.

16.02.07 08:40 Niemand Nr.1 ist offline E-Mail Finden Als Freund hinzufügen
Kesandal
Mitglied


Dabei seit: 13.04.04
Beiträge: 7
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Hallo,
ich glaube das Script hat irgendwie Probleme mit dem 2.3.6pl1...
Der logt mich nicht immer aus unglücklich (
25.02.07 12:46 Kesandal ist offline E-Mail Finden Als Freund hinzufügen
Hallo1
Mitglied


Dabei seit: 26.04.07
Beiträge: 8

Antworten Zitieren Editieren Melden       UP

Hallo,

leider werde cih aus der Anleitung ganz und gar nicht schlau. Was kommt in's Forum und vorallem wo, was auf den Space meiner Seite - und was muss ich überhaupt anpassen oO"?
31.05.07 16:52 Hallo1 ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Hacks und Addons » Externer Login/Memberbereich