2014/10/23——记一次新生账号注册的问题吧

Posted on 2014-10-23 19:27  ttop  阅读(147)  评论(0编辑  收藏  举报
可能最近比较懒的原因,感觉好久没有记录有关oj使用时的遇到相关的问题了,不是没有遇到问题只是感觉懒得写。

昨天遇到非计科软件协会会员注册不上的的问题,想顺便把前一阵的问题记一遍流水账(正在努力回忆,希望不要漏掉什么细节):

1.类UNIX系统bash漏洞修复的问题:

在9月底的一次看前辈们聊天中无意的知道了当时网上闹的沸沸扬扬的like UNIX系统爆出的bash漏洞,然后全哥直接艾特我,弄得一无所知的我无地自容,终于在在网上了了解了一阵后,终于在30号的时候找到了好博文,然后修复了一下,做了简单记录。http://blog.csdn.net/u013634961/article/details/39699035


2.新生账号批量注册的问题:

这个问题我暑假的时候就开始思考是怎么做到的,但是一直没有问全哥,直到就九月月初新生来了以后才开始真正去思考这件事。但是由于教务处的班级名单一直没有确定下来,今年新生可以选老师以后名单的确定更是推迟了很长时间,一直到九月中下旬我才拿到基本确定名单,于是开始着手这件事请。

新生账号批量注册这个问题其实原理挺简单:就是数据库导入表格里的数据.
具体点实现就是:使用python的xlrd模块从excel表中读取数据,然后把这些数据导入到mysql数据库里边。其实前辈们已经将整个操作都写成了一个python脚本,我需要做的就是根据情况修改一些值然后执行这个脚本程序就行。

当然,在此之前,我必须 要做的一件事情就是现在本地实验一边,确保无误。那么问题又来了:首先我搭建和服务器一样的环境(主要是mysql数据库的搭建和python各个模块的安装)!涉及到的知识linux下导入导出数据库,及ubuntu下安装slrd,mysqldb模块;在执行python脚本的时候遇到问题就是一个原则:缺啥装啥!

期间还因为当时用的是deeplin导致了各种数据库问题,沛爷的debian就不存在数据库的问题,搁置了一段时间,直到后来再次换成ubuntu。期间也是搞得人心烦意乱,各种想不干,哎。。。。老毛病了!

一切配置的差不多以后有出问题了:首先是因为我看不懂python代码,以至于我不知道应该修改那些地方(表格里的数据应该和mysql数据库里的字段对应起来);其次是修改完以后导入时一次只能导入一个工作簿(一个excel表中有多个工作簿,那个python脚本里有写,修改相关数据分别导入即可);再者就是因为每个工作簿是不同的老师编辑的,所以存在格式上的问题,有的工作簿导入正常,有的工作簿不能正常导入,部分工作簿在导入的的时候账号是浮点类型,无法导入;甚至出现了学号后边出现小数的情况。

其实所有问题这个问题是最头疼的,也是这个问题纠结我很久,一直到十一快结束老师亲自监督下和全哥联合,最终得以解决(期间试过各种方法:格式改成文本,使用格式刷等等.....),于是,顺利导入。但是由于看wiki然后(其实不用wiki上那一步了)导致了一个班的人导入了两次(幸好我及时发现),七十几个人一个一个的从数据库里删了,一下午欲哭无泪。至此,计科软件12个班人员注册告一段落,后续零零散散的一些个人的小问题就不再提,10月7日,整整日去年晚了可能近一个月吧,惭愧!


3.实验性质的比赛查看代码的问题:

10月17日左右吧,这都是刘老师的要求,我感觉怎么到了我这一届后台好多事(5555555),前端的事,找全哥!啪啪啪三下五除二搞定,下载源代码挂到服务器上去;

在数据库的contest表里加一个字段通过检查这个字段是0或者1来判断是否为实验性质的比赛;

第二天修复了只能在添加比赛时修改,不能在管理比赛界面修改成实验的bug;

第三天修复了数据hi眼性质的比赛显示所有人的代码都能查看的图标(但其实还是只能查看自己的代码,但是我们需要的是像练习里一样显示自己能看的图标,也只能看自己的代码)的bug;

此问题均是全哥完成源代码的修改,我只是干点体力活。


4.非计科软件的会员注册问题:

10月22号的问题,非计科软件的会员注册时填完信息点击提交以后浏览器一片空白,没有任何反应,然后登陆不上;查看数据库里,没有。证明没有注册成功。

原因:昵称一栏的限制字符为21,而注册规范汉字较多(昵称:ACM2014+专业班级简称+姓名),超了!

涉及知识:

常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字)。
GBK、GB2312收编的汉字占2个字节。
我们用的是utf-8的占三个字节,超了!解决方案就是改!

此事也是全哥改的代码,我还是干体力活儿,这事儿我暂时也还干不了。