Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] 全装安装或升级都无法在重复投票时间间隔中进行投票?

[复制链接]
老枫树 发表于 2010-9-27 22:09:53 | 显示全部楼层 |阅读模式
本帖最后由 老枫树 于 2010-9-27 22:20 编辑

首页感谢你们给我们带来这么好的程序~再就是现在出现了这个问题,请帮看看~
我的后台设置是这样的,如下图:


按我自己想,这样的设置,应该在每一个一分钟中能对5个选项进行投票,
每过60秒就能再进行一次投票,
可现在却是在第一轮的一分钟内投票过,再下一个一分钟内却无法投票了,
提示:对不起,您不能对单个选项重复投票,如下图:


如果设为时间间隔内允许用户对同一选项重复投票的话,就完全可以,
请管理员看看, 是程序的问题,还是我设置上的问题?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| 老枫树 发表于 2010-9-27 22:42:33 | 显示全部楼层
是不是我下载的文件不对?
我晚上下的文件啊~
回复

使用道具 举报

littlehz 发表于 2010-9-27 23:02:53 | 显示全部楼层
不允许对同一选项重复投票,当然就不能对同一个选项重复投票了,其他的选项可以投票。
可以参考下这个逻辑 https://discuz.dismall.com/thread-1909718-1-1.html

后台的语言提示不是很友好导致不能快速理解含义,这儿我们会继续完善
回复

使用道具 举报

 楼主| 老枫树 发表于 2010-9-27 23:19:58 | 显示全部楼层
本帖最后由 老枫树 于 2010-9-27 23:30 编辑

回复 littlehz 的帖子

我看了这贴中的说明,跟我理解也是一样。只是我现在不能实现,为什么在下一个1分钟内为什么不再为同一选项进行投票?
按我图片上的设置,我应该在1分钟内对5个选项其中的任意一个都可以进行最多1次投票,这样也完全合理,
能够相当于一张选票上有10个人只可以选5个那样的效果。

但现在是在这一分钟结束后的第二个的一分钟中,要再进行新一轮的投票,却无法再进行投票~提示无法对同一个选项投票~
那该如何设置?
回复

使用道具 举报

 楼主| 老枫树 发表于 2010-9-27 23:23:58 | 显示全部楼层
littlehz 发表于 2010-9-27 23:02
不允许对同一选项重复投票,当然就不能对同一个选项重复投票了,其他的选项可以投票。
可以参考下这个逻辑 ...

那是在一分钟内吧, 在下一分钟中,应该又可以进行投票了吧?
回复

使用道具 举报

littlehz 发表于 2010-9-28 08:44:00 | 显示全部楼层
回复 老枫树 的帖子

这种情况暂时不能实现,下个版本改进
回复

使用道具 举报

lilo1976 发表于 2010-10-8 12:26:05 | 显示全部楼层
本帖最后由 lilo1976 于 2010-10-8 12:26 编辑

将function_poll.php文件中以下代码删除
临时的办法,出了问题不负责
170-178行
  1.                 //        if($haverepeat) {
  2.                 //                if(!empty($poll_setting['errordetail'])) {
  3.                 //                        $customlang = customlang('poll_choice_haverepeat', null, $_G['cache']['poll_setting'], 'poll/message');
  4.                 //                        showmessage($customlang);
  5.                 //                } else {
  6.                 //                        $customlang = customlang('poll_vote_error', null, $_G['cache']['poll_setting'], 'poll/message');
  7.                 //                        showmessage($customlang);
  8.                 //                }
  9.                 //        }
复制代码
回复

使用道具 举报

littlehz 发表于 2010-10-8 12:46:48 | 显示全部楼层
回复 lilo1976 的帖子

你这样弄等于就是不开重复限制
回复

使用道具 举报

lilo1976 发表于 2010-10-9 07:48:22 | 显示全部楼层
本帖最后由 lilo1976 于 2010-10-9 07:54 编辑

现在我把

  1.                         //$lastpolldate = getlastpolldate($cookiekey, $poll_setting, $choice_arr, 'cookie');
  2.                         //checkinlastdate($lastpolldate, $poll_setting, 'username');
复制代码
删除,这样在用户名验证时不再进行cookie验证(还在进一步研究,希望不用删除)


168行

  1.                         $haverepeat = DB::result_first('SELECT choiceid FROM '.DB::table('poll_value')." WHERE choiceid='".reset($choice_arr)."' AND $wheresql ORDER BY dateline DESC LIMIT 1");
复制代码
下面添加

  1.                         $haverepeat_time = DB::result_first('SELECT dateline FROM '.DB::table('poll_value')." WHERE choiceid='".reset($choice_arr)."' AND $wheresql ORDER BY dateline DESC LIMIT 1");
  2.                         $haverepeat_time = intval($_G['timestamp'] - $haverepeat_time);
  3.                         
  4.                         if( $haverepeat_time > ( intval($poll_setting['limittime']) * 60)) {
  5.                         $haverepeat ="";
  6.                         }
复制代码
这样就在用户验证之前判断是否超过时间间隔限制。

我只采用了用户名验证,其他没试验。
之前的方法的确是太不靠谱,这个应该好点吧,就是服务器负担太重,不过我的投票群小,都是本地的。

谢谢楼上!
回复

使用道具 举报

 楼主| 老枫树 发表于 2010-10-9 09:34:46 | 显示全部楼层
感谢楼上的支持,这官方已把这一功能在下一个版本中改进,
很感谢你~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-27 10:18 , Processed in 0.027834 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表