Beiträge von Kaliber

    Hey Leute,


    vllt haben ja einige hier Langeweile und spielen bzw kennen LoL.


    Habe jetzt einen Kumpel, der hat angefangen zu streamen und ich spiel auch ab und an mit dem:

    Externer Inhalt www.twitch.tv
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    Wer Interesse hat, den ein wenig zu pushen und bissl zuzuschauen mag, wie wir flamen, gerne einfach mal vorbeischauen! :)


    Bitte respektvoll sein und nicht sagen, dass ich ein wenig für den hier geworben habe, wollte den ein wenig supporten ^^


    Das wars auch schon, danke für jeden Support! :*

    Erstelle das Menü nicht in der Schleife, bei /auftrage...dort wird das ja öfter aufgerufen.


    Das IsUniqueMenue brauchst du auch nicht.


    Füge einfach den Punkt vom Menü unter AddAuftrag hinzu.

    da ich mir unsicher bin ob solche Systeme so überhaupt funktionieren können.

    Oh ja, das tuen sie, sei unbesorgt :)



    Ich logge bereits alles, schaut es euch bitte an:

    Das ist nicht einmal im Ansatz "alles" xD


    1. Lade crashdetect und schau in den server_log, falls der Server nochmal crasht.
    2. Wie rufst du AddAuftrag auf?
    3. Nutze nicht strmid, um Strings zu beschreiben, nutze dafür format:
    C
        format(Auftrag[i][a_autor],MAX_PLAYER_NAME+1,autor);
        format(Auftrag[i][a_description],30,titel);
        format(Auftrag[i][a_auftragtext],256,auftragtext);

    Ausgenommen SQL Injection, WBB 5.2 ist gehe ich mal stark davon aus, gegen SQLI geschützt

    Es gibt so krasse SQL-Injections oder generell Cross-Site-Scripting, davor ist nicht mal google geschützt.


    Gibt da immer wieder mal 0-Day Exploits, die publiziert und verbreitet werden von Forschern :)



    Nur mal aus reiner Neugier gefragt, verwendet ihr Captchas zum Registrieren?

    Aber der User der die Seite anzeigt, hat ja nicht die gleiche rechte wie ein normaler.

    Das funktioniert anders.


    Du startest ja deinen Webserver, und die rechte, die dieser Webserver hat, diese Rechte hat das PHP Skript.


    Das ist unabhängig vom User, der da iwas auf der Seite macht, es geht einzig und alleine um den Prozess, wie z.B. apache gestartet wurde. (also z.B. von welchem User dieser Prozess gestartet wurde. Wurde apache von einem root user gestartet, hat auch das PHP Skript root rechte)


    Wenn nicht genügend rechte vorhanden sind, um ein .sh Skript auszuführen, kannst du natürlich diese Rechte anpassen.

    Entweder über einen zusätzlichen command oder über eine separate ssh connection.

    Also um sowas zu realisieren, je nachdem ob das Skript einen Wert zurückgibt oder nicht, kannst du das so machen:


    PHP
    $command = escapeshellcmd('bash test.sh');
    $output = shell_exec($command);
    echo $output;


    Kann man eventuell den Benutzer so einschränken, dass der nur eine Datei ausführen darf ?

    Kannst ja angeben, welche Datei nur ausgeführt werden darf und ob der User die Rechte dafür hat.


    Kannst du ja alles über PHP absichern, da das ja eh server site ist.

    for(new i=1;i<MAX_SLOTS;i++)

    Wieso startest du manchmal deine Schleife bei 1?


    FindClosestVeh(playerid)

    Das findet dir nicht das nähste Vehicle, sondern, dass das den niedrigeren Index hat, wenn beide nur 3 SA-Einheiten von dir entfernt sind.



    Also die Idee ist ja gut und schön. Schöner hätte ich es gefunden, wenn du die Funktionalität von deinem System etwas mehr ausgelagert hättest, so dass man es direkt als Include nutzen könnte.


    So ist das jetzt natürlich schwer, weil du alles zusammengewurschtelt hast, das macht den Code nicht nur unübersichtlicher, sondern auch natürlich jetzt schwerer Fehler zu finden.

    was ist ressourcen schonender? ein array oder einfach doppelte Zeilen (in dem Fall 2x50)

    ...das spielt hier keine Rolle.

    Der Übersicht wegen, solltest du ein Array und eine Schleife verwenden.


    Das mit der vehicle-Info kannst du verkürzen und zwar so:


    Sollte oder kann ich überhaupt beides nutzen, je nach Bedarf anders an verschiedenen Stellen? oder ist das dann doppelt definiert mit dem enum.

    Im enum schreibst du nur pVehicleID[MAX_VEHICLE_SLOTS], alles Andere für die Vehicles haus du raus.


    Um es zu speichern:


    pInfo[playerid][pVehicleID][0], pInfo[playerid][pVehicleID][1], pInfo[playerid][pVehicleID][2], pInfo[playerid][pVehicleID][3], pInfo[playerid][pVehicleID][4]


    So kannst du jeweils auf die 5 Indizes zugreifen :)


    Und in deinem ocmd test Command hast du:


    pInfo[playerid][pVehicleID[1]], wenn dann müsste es: pInfo[playerid][pVehicleID][0] sein. (Das fängt bei 0 an, nicht bei 1.)

    Zumal war halt der Array Index an der falschen Stelle.


    Aber du müsstest halt noch prüfen, ob das Fahrzeug nicht 0 ist, ergo:


    GetVehicleName, kannste z.B. hier her bekommen: https://forum.sa-mp.com/showthread.php?t=566775


    Oder du hast natürlich schon so eine Funktion.



    Falls er btw ein neues Auto kaufen mag, musst du einen leeren index finden: