WBB4-Connect über PHP

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    da jetzt doch schon desöfteren nachgefragt wird, wie man den SA:MP Server mit der aktuellen Woltlab Burning Board Version verbindet, hier mal eine Möglichkeit wie man es machen kann.
    Es gibt durchaus, bessere und andere Methoden, welche aber mehr Aufwand bedeuten. Diese hier ist relativ einfach und liefert das gewünschte Ergebnis. Tutorial richtet sich eher an erfahrene Benutzer.


    Ihr braucht dafür:

    • einen SA:MP Server
    • ein installierte Version der aktuellen Woltlab Forensoftware
    • etwas Geduld

    Also erstes möchte ich Euch kurz erläutern, wie wir dabei vorgehen. Wir senden ein HTTP-Request vom SA:MP Server an unsere PHP-API, welche uns die Daten aus der Forensoftware bereitstellt.
    Es sind nur Grundfunktionen enthalten, die aber schnell erweitert werden können.


    Installation
    Als erstes müsst Ihr das Plugin "SyncHTTP" in Eurem Skript laden.
    Dazu oben folgende Code einfügen

    Code
    #include <SyncHTTP>


    Danach fügt Ihr folgenden Code unten bei Euch ins Skript ein:

    Als nächstes noch ein #define für unsere API-Irl

    Code
    #define WBB_CONNECT_URL "domain.de/index.php?key=test123"

    Wer die Funktion "GetName" nicht hat, unten ebenfalls einfügen.

    Code
    GetName(id) {
    	new name[MAX_PLAYER_NAME];
    	GetPlayerName(id, name, sizeof(name));
    	return name;
    }


    Nun haben wir soweit für das Skript alles eingefügt. Als nächstes müssen wir das PHP-Skript installieren.
    Dazu legt Ihr einen Sub-Domain auf einen gewünschten Ordner an. In diesem ladet Ihr alles aus dem Ordner "php" hoch.
    Wichtig ist, dass Ihr in dem PHP Skript in der Datei "/php/config.php" Euren eigenen Sicherheitsschlüssel eintragt. Ebenfalls dann im Skript ändern.


    Folgender PHP Inhalt


    index.php


    /php/config.php

    PHP
    <?php
    
    
    //SECURITY SETTINGS
    
    
    define("key", "test123");

    /php/api.class.php


    /php/PasswordUtil.class.php


    Als Anhang nochmal der gesamte Ordner. Bei Fragen einfach hier fragen. Bin kein Mensch der langen Worte und Tutorials sind auch nicht mein Fachgebiet.


    Wichtig für Rückgabewerte
    Ihr erhaltet meistens entweder ein "1" oder "0" als Rückgabewert zurück. Diese Rückgabewerte könnte Ihr in der "api.class.php" natürlich Euren Wünschen anpassen. Achtet darauf, dass Ihr dann ebenfalls diese im Pawn-Skript anpassen müsst!

  • WBB hat eine eigene art von "API", da braucht man keine SQL Anfragen selber an die DB senden/aufrufen. Diese weiße ist einfach nicht zu empfehlen.

    Habe diesbezüglich nichts bei Google gefunden. Wäre gut, wenn Du mich da mal aufklärst.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Ich lese da nichts von einer API. Wenn Du das Einbinden spezieller Klassen meinst, ist das eher das Gegenteil einer API.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Das ist das, was ich in einem anderen Thread geschrieben habe. Eine "bessere" Lösung wäre die Einbindung des WCF, aber sicherer ist diese nicht. Sie ist definitiv komfortabler als meine jetzige. Aber hier ging es auch nur um den Gedankengang wie man soetwas lösen könnte. Auf diese Frage bin ich auch in meinem Post ja eingegangen. Die Sicherheit steht und fällt mit der Absicherung der Server und Verbindung.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Hey Jony weißt du warum ich ne Error Meldung bekomme? wenn ich die Seite aufrufe
    klick


    //EDIT:


    Wie verbinde ich das richtig?


    Kriege InGame die Meldung wenn ich eine Gruppe entferne:

    Code
    Request sent to: "http://localhost.de/forum/index.php?key=test123&&request=wbb_removeUserFromGroup&username=AlexHach&groupID="
    Status: 400
    Post: ""
    Time spent to perform request: 0.379000 sec
    Response: "<h1>Bad Request (Invalid URL)</h1>"

    Wo krieg ich den key her?

    Einmal editiert, zuletzt von Paco_Vegas ()

    • Offizieller Beitrag

    Den musst du in der Datei /php/config.php festlegen


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Den musst du in der Datei /php/config.php festlegen

    Code
    #define WBB_CONNECT_URL "localhost.de/forum/index.php?abcde=12345a6"


    Im Script


    In config.php

    PHP
    <?php //SECURITY SETTINGS define("abcde", "12345a6");

    Hab den Ordner in xampp htdocs


    einmal WBB-Connect
    und mein forum unter forum
    muss ich die ordner in einen tun oder warum funkt das immer noch nicht
    bzw. muss ja iwo meine mysql daten eingeben ? habe das so ob das richtig is:
    index.php

    Code
    $db = new mysqli('localhost', 'root', '', 'alexrpg');

    Die Datenbank vom SAMP Script. oder von WBB? beide gehen glaube net


    //EDIT:


    Und da steht ja Sub Domain in beschreibung



    Wie mach ich den eine Sub Domain übern PC die dadrauf leitet habe ja WBB-Connect ein ordner also localhost/WBB-Connect
    und localhost/forum getrennt ..
    Will das umbedingt zum laufen kriegen :D

    Einmal editiert, zuletzt von Paco_Vegas ()

  • Die vom WBB natürlich
    Subdomains ist nur etwas wenn du es über einen Server laufen lässt, der im Internet ist.

    Habe irgendwas falsch es will einfach nicht Funktionieren könntest du eben über TeamViewer rüber schauen =?


    //edit:
    Benötige hilfe wenn jemand helfen kann bitte melden!


    Kann mir jemand Helfen über TeamViewer oder so? Bei mir funktioniert das einfach nicht entweder bin ich zu blöd oder das geht echt nicht^^

    2 Mal editiert, zuletzt von Paco_Vegas ()

  • Du hattest ein Fehler in deiner pwn ich habs gefixt und direkt eine include daraus gemacht


    • forward WBB_AddUserToGroup(playerid, groupID)
    • format(postData, sizeof postData, "&request=wbb_setUserToGroup&username=%s&groupID=%s", GetName(playerid), groupID);


    groupID wird als integer übergeben , aber es wird versucht in format diesen Parameter für String Platzhalter einzubinden.
    Was leider nicht funktioniert ^^