下面我试图创建一个功能,如果用户在当前页面上,则数组中的所有其他页面都被锁定(无法访问),在用户完成当前页面之前无法访问其他页面。上。
下面是处理 6 个 php 脚本的代码:
<script type="text/javascript">
$(function() {
var link = $("#createLink");
link.click(function() {
$.ajax({
url: "removesession.php",
async: false,
type: "POST",
success: function() {
window.location.href = link.attr("href");
}
});
//cancels the links true action of navigation
return false;
});
);
</script>
<?php
$steps = array('create_session.php', 'QandATable.php', 'individualmarks.php', 'penalty.php', 'penaltymarks', 'complete.php');
// Track $latestStep in either a session variable
// $currentStep will be dependent upon the page you're on
$latestStep = $_SESSION['latestStep'];
$currentStep = basename(__FILE__);
$currentIdx = array_search($currentStep, $steps);
$latestIdx = array_search($latestStep, $steps);
if ($currentIdx - $latestIdx > 1 ) {
?>
<div class="boxed">
<a href="<?= $pages[$currentPages+1] ?>">Continue</a>
<br/><a href="create_session.php" id="createLink">Create New</a>
</div>
<?
} else {
// let the user do the step
}
?>
所以这里有一个可能发生的例子:
- 用户在
penalty.php
页面上,因此阵列中的其他页面被锁定 如果用户尝试访问另一个页面,则会显示上面显示的 div 框:
如果用户选择
Continue
链接,那么它应该将用户导航到他们应该在哪个页面上的penalty.php
页面如果用户选择
Create New
链接,那么它应该导航到create_session.php
并执行 jquery/ajax 方法并导航到removesession.php
后台脚本
现在上面的代码在一个名为的 php 脚本中steps.php
,它被外部化,以便可以使用它来访问它include(steps.php)
,它将包含在数组中的 6 个 php 脚本中,以便这些脚本可以访问这些页面。
现在我的问题是我需要在这段代码中再做一件事,它处理我在上面代码中的 if/else 语句,并在其他脚本中包含代码:
使用返回值,如果用户可以执行该步骤,则返回 1,如果不能,则返回 0。然后在每个页面上,您将调用此函数,并根据返回值显示页面或显示错误
我的问题是,我似乎不太了解如何编写上述引文中提到的内容。有人可以展示 if/else 语句应该是什么样子,以及应该在 6 的 php 脚本之一中包含哪些代码,以便能够调用该脚本中的函数?
更新:
步骤.php
<?php
function allowed_in($steps){
$steps = array('create_session.php', 'QandATable.php', 'individualmarks.php', 'penalty.php', 'penaltymarks', 'complete.php');
// Track $latestStep in either a session variable
// $currentStep will be dependent upon the page you're on
$latestStep = $_SESSION['latestStep'];
$currentStep = basename(__FILE__);
$currentIdx = array_search($currentStep, $steps);
$latestIdx = array_search($latestStep, $steps);
if ($currentIdx - $latestIdx > 1 ) {
return 1;
} else {
return 0;
}
}
?>
创建会话.php:
if(allowed_in($steps)){
//all code in the create_session.php
}else{
?>
<div class="boxed">
<a href="<?= $pages[$currentPages+1] ?>">Continue</a>
<br/>
<a href="create_session.php" id="createLink">Create New</a>
</div>
<?php
}
?>