externer Login - WCF 2.x / WBB 4.x

  • Hallo,

    wie kann ich am einfachsten einen externen Login über ein anderes PHP Script machen?
    Ich habe bereits eine funktionierende Registration und Userdatenüberprüfung, nur die Session fürs Forum muss noch gestartet werden.

    Hier die Scripts:
    Registration:

    Hier die Überpfüfung der Logindaten:

    • Offizieller Beitrag

    Hey,

    probier dein Login-Script mal so, dann solltest dein Nutzer eingeloggt sein:

  • Ich erhalte dann folgenden Fehler:

    Zitat

    Fatal error: Using $this when not in object context in /var/www/forum/login.php on line 6

    Die Zeile stimmt mit dem Post von dir überein.

    Grüße

    • Offizieller Beitrag
  • Nun erhalte ich noch:

    Zitat

    Fatal error: Class 'WCF' not found in /var/www/forum/login.php on line 24

    Habe versucht die Datei einzubinden:

    Code
    require_once('wcf/lib/system/WCF.class.php');

    Jedoch immer noch der selbe Fehler...

  • Funktioniert nun einwandfrei! Vielen Dank schonmal dafür!

    Nur werden bei falschen Userdaten nicht deine Fehlermeldungen angezeigt sondern welche die vom WCF Zurückgegeben werden, sollte es dafür noch eine einfache Möglichkeit geben wäre es grandios!
    z.B.:

    Zitat

    Parameter password is missing or invalid

  • Ja ich weiß, dass der Thread hier schon steinalt ist.
    Trotzdem scheint das "Problem" noch aktuell zu sein, weil ich eben mit dem oben genannten Quelltext selben Fehler erhielt.

    Hier die Lösung des Problems:


    Das ganze kann auch schön in eine Funktion eingebaut werden "checkLogin($username, $password)" oder ähnlich, dann sind natürlich die echos in 14, 19 und 26 durch returns zu ersetzen und die die() in 15 und 20 zu entfernen.

    Ich hoffe, dass jemand mit dieser kleinen Änderung weit weniger Arbeit hatte als ich in den letzten 3 Stunden um das Exception-Problem zu lösen (bis endlich ein Licht aufgeht) :D

  • Ja ich weiß, dass der Thread hier schon steinalt ist.
    Trotzdem scheint das "Problem" noch aktuell zu sein, weil ich eben mit dem oben genannten Quelltext selben Fehler erhielt.

    Hier die Lösung des Problems:

    Das ganze kann auch schön in eine Funktion eingebaut werden "checkLogin($username, $password)" oder ähnlich, dann sind natürlich die echos in 14, 19 und 26 durch returns zu ersetzen und die die() in 15 und 20 zu entfernen.

    Ich hoffe, dass jemand mit dieser kleinen Änderung weit weniger Arbeit hatte als ich in den letzten 3 Stunden um das Exception-Problem zu lösen (bis endlich ein Licht aufgeht) :D

    funktioniert leider nicht mehr

    DEBIAN 8 | Apache 2.4 | PHP 7.0 | MEMCACHED

  • Hi,
    ich weis der Post ist zwar schon etwas älter aber ich hoffe mir kann hier doch noch jemand weiterhelfen.
    Ich versuche gerade meine Homepage mit dem Forum zu verbinden. Sprich das Forumprofil auch auf der Webseite anzeigen zu lassen.
    Der Login klappt auch soweit schon nur habe ich das Problem mit der Session.
    Die Cookies werden, laut ACP, über die komplette Domain verteilt.

    Ich benutze diese Code um auf der Homepage den User nach einer Aktiven Session abzufragen:

    PHP
    require_once('forum/global.php');
    if (wcf\system\wcf\WCF::getUser()->userID != 0) {
    	$wbb_username = wcf\system\WCF::getUser()->username;
    }

    Jedoch bekomme ich beim aufrufen der Seite nun folgende Fehlermeldung:

    Code
    Fatal error: Class 'wcf\system\wcf\WCF' not found in C:\xampp\htdocs\sn-clan\assets\inc\topnav.php on line 6

    Das Forum liegt in einem Unterordner der Homepage also

    Homepage
    -->forum
    ------>wcf

    Hoffe es kann mir jemand weiterhelfen.

    Mfg.
    REDDE4D

  • wcf\system\WCF wie du es auch in Zeile 3 verwendest. ;)

    Danke! Hab ich total übersehen das da zwei mal WCF hintereinander stand ^^

    Leider hab ich jetzt ein neues Problem :/
    Er scheint die Sitzungen nicht zu erkennen. Hier mal das snippet was passieren soll:

    EDIT: Mir ist gerade noch aufgefallen, das sobald ich auf der Homepage eine Seite aufrufe, ich plötzlich im Forum abgemeldet bin.
    Ich gehe mal davon aus das es etwas mit den Cookies zutun hat.

    Einmal editiert, zuletzt von REDDE4D (6. September 2016 um 17:36)

  • //EDIT: Lösung gefunden.
    Nach langer sucherei hab ich nun endlich eine Lösung gefunden um die Cookies Global zu erstellen.
    Man installiert einfach eine Dummy Anwendung und gibt ihr irgend eine Subdomain z.b. dummy.example.com .
    Die CookieDomain bleibt die Hauptdomain sprich example.com.


    Hier ein link zu einer Dummy Anwendung:
    Endanwendung-Dummyapp

    Dennoch ein danke an alle die sich bemüht haben mir zu helfen.
    Eine frage hätte ich allerdings noch.
    Gibt es irgendeine Doku wo aufgelistet ist wie man an die User Infos ran kommt?

    Sprich sowas in der art:

    Code
    $userID = WCF::getUser()->userID;
    $username = WCF::getUser()->username;


    Mfg.
    REDDE4D

    Einmal editiert, zuletzt von REDDE4D (6. September 2016 um 22:32)

  • Hallo in die Runde,

    danke für die Codeschnipsel! Haben mir viel Arbeit erspart.

    Ich möchte von einer Django Anwendung einen Login ins Forum machen. Wenn ich, wie oben beschrieben, das Script mit den Getparametern username und password aufrufe, dann das Forum aufrufe, dann bin ich wie gewünscht am Forum angemeldet.

    Rufe ich die selbe URL von dem Django aus auf, gibt das Script wie gewünscht alles richtig zurück ABER angemeldet bin ich beim Forum leider nicht. Ich denke mal, hier kommen jetzt die Cookies und die Session ins Spiel. Es läuft alles auf der selben Domain.

    Kann mir jemand einen entscheidenen Tipp oder Hinweis geben, wo hier das Problem ist. ;)

    Nach langer sucherei hab ich nun endlich eine Lösung gefunden um die Cookies Global zu erstellen.
    Man installiert einfach eine Dummy Anwendung und gibt ihr irgend eine Subdomain z.b. dummy.example.com .
    Die CookieDomain bleibt die Hauptdomain sprich example.com.


    Das mit der Dummy Anwendung verstehe ich nicht ganz, vielleicht kann mir hier auch jemand einen Wink geben.

    Danke erstmal
    Andreas

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!