diff --git a/database/backported/1.2-beta2/loginAccount.php b/database/backported/1.2-beta2/loginAccount.php index e3580b0..692b02e 100644 --- a/database/backported/1.2-beta2/loginAccount.php +++ b/database/backported/1.2-beta2/loginAccount.php @@ -1,12 +1,12 @@ prepare("SELECT * FROM users WHERE username = ?"); +$stmt = $conn0->prepare("SELECT * FROM users WHERE username = ?"); $stmt->bind_param("s", $request_username); - $stmt->execute(); $result = $stmt->get_result(); @@ -17,28 +17,56 @@ if ($result->num_rows > 0) { $login_ip = getIPAddress(); $login_time = time(); $uid = $row['id']; - $username = $row['username']; - $highscore = $row['legacy_high_score']; - $token = $row['token']; - $stmt = $conn->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); + $stmt2 = $conn1->prepare("SELECT * FROM userdata WHERE id = ?"); + $stmt2->bind_param("i", $uid); + $stmt2->execute(); + $result2 = $stmt2->get_result(); + + if ($result2->num_rows != 1) { + echo '-1'; + exit; + } + + $user2 = $result2->fetch_assoc(); + + $username = $row['username']; + $highscore = $user2['legacy_high_score']; + $token = $user2['token']; + $savedata = json_decode($user2['save_data'], true); + $icon = $savedata['bird']['icon'] ?? 1; + $overlay = $savedata['bird']['overlay'] ?? 0; + + $stmt = $conn0->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); $stmt->bind_param("si", $login_ip, $uid); $stmt->execute(); - echo "$token:$uid:$highscore"; + if ( + getClientVersion() == "1.2-beta2" || + getClientVersion() == "1.2" || + getClientVersion() == "1.21" || + getClientVersion() == "1.3-beta1" + ) { + echo "$token:$uid:$highscore"; + } else if (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") { + echo "$token:$uid:$highscore:$icon:$overlay"; + } else if (getClientVersion() == "1.4.0-beta1" || getClientVersion() == "1.4.0" || getClientVersion() == "1.4.1") { + echo "1:$token:$username:$uid:$highscore:$icon:$overlay"; + } } else { $stmt->close(); - $conn->close(); + $conn0->close(); + $conn1->close(); exit("-2"); } } } else { $stmt->close(); - $conn->close(); + $conn0->close(); + $conn1->close(); exit("-2"); } $stmt->close(); -$conn->close(); - -?> \ No newline at end of file +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/backported/1.3-beta2/loginAccount.php b/database/backported/1.3-beta2/loginAccount.php deleted file mode 100644 index 82399f3..0000000 --- a/database/backported/1.3-beta2/loginAccount.php +++ /dev/null @@ -1,47 +0,0 @@ -prepare("SELECT * FROM users WHERE username = ?"); -$stmt->bind_param("s", $request_username); - -$stmt->execute(); - -$result = $stmt->get_result(); - -if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - if (password_verify($request_password, $row["password"])) { - $login_ip = getIPAddress(); - $login_time = time(); - $uid = $row['id']; - $username = $row['username']; - $highscore = $row['legacy_high_score']; - $token = $row['token']; - $savedata = json_decode($row['save_data'], true); - $icon = $savedata['bird']['icon'] ?? 1; - $overlay = $savedata['bird']['overlay'] ?? 0; - - $stmt = $conn->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); - $stmt->bind_param("si", $login_ip, $uid); - $stmt->execute(); - - echo "$token:$uid:$highscore:$icon:$overlay"; - } else { - $stmt->close(); - $conn->close(); - exit("-2"); - } - } -} else { - $stmt->close(); - $conn->close(); - exit("-2"); -} - -$stmt->close(); -$conn->close(); - -?> \ No newline at end of file diff --git a/database/backported/1.4.0-beta1/loginAccount.php b/database/backported/1.4.0-beta1/loginAccount.php deleted file mode 100644 index 1ae63ae..0000000 --- a/database/backported/1.4.0-beta1/loginAccount.php +++ /dev/null @@ -1,47 +0,0 @@ -prepare("SELECT * FROM users WHERE username = ?"); -$stmt->bind_param("s", $request_username); - -$stmt->execute(); - -$result = $stmt->get_result(); - -if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - if (password_verify($request_password, $row["password"])) { - $login_ip = getIPAddress(); - $login_time = time(); - $uid = $row['id']; - $username = $row['username']; - $highscore = $row['legacy_high_score']; - $token = $row['token']; - $savedata = json_decode($row['save_data'], true); - $icon = $savedata['bird']['icon'] ?? 1; - $overlay = $savedata['bird']['overlay'] ?? 0; - - $stmt = $conn->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); - $stmt->bind_param("si", $login_ip, $uid); - $stmt->execute(); - - echo "1:$token:$username:$uid:$highscore:$icon:$overlay"; - } else { - $stmt->close(); - $conn->close(); - exit("-2"); - } - } -} else { - $stmt->close(); - $conn->close(); - exit("-2"); -} - -$stmt->close(); -$conn->close(); - -?> \ No newline at end of file diff --git a/database/backported/1.5/loginAccount.php b/database/backported/1.5/loginAccount.php index 8a31bb5..2d202f8 100644 --- a/database/backported/1.5/loginAccount.php +++ b/database/backported/1.5/loginAccount.php @@ -1,5 +1,6 @@ prepare("SELECT * FROM users WHERE username = ?"); +$stmt = $conn0->prepare("SELECT * FROM users WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows === 0) { +if ($result->num_rows != 1) { exitWithMessage("-1"); } @@ -23,15 +24,29 @@ if (!password_verify($password, $user["password"])) { } $id = $user['id']; -$token = $user['token']; +$stmt2 = $conn1->prepare("SELECT * FROM userdata WHERE id = ?"); +$stmt2->bind_param("i", $id); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + exitWithMessage("-1"); +} + +$user2 = $result2->fetch_assoc(); + +$token = $user2['token']; $ip = getIPAddress(); -$stmt = $conn->prepare("UPDATE users SET latest_ip = ?, token = ? WHERE id = ?"); -$stmt->bind_param("ssi", $ip, $token, $id); +$stmt = $conn0->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); +$stmt->bind_param("si", $ip, $id); $stmt->execute(); +$stmt2 = $conn1->prepare("UPDATE userdata SET token = ? WHERE id = ?"); +$stmt2->bind_param("si", $token, $id); +$stmt2->execute(); if ($currentHighScore > $user['legacy_high_score']) { - $stmt = $conn->prepare("UPDATE users SET legacy_high_score = ? WHERE id = ?"); + $stmt = $conn1->prepare("UPDATE userdata SET legacy_high_score = ? WHERE id = ?"); $stmt->bind_param("ii", $currentHighScore, $id); $stmt->execute(); $user['legacy_high_score'] = $currentHighScore; @@ -47,4 +62,5 @@ if ($loginType === "0") { echo encrypt("1" . ":" . $token . ":" . $user['username'] . ":" . $id); } $stmt->close(); -$conn->close(); +$conn0->close(); +$conn1->close(); \ No newline at end of file diff --git a/database/loginAccount.php b/database/loginAccount.php index d1aa68b..54d07e2 100644 --- a/database/loginAccount.php +++ b/database/loginAccount.php @@ -5,36 +5,34 @@ if ( getClientVersion() == "1.2-beta2" || getClientVersion() == "1.2" || getClientVersion() == "1.21" || - getClientVersion() == "1.3-beta1" + getClientVersion() == "1.3-beta1" || + getClientVersion() == "1.3-beta2" || + getClientVersion() == "1.3" || + getClientVersion() == "1.33" || + getClientVersion() == "1.4.0-beta1" || + getClientVersion() == "1.4.0" || + getClientVersion() == "1.4.1" ) { require __DIR__ . '/backported/1.2-beta2/loginAccount.php'; exit; } -if (getClientVersion() == "1.3-beta2" || getClientVersion() == "1.3" || getClientVersion() == "1.33") { - require __DIR__ . '/backported/1.3-beta2/loginAccount.php'; - exit; -} -if (getClientVersion() == "1.4.0-beta1") { - require __DIR__ . '/backported/1.4.0-beta1/loginAccount.php'; - exit; -} if (getClientVersion() == "1.5.0" || getClientVersion() == "1.5.1" || getClientVersion() == "1.5.2") { require __DIR__ . '/backported/1.5/loginAccount.php'; exit; } - -$conn = newConnection(); +$conn0 = newConnection(0); +$conn1 = newConnection(1); $post = getPostData(); $username = $post['username']; $password = $post['password']; -$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?"); +$stmt = $conn0->prepare("SELECT id, username, password FROM users WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); -if ($result->num_rows === 0) { +if ($result->num_rows != 1) { exitWithMessage(json_encode(["success" => false, "message" => "Invalid username or password"])); } @@ -45,16 +43,32 @@ if (!password_verify($password, $user["password"])) { } $id = $user['id']; -$token = $user['token']; + +$stmt2 = $conn1->prepare("SELECT token FROM userdata WHERE id = ?"); +$stmt2->bind_param("i", $id); +$stmt2->execute(); +$result2 = $stmt2->get_result(); + +if ($result2->num_rows != 1) { + exitWithMessage(json_encode(["success" => false, "message" => "Invalid username or password"])); +} + +$user2 = $result2->fetch_assoc(); + +$token = $user2['token']; $ip = getIPAddress(); -$stmt = $conn->prepare("UPDATE users SET latest_ip = ?, token = ? WHERE id = ?"); -$stmt->bind_param("ssi", $ip, $token, $id); +$stmt = $conn0->prepare("UPDATE users SET latest_ip = ? WHERE id = ?"); +$stmt->bind_param("si", $ip, $id); $stmt->execute(); +$stmt2 = $conn1->prepare("UPDATE userdata SET token = ? WHERE id = ?"); +$stmt2->bind_param("si", $token, $id); +$stmt2->execute(); $data = ["session" => $token, "username" => $user['username'], "userid" => $id]; echo encrypt(json_encode(["success" => true, "data" => $data])); $stmt->close(); -$conn->close(); +$conn0->close(); +$conn1->close();