首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [原创]请问PHP开发在线考试系统的简单实现中怎样防止用户重新刷新提交?  


  作者:cykk
  注册时间:2004-12-30
  主题/回复:41/99
  积分:688
  等级:★★★(六级)
  称号:声名鹊起

  keke9668@263.net..
  272782316
  cyxk.go1.icpcn.com

 

 发表:2005-06-27 05:19:13 阅读 2849 次 回复 2 次 得分1  |   字号 字色
[原创]请问PHP开发在线考试系统的简单实现中怎样防止用户重新刷新提交?
   请问PHP开发在线考试系统的简单实现中怎样防止用户重新刷新提交?就像站长你给的这个例子,要是别人答完了,填好资料,进行分数统计送入数据库后,就不给再次进行回答了,最好是哪台机子回答过后三两个月不能再次回答,曾经回答过的人也不能再次回答了,要是答过就会给出相应的提示!我已把源程序发到站找您你的邮箱了!敬请指教?
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-06-27 17:14:20  评分:1 

看来有两个问题:防止某个人重复答题和防止某台机器重复答题
一、如果防止某个同学重复提交(相当于重复参加考试),那太简单了。数据库里面加一个字段,来表示这个同学是否已经参加过考试了。

可以做个登陆系统,每个参加考试者使用用户名密码登陆,如果他没有参加考试,那么调出试题让其作。如果已经参加了,那么给出提示。

也可以在用户提交试题的时候,先判断一下他时候已经参加过了(判断是否已经参加过了的方法就是用上面的一个字段,比如,如果已经参加过了,字段值为1,否则为0。或者不用一个新字段。直接看其成绩,如果这人成绩不为0没,那说明已经有成绩了,就不能再做了),如果参加过了,就不再提交。如果没有参加过,就进行评定成绩并写入数据库。

二、如果要让某台机器一段时间之内只能答题一次,那么可以通过记录IP地址的方法(这种做法只适用于局域网,也就是内网,因为局域网用户使用同一个IP出口,无法区别每一个用户)。这么做得考虑清楚确实有必要才行。因为有人可能在公共办公室的机器或者机房的机器做题,完之后又有下一个人来做,如果限制了IP,那么这个机器上只能有一个人做题,其他人不能用。除非更换IP。
 这种情况下,建立一个表用来存放IP地址,或者用户名与IP地址的对应关系。每有一个用户登录到系统,那么先查看一下其IP是否已经被使用,如果已经被使用,则提示无法答题。如果没有被使用,那么可以答题。
 2#楼  
 
  回复人:cykk
  注册时间:2004-12-30
  主题/回复:41/99
  积分:688
  等级:★★★(六级)
  称号:声名鹊起

   
 2#楼 发表于2005-06-28 03:52:57  评分:× 

   有点思路了,谢谢!不过这几天要考试,没有多少时间来搞,等考试完之后再做做看!
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.004sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版