-4

基本上我所拥有的是某种形式,这是:

<?php

require 'inc/conn.php'; 

$sql="INSERT INTO objednavky ( kdo, kdy, m1, mm1, m2, mm2, m3, mm3 )
VALUES
('$_POST[tkdo]','$_POST[thed]','$_POST[obb1]','$_POST[tmm1]',
'$_POST[obb2]','$_POST[tmm2]','$_POST[obb3]','$_POST[tmm3]')";

if (!mysql_query($sql,$con))
{
  die('Error: ' . mysql_error());
}

header('Location: http://www.juxcore.com/x/vita/protected.php');

mysql_close($con);

我需要使表格不可提交,以防例如星期四,而您可以提交的最后时刻是星期三晚上 18 点。感谢帮助

4

4 回答 4

2

看来您的问题实际上是 HTML/Javascript 问题,而不是 PHP/SQL。

因为乍一看我会说用 Javascript 更改 HTML,这样他们就无法提交表单。

document.getElementById("myform").action = "";

...会阻止提交。有很多方法,包括切换form到 a div

document.getElementById("myform").setAttribute("type","div");

或者,从显示中删除提交按钮,以便他们无法单击它:

document.getElementById("mysubmit").style.display="none";

编辑:哦,我完全忘记了明显的方法,使用表单验证。这样他们就不能停在 URL 上,直到星期三之后仍然以 HTML 提交

<form ... onsubmit="return validateForm()">

只需编写javascript函数validateForm(类似于下面的php)返回false即可取消提交。我不喜欢提供 w3school 链接,但这是一个很好的干净示例:http ://www.w3schools.com/js/js_form_validation.asp

无论如何,还有很多方法。只需在正确的日子做任何一个,使用 javascriptnew Date().getDay()new Date().getHours()确定何时。

(这也是更改元素属性的两种主要方法的示例)。

我想这不会阻止他们直接从地址行提交,如果您需要编辑 PHP,请使用该Date()对象:

$day = Date("w");
if ( $day == 4 || $day == 5 ) {
    $time = Date("G");
    if ( $day != 5 || $time < 18 ) {
        if (!mysql_query($sql,$con)) die('Error: ' . mysql_error());
    }
}

我建议两者都做,一种 HTML/Javascript 方式,使用服务器内置的相同控件来控制它。

于 2012-10-25T12:40:33.000 回答
0

您可以将一些 JS 附加到您的视图中,以使表单不可提交。

我的想法是:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    <?php if($currentDay < $dontSubmitFormDay):?>
         $('#myForm').submit(function(){
              return false;
         });
    <?php endif;?>
});
</script>
于 2012-10-25T12:44:20.457 回答
0

您需要获取当天星期三下午 6 点的时间戳然后每次用户提交表单时,获取该确切时间的时间戳并进行比较:

如果(时间现在

于 2012-10-25T12:47:15.990 回答
0

首先不要回复客户端(浏览器)时钟。如果最终用户愿意,这可能会被捏造。而是使用 PHP 创建一个会话,并将日期/时间标记为可以提交表单的最后日期/时间。收到该表格后,使用服务器日期/时间(最终用户无法伪造的日期/时间)进行检查。

通过这种方式,您可以绝对确定不会阻碍不启用表单提交的更多安全性。

但是,您可以使用 Javascript 来使用户体验更好,但不要回复客户端的日期/时间以保护您的数据库。

于 2012-10-25T12:57:36.770 回答