可以使用的XMLHttpRequest(AJAX)從PHP腳本獲取下一個URL,如下所示:
$urls = array(
1 => 'myGame1.php',
2 => 'thisIsPage2.php',
3 => 'iLikeJavaScript.html'
);
if (isset($_POST['nextPageUrl']), is_int($_POST['nextPageUrl'])) {
echo $urls[$_POST['nextPageUrl']];
}
在這個例子中,你有一個包含所有URL的數組,並且只回顯你需要的一個。或者,您可以從數據庫加載下一頁,生成一個新的隨機文件,無論您需要什麼。
對事物的JavaScript端,您可以使用這樣的事情(假設你正在使用jQuery,「正常」的JavaScript也是可以的,只是有點複雜):
function TheFunction(answer) {
if (answer == "theanswer") {
alert("Well done, time for level 2.");
$.ajax({
url: 'yourPage.php',
data: { nextPageUrl: 2 }
}).done(function (msg) {
location.href = msg;
});
}
else {
alert("Wrong answer.");
}
}
這是隻是一種解決方案。每個客戶端驗證都可以繞過,因此您不妨檢查PHP文件中的答案,以確保某人不是手動執行AJAX請求。
這可以通過修改PHP文件並將答案通過ajax傳遞給腳本來完成(擴展data
-object)。
$urls = array(
1 => array('url' => 'myGame1.php', 'answer' => 'theanswer'),
2 => array('url' => 'thisIsPage2.php', 'answer' => 'theanswer2'),
3 => array('url' => 'iLikeJavaScript.html', 'answer' => 'theanswer3'),
);
if (isset($_POST['nextPageUrl']), is_int($_POST['nextPageUrl'])) {
if ($urls[$_POST['nextPageUrl']]['answer'] == $_POST['thisAnswer'])
echo $urls[$_POST['nextPageUrl']]['url'];
}
你所說的鏈接是活躍的意思嗎? –
我的意思是有鏈接出現在代碼,這樣的頁面知道在哪裏可以重定向到:) – jLynx
的確是這樣,存儲在服務器上的URL,並在需要的時候得到它,存儲在客戶方任何事情都是給客戶端訪問。作爲@ adeneo說, – adeneo