@Jonathan: Was Du hast die 4005 erspielt?
Ich habs "gehackt". War ja nicht schwer. Fiddler drauf, Webrequest per GET ist halt schon ziemlich leicht zu analysieren. Und die Scores sind halt nicht per Checksum abgesichert. Das sollte bei sonem System der Mindeststandard sein. An deiner Stelle würde ich nicht auf ein anderes Fremdsystem wechseln, sondern es schnell selbst implementieren, bzw. das ist so'ne Sache, die man gut mit ChatGPT machen kann.
Hab das mal grad für dich per ChatGPT gemacht:
SQL
Code: Alles auswählen
CREATE TABLE highscores (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
score INT(11) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
PHP Funktionen
add_highscore($name, $score, $checksum) und
get_highscores()
Code: Alles auswählen
<?php
function add_highscore($name, $score, $checksum) {
global $conn;
// Überprüfen, ob die Checksum korrekt ist
$secret = 'dein_geheimnis';
$expected_checksum = md5($name . $score . $secret);
if ($checksum !== $expected_checksum) {
return false;
}
// Überprüfen, ob der Spieler bereits einen Highscore hat
$query = "SELECT * FROM highscores WHERE name = '$name'";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
// Nur den Highscore aktualisieren, wenn der neue Score besser ist
$row = mysqli_fetch_assoc($result);
if ($score <= $row['score']) {
return false;
}
$id = $row['id'];
$query = "UPDATE highscores SET score = $score WHERE id = $id";
} else {
// Einen neuen Highscore einfügen
$query = "INSERT INTO highscores (name, score) VALUES ('$name', $score)";
}
mysqli_query($conn, $query);
// Den Highscore auf 10 Einträge beschränken
$query = "DELETE FROM highscores WHERE id NOT IN (SELECT id FROM (SELECT id FROM highscores ORDER BY score DESC, created_at ASC LIMIT 10) s)";
mysqli_query($conn, $query);
return true;
}
function get_highscores() {
global $conn;
// Die 10 besten Einträge ab
$query = "SELECT * FROM highscores ORDER BY score DESC, created_at ASC LIMIT 10";
$result = mysqli_query($conn, $query);
$output = "Highscores:\n";
$i = 1;
while ($row = mysqli_fetch_assoc($result))
{
$output .= "$i. {$row['name']} - {$row['score']} points\n";
$i++;
}
return $output;
}
?>
PHP Testscript
Code: Alles auswählen
<?php
// Verbindung zur Datenbank herstellen
$dbhost = 'localhost'; // oder '127.0.0.1'
$dbuser = 'deinbenutzername';
$dbpass = 'deinpasswort';
$dbname = 'deinedatenbank';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Überprüfen, ob die Verbindung erfolgreich war
if (!$conn) {
die('Verbindung zur Datenbank fehlgeschlagen: ' . mysqli_connect_error());
}
$name = 'Max Mustermann';
$score = 1234;
$secret = 'dein_geheimnis';
$checksum = md5($name . $score . $secret);
if (add_highscore($name, $score, $checksum)) {
echo "Highscore erfolgreich hinzugefügt!";
} else {
echo "Highscore konnte nicht hinzugefügt werden.";
}
// Die Highscores als Text ausgeben
echo get_highscores();
// Verbindung zur Datenbank schließen
mysqli_close($conn);
?>