我使用两个php文件编写问题脚本。其中一个是存储我的问题答案和一个问题的整数值。程序正在这样工作。
例如
$kelime[5]["question"] = "Mavi";
$kelime[5]["answer"] = "blue";
$kelime[5]["number"] = 0;
问题是' Mavi'答案是'蓝色'
当它问我是否给出真实答案时,如果数字> = 10则必须增加1,不要再问我这个问题。但数字值永远不会增加它在提交我错误的地方后总是相同的吗?
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 ✔</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>
感谢所有人:)
答案 0 :(得分:1)
我认为主要问题出在脚本的开头:
session_start();
require "kelimeler.php";
$_SESSION['sayi'] = $sayi; // <<<--here
$_SESSION['kelime'] = $kelime; // <<<--and here
每次页面加载时,您似乎正在将这些会话值重置为原始数组。如果尚未设置,则只应初始化它们。
session_start();
require "kelimeler.php";
if (!isset($_SESSION['sayi'])) {
$_SESSION['sayi'] = $sayi;
}
if (!isset($_SESSION['kelime'])) {
$_SESSION['kelime'] = $kelime;
}
然后,正如另一个答案指出的那样,$_SESSION['kelime'][$i]["nr"] = +1;
不会增加该值。也许您打算使用$_SESSION['kelime'][$i]["nr"] += 1;
?
答案 1 :(得分:0)
这很容易。代替
$_SESSION['kelime'][$i]["nr"] = +1;
你应该
$_SESSION['kelime'][$i]["nr"]++;
// or $_SESSION['kelime'][$i]["nr"] += 1;
此处的问题是= +1
,它将值设置为1并且不会增加。