Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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
php-对所有用户只执行一次函数_Php - Fatal编程技术网

php-对所有用户只执行一次函数

php-对所有用户只执行一次函数,php,Php,我正在构建一个在线多人棋盘游戏,我有一个创建新棋盘的功能。我需要在每一轮之后都这样做,但我似乎无法让它对所有用户只执行一次。当计时器达到0时,我调用这个函数,在游戏所在的页面上,它为该页面上的每个用户执行 因此,该函数生成一个新棋盘的次数与当时玩游戏的用户数量相同,但我希望它只生成一个棋盘 所以,我的问题是如何使PHP函数只执行一次,而不是像打开的页面那样执行多次 在系统上编辑:用户播放90秒,然后等待15秒,直到他们看到回合结果,然后整个过程一次又一次地重复。如果你在这一轮的中间进入页面,你可

我正在构建一个在线多人棋盘游戏,我有一个创建新棋盘的功能。我需要在每一轮之后都这样做,但我似乎无法让它对所有用户只执行一次。当计时器达到0时,我调用这个函数,在游戏所在的页面上,它为该页面上的每个用户执行

因此,该函数生成一个新棋盘的次数与当时玩游戏的用户数量相同,但我希望它只生成一个棋盘

所以,我的问题是如何使PHP函数只执行一次,而不是像打开的页面那样执行多次

在系统上编辑:用户播放90秒,然后等待15秒,直到他们看到回合结果,然后整个过程一次又一次地重复。如果你在这一轮的中间进入页面,你可以选择等到新的回合开始,或者马上进入回合。所以我不知道在哪里调用这个函数。我试着在暂停菜单开始显示结果时调用它,但它只是为所有用户执行该功能。它仍然有效,因为在所有执行结束时我仍然会得到一个棋盘,但它不正确,特别是如果有数百人在玩,该棋盘将在数百次中生成。而且,生成板的是一个在服务器上创建XML的C++ .exe。我从PHP执行exe,并且还做一些附加的事情。

我不知道在哪里调用该函数。我怎样才能像你说的那样预渲染这块板?该函数仍然必须位于某个用户必须访问的页面上才能执行。令人难以置信


此外,我还尝试在数据库中添加信息,以查看以前是否调用过该函数,但所有用户都会同时调用该函数。

使用数据库将电路板保存在数据库中

当倒计时达到0时


检查数据库中是否有电路板,如果没有创建新电路板(请注意,如果创建新电路板需要很长时间,您可以预先渲染电路板)。

我想我们需要更多关于您使用的系统的信息,才能给出实际答案,但一般的程序可能是在特定游戏中的客户第一次报告到达特定回合结束时生成棋盘。将该棋盘的信息以及游戏ID和轮号保存在数据库表中。然后,当同一游戏中的客户报告完成同一轮时,将保存的棋盘发送给他们,而不是再次生成新棋盘

使用sessess/COOKIEYes,听起来这仍然是你想要做的。每次加载页面时,您都必须为每个用户调用一个函数,只是您将调用“检查是否已生成此轮的板”函数,而不是“生成新板”函数。