Aber ich brauche im Grunde nur ein true oder false.
Ich verstehe nicht ganz wofür...
Entweder du kommst in den Callback, den du über mysql_tquery angibst oder du landest in der Error Funktion.
Das impliziert doch schon dein true oder false ![]()
Aber ich brauche im Grunde nur ein true oder false.
Ich verstehe nicht ganz wofür...
Entweder du kommst in den Callback, den du über mysql_tquery angibst oder du landest in der Error Funktion.
Das impliziert doch schon dein true oder false ![]()
Dafür gibt es diesen schicken Callback: http://wiki.sa-mp.com/wiki/MySQL/R33#OnQueryError
+ MySQL Log ![]()
Von 350 bis 500.
Da ist doch klar, dass die Zahl auch größer 350 sein kann, nämlich bis 500.
Hier stehen genug Lösungen...
Nur um sie ein wenig zu ergänzen:
350+random(150);
Das gibt einen Wert zwischen 350-499 richtig wäre 350+random(151);
Da random(n) immer von 0-(n-1) geht ![]()
Und hier noch eine kleine Ergänzung:
Und die randomEx Funktion macht sich bissl besser als Makro:
//randomEx(min, max)
#define randomEx(%0,%1) (random((%1)-(%0)+1)+(%0))
Entweder Localhost (bzw port freigabe + externe ip), oder die bieten kostenlose Test-Server: https://ultra-h.com/
wozu ist das gvar plugin ?=
Das ist sowas wie PVar, nur halt nicht für Spieler spezifisch, sondern mit einer allgemeinen ID.
Also kann man auch für Fahrzeuge o.ä. verwenden ![]()
Hey, ich finde den Fehler nicht
Offensichtlich, verwendet das Skript eine andere MySQL Version, als das Plugin xD
Schau mal in das Include, welche MySQL Version dort verwendet wird ![]()
Ich verstehe das Prinzip noch nicht so ganz ![]()
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
Ah, dann noch besser, dann lade crashdetect und poste den Log ![]()
Irgendwie kriege ich hier ein Crash wenn ich ein Neues Projekt erstelle
...was crasht, du oder der server?
und wenn du crasht, zeig mal crashcode..hast du mods installiert läuft samp sonst einwandfrei?
Du kannst die Funktion mysql_num_rows verwenden ![]()
Doofe Frage, aber wieso nutzt du R31, wenn es inzwischen schon R41-4 gibt? ![]()
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 ![]()
Ahh, okay ![]()
Also man kann Tabellennamen nicht escapen mit pdo auf diese Art und Weise.
Mach am Besten eine Whitelist für die Tabellennamen:
<?php
try
{
$pdo = new PDO('mysql:host=localhost;dbname=ibis', 'ibis', 'cD33', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
}
catch(PDOException $e)
{
echo $e->getMessage();
exit;
}
function isTableOk($table)
{
switch($table)
{
case "users": case "auchok": return true;
}
return false;
}
if(!isTableOk($_GET["table"])) die("Ungültiger Tabellenname!");
$p0 = intval($_GET["p0"]);
$p1 = intval($_GET["p1"]);
$p2 = intval($_GET["p2"]);
$p3 = intval($_GET["p3"]);
$p4 = intval($_GET["p4"]);
$p5 = intval($_GET["p5"]);
$statement = $pdo->prepare("SELECT * FROM `".$_GET["table"]."` WHERE `id` IN (?,?,?,?,?,?)");
$statement->execute(array($p0,$p1,$p2,$p3,$p4,$p5));
while($row = $statement->fetch()) {
echo $row["username"]. "," ;
}
?>
Alles anzeigen
Kannst du n screen von deiner MySQL Tabelle machen? ![]()
$pdo = new PDO('mysql:host=localhost;dbname=ibis', 'ibis', 'pw');
Schreib das mal so:
Wie sieht denn der Code aus? ![]()
Hast den Spaltennamen richtig angegeben?
Da machst du ja auch Quatsch, dass ist so gar nicht das, was ich geschrieben hatte ![]()
<?php
$pdo = new PDO('mysql:host=localhost;dbname=ibis', 'ibis', 'X8roh7^7');
$p0 = intval($_GET["p0"]);
$p1 = intval($_GET["p1"]);
$p2 = intval($_GET["p2"]);
$p3 = intval($_GET["p3"]);
$p4 = intval($_GET["p4"]);
$p5 = intval($_GET["p5"]);
$statement = $pdo->prepare("SELECT * FROM `?` WHERE `id` IN (?,?,?,?,?,?)");
$statement->execute(array($_GET["table"],$p0,$p1,$p2,$p3,$p4,$p5));
while($row = $statement->fetch()) {
echo $row["spaltenname"]. "," ;
}
?>
Alles anzeigen
//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:
$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 ![]()
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 ![]()