Beiträge von Kaliber

    Ich verstehe das Prinzip noch nicht so ganz :D


    Kann er sich dann frei bewegen und ist wie ein normaler Spieler, nur dass er sich nicht ausloggen darf?


    Was ist, wenn er dann noch weiter cheatet? Ich meine diese Gefahr ist ja groß, da ja schließlich schon detected wurde, dass er diese Mods besitzt. Und ich weiß nicht ob 10std Admins dann online sind und das wäre ja quasi die Einladung für den Spieler xD

    Doofe Frage, aber wieso nutzt du R31, wenn es inzwischen schon R41-4 gibt? :D


    Ich kenne nicht alle Funktionen von dem Include, aber eventuell gibt es ja sowas wie cache_num_rows() :)


    Wenn es das nicht gibt und du weiterhin das Include nutzen magst, bitte poste es doch mit pastebin oder als Anhang :D

    Ahh, okay :)


    Also man kann Tabellennamen nicht escapen mit pdo auf diese Art und Weise.


    Mach am Besten eine Whitelist für die Tabellennamen:


    $pdo = new PDO('mysql:host=localhost;dbname=ibis', 'ibis', 'pw');

    Schreib das mal so:


    PHP
    try
    {
        $pdo = new PDO('mysql:host=localhost;dbname=ibis', 'ibis', 'pw', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
        exit;
    }

    Da machst du ja auch Quatsch, dass ist so gar nicht das, was ich geschrieben hatte ^^



    //Edit: Du musst den Spaltennamen angeben in row und keine Zahl, beim normalen fetch in pdo.

    Du brauchst nicht MySQLi und PDO nutzen.


    Prepared heißt nur, dass die einzelnen Variablen escaped werden, selbiges machst du mit mysqli escape string.


    Theoretisch kannst du den Code von oben verwenden, dort ist schon alles escaped und SQL-Injections in dem Sinne sind nicht möglich.

    Ich habe das nun auch nochmal mit den Ziffern probiert allerdings findet er da kein Resultat obwohl die Tabelle vorhanden ist

    Um dir da zu helfen, bräuchten wir die Info, was du genau eingibst und wie genau deine Tabelle aussieht (evtl Screen) :)



    Wie ist es dann sinnvoll wenn man mehrere von Hundert verschiedenen Daten aus einer Datenbank Abfragen möchte wo die Tabellennamen immer anders sind ?

    Er wollte nur darauf aufmerksam machen, dass jeder dann an deine Datenbank Querys senden könnte und dadurch Sicherheitsmängel entstehen.
    Aber ich denke mal, du nutzt das nur privat und nicht produktiv oder?

    Also da wo diese Zahl ist (1601), da gehört eigentlich der Tabellenname rein.


    Hatte weiter oben schon ein Beispiel dafür:


    C
    $table = mysqli_real_escape_string($con, $_GET['table']);
    $query = "SELECT * FROM $table WHERE `id` IN ($p0,$p1,$p2,$p3,$p4,$p5)";

    Dann kannste die URL so machen: http://deineDomain.de?p0=2&p1=3&p2=4&p3=5&p4=6&p5=7&table=1601


    oder alles andere :)

    Ja, das sollte so gemacht werden :D


    Was wird denn ausgegeben?


    Also wenn du nur die mittlere Spalte möchtest, würde ein einfaches echo $row[1].","; reichen, aber da du mehr Spalten ausgibst, sollte die Mittlere trotzdem immer vorhanden sein :)

    Ahja, dann kannst du es so machen:


    PHP
    $p0 = intval($_GET["p0"]);
    $p1 = intval($_GET["p1"]);
    $p2 = intval($_GET["p2"]);
    $p3 = intval($_GET["p3"]);
    $p4 = intval($_GET["p4"]);
    $p5 = intval($_GET["p5"]);
    $query = "SELECT * FROM users WHERE `id` IN ($p0,$p1,$p2,$p3,$p4,$p5)";

    Und aufrufen dann: http://deineDomain.de?p0=1&p1=2&p2=3&p3=4&p4=5&p5=6


    Dann würde er die IDs von 1-6 abfragen.


    Gibt hier viele Lösungsmöglichkeiten, kannst auch nur einen Parameter mit Trennzeichen übergeben und dann aufsplitten.


    Hoffe habe dich richtig verstanden gehabt ^^

    Achso, das geht entweder so:


    $query = "SELECT * FROM users WHERE id < 7";


    oder du nimmst einfach die ersten 6 Einträge (unabhängig von der id)


    $query = "SELECT * FROM users LIMIT 6";

    Versuch dich nochmal präziser, am Besten mit Code (kann auch pseudo Code sein) und Beispielen auszudrücken, ich verstehe nämlich gerade nicht, was du vor hast ^^

    Zum Beispiel so:



    PHP
    $table = mysqli_real_escape_string($con, $_GET['table']);
    $query = "SELECT * FROM $table";

    Und dann so nutzen:


    http://deineURL.de?table=blabla


    oder irgendwas anderes eben :)