Php 在drupal 6中创建有时间限制的页面

Php 在drupal 6中创建有时间限制的页面,php,drupal-6,Php,Drupal 6,我想在Drupal6中创建一个表单,用户可以强制在有限的时间内(例如:10分钟)填充字段 我想在代码的服务器端处理这个时间限制。我不希望用户可以通过更改系统时钟来更改时间 是否可以不使用$\u会话 使用。像这样的方法应该会奏效: //Set your start time when the user enters the page: session_start(); if(!isset($_SESSION['start_time'])){ $_SESSION['start_time']

我想在Drupal6中创建一个表单,用户可以强制在有限的时间内(例如:10分钟)填充字段

我想在代码的服务器端处理这个时间限制。我不希望用户可以通过更改系统时钟来更改时间

是否可以不使用$\u会话

使用。像这样的方法应该会奏效:

//Set your start time when the user enters the page:
session_start();
if(!isset($_SESSION['start_time'])){
    $_SESSION['start_time'] = time();
}

//Check the current time against the start time when the user submits:
if(!isset($_SESSION['start_time'])){
    $elapsed = time() - $_SESSION['start_time'];
    $limit = 10*60; //Since time() is in seconds, multiply desired # of minutes by 60
    if($elapsed <= $limit){
        //It took less than 10 minutes
    }else{
        //It took more than 10 minutes
    }
}
//设置用户进入页面时的开始时间:
会话_start();
如果(!isset($\u会话['start\u time'])){
$\u会话['start\u time']=time();
}
//根据用户提交时的开始时间检查当前时间:
如果(!isset($\u会话['start\u time'])){
$appeased=time()-$\u会话['start\u time'];
$limit=10*60;//因为time()以秒为单位,所以将所需的分钟数乘以60

如果($appead),那么存储用户开始与表单交互的时间,并检查提交时的时间是否已过

您可以使用会话存储特定用户的时间

以下是执行此操作所需的参考资料:

http://php.net/manual/en/function.session-start.php
http://se2.php.net/manual/en/function.date.php
http://se2.php.net/manual/en/function.date-diff.php

如果用户调用我的表单并长时间离开表单而没有提交或作出反应,我怎么能发现时间过长(没有java脚本)?@Goodman这要视情况而定。是否需要一个帐户来查看此表单,或者任何人都可以这样做?如果后者是真的,则除了将其IP记录到某种类型的数据库中并在加载表单时进行检查之外,没有绝对的方法可以知道他们以前是否访问过该表单。(不过,IP很容易更改)如果需要帐户,您只需在他们第一次加载表单时将帐户名存储在数据库中,然后在后续加载时检查帐户名。感谢您的关注。我有一个任何人都可以使用的表单,在这个表单后面是一个有限的资源,我的用户在竞争条件下应该订购它。我锁定了资源的百分之几在用户填写我的表单期间执行rce。我希望任何人都不能无限期锁定此百分比的资源。