Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制按钮的点击次数_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

Javascript 限制按钮的点击次数

Javascript 限制按钮的点击次数,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我的网页上有两个按钮:接受和拒绝。我想限制“接受”按钮的点击次数。我想接受按钮的次数可以在24小时内点击20次。24小时结束后,用户可以再次单击按钮20次。我使用的是MySQL数据库和PHP 基本上我对PHP一无所知,但我可以建议实现结果所需的方法 您需要一个具有特定列的表,如下所示 用户ID int PK 第一次单击日期时间日期时间 全集 创建一个存储过程,根据以下条件执行插入、更新等操作 现在,这是从代码隐藏管理点击的时候了 当用户加载此页面时(此时有“接受”按钮),您需要确定用户已在24小

我的网页上有两个按钮:接受和拒绝。我想限制“接受”按钮的点击次数。我想接受按钮的次数可以在24小时内点击20次。24小时结束后,用户可以再次单击按钮20次。我使用的是MySQL数据库和PHP

基本上我对PHP一无所知,但我可以建议实现结果所需的方法

您需要一个具有特定列的表,如下所示

用户ID int PK 第一次单击日期时间日期时间 全集 创建一个存储过程,根据以下条件执行插入、更新等操作

现在,这是从代码隐藏管理点击的时候了

当用户加载此页面时(此时有“接受”按钮),您需要确定用户已在24小时内完成全部点击。对于此任务,必须创建一个返回true或false的函数

若按钮为特定用户启用,则执行以下操作

当用户单击Accept按钮时,您需要从代码中调用该过程以及所需的参数

已为此用户禁用Else按钮

将onclick EventListener添加到按钮。 将全局变量设置为计数器。 对于每次单击,增加计数。 当计数器达到20时,添加setTimeout将计数器重置为0,时间跨度为86400000 24小时(毫秒)。 检查下面的代码。点击20次

var时间=0; 函数检查时间{
如果时间你不能像@SagarV建议的那样做,因为这样用户就可以重新加载页面并继续滥发按钮。你需要在会话存储或cookie中设置一个标志或其他内容,以防止用户在24小时内点击按钮。

到目前为止你做了什么?有代码吗?请参阅:使用咨询机制和设置时间为了实现这一点。接受按钮是关于什么的。它是一个像tinder这样的交友网站。用户可以在这里接受或拒绝一个人。我还没有开始编码这个,因为我无法开始使用它。你能给我提供一些代码吗。这将非常有帮助。我不知道你的应用程序如何工作,但使用计数器作为建议当达到限制时,为该用户设置cookie,如document.cookie=username=Bill Bull;expires=Sat,2017年3月25日12:00:00 UTC;path=/;或在window对象上使用sessionStorage,问题是如果用户打开新选项卡,那么它就是一个新会话它已过期,用户可以再次单击该按钮,否则不会。
    CREATE PROCEDURE sp_ManageButtonClickByUserId
      @UserId INT,
      @IsClick BIT = 0
    AS BEGIN

-- Lets consider your table name is ManageButtonCLick with columns including 
-- 1.UserId int
-- 2.FirstClickDateTime DateTime
-- 3.TotalClicks int

IF ISNULL(@IsClick,0) <> 0 -- Determine IsClick is true when pass from code
BEGIN
    Declare @TotalClick AS INT
    SET @TotalClick = (SELECT TotalClick FROM ManageButtonCLick WHERE UserID = @UserId);
    SET @TotalClick = ISNULL(@TotalClick, 0) + 1;


    If EXISTS(SELECT 1 FROM ManageButtonCLick WHERE UserID = @UserId) -- If user exists than update record
    BEGIN

        /* Determine the 24 is completed or not for specific user */
        Declare @IsHoursCompleted AS BIT = 0; -- Indecates false
        Declare @TotalHoursCompleted AS INT = 0;

        SET @TotalHoursCompleted = (SELECT DATEDIFF(HOUR, FirstClickDateTime, GETDATE()) FROM ManageButtonCLick WHERE UserID = @UserId);
        SET @IsHoursCompleted = (SELECT CASE WHEN ISNULL(@TotalHoursCompleted,0) >= 24 THEN 1 ELSE 0 END);

        IF (ISNULL(@IsHoursCompleted,0) <> 0)
        BEGIN
            UPDATE ManageButtonCLick
            SET FirstClickDateTime = GETDATE(), TotalClicks = 1
            WHERE UserID = @UserId
        END
        ELSE
        BEGIN
            UPDATE ManageButtonCLick
            SET TotalClicks = @TotalClick
            WHERE UserID = @UserId
        END
    END
    ELSE -- if user not exists than insert that user detail for button click
    BEGIN
        INSERT INTO ManageButtonCLick (UserId, FirstClickDateTime, TotalClicks)
        VALUES (@UserId, GETDATE(), @TotalClick)
    END
END
END