时间:2013.08.14
今天主要是完成了contest模式下private和std登陆部分的代码
1.private权限的比赛
登录时需要输入比赛所设定的密码。这里所涉及到的代码在/template/bs/contest_login.php
当输入完密码后,需要验证密码的正确与否,则上述form表单转向/private_login.php中进行验证,验证时需要从contest表读出cid对应的密码与输入密码对比,如果输入正确,则设置session[‘c’.$cid],然后跳转到对应的contest.php页面,此时就可以看到比赛的题目
2.STD权限的比赛
登录时需要输入比赛所设定的用户名和密码。这里所涉及到的代码在/template/bs/std_login.php 有form表单
当输入完密码后,需要验证用户名和密码的正确与否,则上述form表单转向/std_login.php中进行验证,验证时需要从contest_users表读出cid对应的密码和用户名与输入密码和用户名对比,如果输入正确,则设置session[‘c’.$cid],和session[contest_user_id]然后跳转到对应的contest.php页面,此时就可以看到比赛的题目
3.Std模式下退出登录
主要添加了一个链接,当std模式登陆成功后,页面上就会显示一个Logout链接,供用户退出登录,链接指向/std_logout.php文件,里面的代码主要是注销session[‘c’.$cid],和session[contest_user_id]
时间:2013.8.15
首先是对/submit.php进行了修改,使得在不同情况下,插入到solution中的user_id不一样
然后修改了/contestrank.php,使得不同比赛模式下的rank都可以查看到
再就是修改了/status.php,对于不同比赛,那么查看当前提交情况也是不同的
遗留的BUG:
Contest中的status以及ranklist还是会和外面搞混
我的想法是比赛中的姓名和昵称都不加外在链接,另外比赛中查看代码的权限还没改好
另外在比赛中提交的题目都被记入到总的表里面去了,这个还要修改
时间:2013.8.16
修改了在比赛模式中,根据不同的权限可以查看判题信息,代码
修改了在比赛模式中和普通模式时,把比赛模式提交的信息加入到USER表和PROBLEM表中,彻底将比赛和日常的信息断开
修改了userinfo中关于用户的提交问题,进一步将比赛情况和系统数据隔开
需要MCB做的事情,将TEMPLATE中的CONTESTRANK中的user和nick的链接去掉
发现的新BUG:
在比赛中显示的题目中AC和SUBMIT拉取的系统的数据,这个要改
原来写的SESSION有问题,应该改成SESSION[$CID.’CONTEST_USER_ID’],这样才能区分出不同的比赛中的USER是不一样的,因为我可能会同时登陆多个比赛
时间:2013.8.18
将原来STD时要注册的session[‘contest_user_id’]改成了session[‘contest_user_id’.$cid]
这样有助于同时参加多个比赛的设置,不会出现混乱
相应的修改的
/contest.php
/contestrank.php
/status.php
/showsorce.php
/ceinfo.php
/reinfo.php
/std_login.php
都对里面的session做了相应的修改