Джекпот с угадыванием слова PHP - PullRequest
0 голосов
/ 01 июля 2018

Итак, я сделал это приложение для местной радиостанции, которая в основном представляет собой игру в угадывание слов с джекпотом. Когда пользователь заходит на страницу, $ bericht необходимо показать, насколько высок джекпот. Джекпот должен увеличиваться на 5, а $ bericht должен обновляться каждый раз, когда кто-то пропустил угаданное слово, и пользователь выигрывает джекпот, если он угадал его правильно, и он покажет, сколько он выиграл в $ bericht. Но каждый раз, когда я отвечаю неправильно, все равно говорят, что я угадал правильно. Это должно быть сделано с использованием PDO и PHP.

Вот мой PHP:

<?php
    require_once "manager.php";

    $manager = new funtionHandler();

    $database = $manager->getBCWaarde();

    $bcDatabase = $database->bc;

    $message= "De pot ligt nu op&nbsp;" . $bcDatabase . "BC!";

    if ($_POST) {
        $checkAnswer= $manager->getAntwoordByInput($_POST["antwoord"]);

        $correctAnswer= isset($checkAnswer);

        if ($correctAnswer) {
            $message= "Het antwoord is goed!&nbsp; Jij wint&nbsp;" . $bcDatabase . "BC!";

            $bcCount = 0;

            $manager->updateBCWaarde($bcCount);
        }else{
            $bcCount = $bcDatabase += 5;

            $message= "Het antwoord is fout!&nbsp; De pot ligt nu op&nbsp;" . $bcCount . "BC!";

            $manager->updateBCWaarde($bcCount);
        }
    }
?>

Вот мой PHP Functionmanager:

<?php

require_once "connection.php";

class funtionHandler{
    public function getAntwoordByInput($aInput) {            
        global $conn;

        $statement = $conn->prepare("SELECT * FROM hetgeluid WHERE antwoord LIKE '?';");

        $statement->bindValue(1, $aInput);

        $statement->execute();

        return $statement->fetchObject();
    }

    public function getBCWaarde() {            
        global $conn;

        $statement = $conn->prepare("SELECT bc FROM hetgeluid");

        $statement->execute();

        return $statement->fetchObject();
    }

    public function updateBCWaarde($bcWaarde) {            
        global $conn;

        $statement = $conn->prepare("UPDATE hetgeluid SET bc = ? WHERE id = 1");

        $statement->bindValue(1, $bcWaarde);

        $statement->execute();
    }
}

?>

А вот и мой HTML:

  <form method="post" action="">
     <textarea required type="text" style="height:100px; width:100%;" class="customField" cols="40" rows="5" style="resize: none;" name="antwoord"></textarea><br /><br />
     <input type="submit" class="customSuccessButton" value="Verstuur"/>                                  
   </form>
   <br />
   <?php echo $message; ?>

1 Ответ

0 голосов
/ 01 июля 2018

Кажется, проблема в том, как вы проверяете, верен ли ответ.

$checkAntwoord = $manager->getAntwoordByInput($_POST["antwoord"]);

Метод getAntwoordByInput возвращает результат $statement->fetchObject(), который возвращает следующую строку как объект, или false, если его нет.

$goedAntwoord = isset($checkAntwoord);

Функция isset проверяет, существует ли переменная и не является ли null.

Переменная $checkAntwoord всегда существует. Если ответ правильный, он будет иметь тип object, если нет, то будет boolean (false). В любом случае, это не null. Поэтому ваше состояние всегда будет верным.

if ($goedAntwoord) {

Вместо этого вы можете использовать функцию empty . Например:

$goedAntwoord = !empty($checkAntwoord);
if ($goedAntwoord) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...