1

I'm coding a question script with using two php files. One of them is storing my questions answers and one integer value of question. Program is working like that.

For example

$kelime[5]["question"] = "Mavi";
$kelime[5]["answer"] = "blue";
$kelime[5]["number"] = 0;

Question is 'Mavi' and answer is 'blue'

When it asked me if I give true answer number must increase 1 if number >= 10 don't ask me this question again. But number value never increase it is always same after submit where I am making wrong?

questions.php

<?php

$kelime[0]["tr"] = "Sarı";
$kelime[0]["en"] = "yellow";
$kelime[0]["nr"] = 0;

$kelime[1]["tr"] = "Kırmızı";
$kelime[1]["en"] = "red";
$kelime[1]["nr"] = 0;

$kelime[2]["tr"] = "Yeşil";
$kelime[2]["en"] = "green";
$kelime[2]["nr"] = 0;

$kelime[3]["tr"] = "Siyah";
$kelime[3]["en"] = "black";
$kelime[3]["nr"] = 0;

$kelime[4]["tr"] = "Beyaz";
$kelime[4]["en"] = "white";
$kelime[4]["nr"] = 0;

$kelime[5]["tr"] = "Mavi";
$kelime[5]["en"] = "blue";
$kelime[5]["nr"] = 0;

$kelime[6]["tr"] = "Turuncu";
$kelime[6]["en"] = "orange";
$kelime[6]["nr"] = 0;

$kelime[7]["tr"] = "Gri";
$kelime[7]["en"] = "grey";
$kelime[7]["nr"] = 0;

$kelime[8]["tr"] = "Mor";
$kelime[8]["en"] = "purple";
$kelime[8]["nr"] = 0;

$kelime[9]["tr"] = "Pembe";
$kelime[9]["en"] = "pink";
$kelime[9]["nr"] = 0;

$kelime[10]["tr"] = "Altın";
$kelime[10]["en"] = "gold";
$kelime[10]["nr"] = 0;

$sayi = array(0,1,2,3,4,5,6,7,8,9,10);

?>

asking.php

    <?php

    session_start();
    require "kelimeler.php";
    $_SESSION['sayi'] = $sayi;
    $_SESSION['kelime'] = $kelime;

    $i = rand(0,4);

    print_r($_SESSION['kelime']);
    setcookie("soru", $_SESSION['kelime'][$_SESSION['sayi'][$i]]["tr"]);
    setcookie("cevap", $_SESSION['kelime'][$_SESSION['sayi'][$i]]["en"]);

?>

<html>
<body>
    <div class="content">
        <div class="kelime"><?php echo $_SESSION['kelime'][$_SESSION['sayi']     [$i]]["tr"] ?></div>
        <form method="post" action="">
            <input id="cvp" type="text" name="kelime" placeholder="die Antwort">
            <input type="submit" name="gonder" value="SENDEN !"/>
        </form>
    </div>
    <?php

        if (isset($_POST["kelime"])) {

            if ($_POST["kelime"] == $_COOKIE['cevap']) {
                    echo '<div class="bildirim">You are right &#10004</div>';
                    $_SESSION['kelime'][$i]["nr"] = +1;
                    if ($kelime[$i]["nr"] >= 10) {
                        unset($_SESSION['sayi'][$i]);
                    }
            } else {
                    echo '<div class="bildirim">'.$_COOKIE['soru'].' = '.$_COOKIE['cevap'].'</div>';
            }

        }

    ?>
</body>
</html>

Thanks to all from now :)

2 Answers 2

1

I think the main problem is at the beginning of the script:

session_start();
require "kelimeler.php";
$_SESSION['sayi'] = $sayi;       // <<<--here
$_SESSION['kelime'] = $kelime;   // <<<--and here

It appears you are resetting these session values to the original arrays every time the page loads. You should only initialize them if they are not already set.

session_start();
require "kelimeler.php";
if (!isset($_SESSION['sayi'])) {
    $_SESSION['sayi'] = $sayi;
}
if (!isset($_SESSION['kelime'])) {
    $_SESSION['kelime'] = $kelime;
}

Then, as the other answer pointed out, $_SESSION['kelime'][$i]["nr"] = +1; will not increment the value. Maybe you meant to use $_SESSION['kelime'][$i]["nr"] += 1;?

Sign up to request clarification or add additional context in comments.

Comments

0

It's easy. Instead

$_SESSION['kelime'][$i]["nr"] = +1;

You should

$_SESSION['kelime'][$i]["nr"]++;
// or $_SESSION['kelime'][$i]["nr"] += 1;

The problem here is = +1 which sets the value to 1 and do not increment.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.