Проверить ввод значений POST? - PullRequest
0 голосов
/ 28 мая 2020

Здравствуйте, дорогие друзья Интернета, сегодня у меня проблема, и я не знаю, как проверить данные INPUT в POST, если кто-то может помочь мне проверить эти данные, я был бы очень благодарен, это код:

include("GameEngine/Village.php");

$unarray = array(1 => U1, U2, U3, U4, U5, U6, U11, U12, U13, U14, U15, U16, U21, U22, U23, U24, U25, U26, U31, U32, U33, U34, U35, U36, U41, U42, U43, U44, U45, U46, U0);

if (isset($_GET['id']) && $_GET['id'] == 1) {
    $res_qty = $_POST['resqty'];
    $cost = $res_qty * 30;
    $allres_qty = $res_qty * 100000;
    $database->query("UPDATE " . TB_PREFIX . "users SET `gold` = `gold`- " . $cost . " WHERE id =" . $session->uid);
    $database->query("UPDATE " . TB_PREFIX . "vdata SET `wood` = `wood` + " . $allres_qty . ", `clay` = `clay` + " . $allres_qty . ", `iron` = `iron` + " . $allres_qty . ", `crop` = `crop` + " . $allres_qty . " WHERE wref =" . $village->wid);
    $_SESSION['info'] = $allres_qty . " Wood, Clay, Iron, Crop, added at the cost of " . $cost . " gold.";

    header("Location:dorf1.php");
}
if (isset($_GET['id']) && $_GET['id'] == 2) {
    $troop_type = $_POST['trooptype'];
    $troop_qty = $_POST['troopqty'];
    $cost = $troop_qty * 30;
    $dt = array();

    header("Location:dorf1.php");

    for ($x = 1; $x < 11; $x++) {
        $dt[$x] = 3333;
        if ($x == $troop_type) $dt[$x] = floor($troop_qty * 3333);
    }

    $tribe = $database->getUserField($database->getVillageField($village->wid, "owner"), "tribe", 0);

    if ($tribe == 1) {
        $u = "";
    } elseif ($tribe == 2) {
        $u = "1";
    } elseif ($tribe == 3) {
        $u = "2";
    } elseif ($tribe == 4) {
        $u = "3";
    } else {
        $u = "4";
    }

    $database->modifyUnit(
        $village->wid,
        array($u . "1", $u . "2", $u . "3", $u . "4", $u . "5", $u . "6", $tribe . "0", "hero"),
        array($dt[1], $dt[2], $dt[3], $dt[4], $dt[5], $dt[6], 0),
        array(1, 1, 1, 1, 1, 1)
    );


    $database->query("UPDATE " . TB_PREFIX . "users SET `gold` = `gold`- " . $cost . " WHERE id =" . $session->uid);

    $_SESSION['info'] = ($troop_qty * 3333) . " " . $unarray[($tribe - 1) * 10 + $troop_type] . " added at the cost of " . $cost . " gold.";
} elseif (isset($_GET['id']) && $_GET['id'] == 3) {
    $attack = $_POST['attack'];
    $cost = $attack * 10;
    header("Location:dorf1.php");
    $q = "UPDATE " . TB_PREFIX . "movement SET starttime=" . time() . ", endtime=" . (time() + 5) . " WHERE (`to` =" . $village->wid . " OR `from` = " . $village->wid . ") AND proc = 0";

    $result = $database->query($q);

    if (mysql_affected_rows() > 10) {
        //modify gold
        $database->modifyGold($session->uid, 10);
    }
    $database->query("UPDATE " . TB_PREFIX . "users SET `gold` = `gold`- " . $cost . " WHERE id =" . $session->uid);

    $_SESSION['info'] = "added at the cost of " . $cost . " gold.";
}

Привет, что мне нужно проверить, так это количество войск и ресурсов, которые я даю своим пользователям, это сценарий для ввода войск в мою игру, но мне нужно проверить войска и ресурсы, большое спасибо! Если кто-то может мне помочь, буду очень признателен!

1 Ответ

0 голосов
/ 28 мая 2020

Вот пример общей проверки данных:

<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

Источник: https://www.w3schools.com/php/php_form_validation.asp

Основная идея состоит в том, чтобы принимать только шаблоны, которые соответствуют тому, что вы хотите получать как достоверные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...