(三)开始在OJ上添加签到功能

 在了解完OJ文件下的各个文件夹的主要作用后,我们开始往里面添加东西(其实只要知道各文件夹是干什么的后,添加东西也变得非常简单了)

一 在数据库中添加对应功能的字段。

  我们这个学期才刚开数据库这门课,所以我也是边学习边弄这东西。。。为了避免不必要的麻烦,我就仅仅只是在原边上做的添加,而并没有去添加表。

  根据室友的签到系统的设置,我在OJ的users表中添加了签到的状态,一周签到次数和总签到次数还有是否被搜索4个 字段(后面又添加了一个签到IP)

二 在页面添加对应的按钮

  找到下图的所在的文件--------html/template/bs/oj-header.php

然后在你觉得适合签到按钮的地方输入以下PHP代码

<?php 
        $_qds = mysql_fetch_array(mysql_query("SELECT QD_state FROM users WHERE user_id='".$_SESSION['user_id']."'"));    
        if($_qds['QD_state']==0){//未签到状态
            echo "<a class='btn' href='qiandao.php'>";
                        echo "<i class='icon-ok'></i>";//这个是签到的图标,需要更改的去html/bootstap/css/bootstrap.css找对应的图标更改
              //我试过自己加图片进去,可是没有成功(我好菜啊T_T)
echo $MSG_QD;//显示签到两个字 }else{//签到后的状态 echo "<a class='btn'>"; echo "<i class='icon-ok'></i>"; echo $MSG_YQD;//显示未签到 } ?>

三 创建签到的PHP文件

    我们需要到主文件html下创建签到的PHP文件-------我创建的是qiandao.php

  根据OJ原作者我们照样子把头文件给拿过来 

header('content-type:text/html;charset=utf-8;');//后面发现弹窗JS会乱码加上的。
require_once('./include/cache_start.php'); require_once('./include/db_info.inc.php'); require_once('./include/setlang.php');

然后开始写签到功能

if(!isset($_SESSION['user_id'])){
    echo "<script type='text/javascript' charset='utf-8'>alert('请先登录!');location.href='loginpage.php'</script>";
    exit;
}
$row = mysql_fetch_array(mysql_query("SELECT QD_state FROM users WHERE  user_id='".$_SESSION['user_id']."'"));
if($row['QD_state']!=0){//判断登录状态
    echo "<script type='text/javascript' charset='utf-8'>alert('你已经签过到了!快去A题吧!');location.href='problemset.php';</script>";
    exit();
}else{
    $row = mysql_fetch_array(mysql_query("SELECT QD_ip FROM users WHERE  QD_ip='{$_SERVER["REMOTE_ADDR"]}'"));
    if(empty($row['QD_ip'])){
        mysql_query("UPDATE users SET QD_state=1,
                      QD_num_week=QD_num_week+1,
                      QD_num_sum=QD_num_sum+1,
                      QD_ip='{$_SERVER["REMOTE_ADDR"]}',
                       money=money+2       //这里后来仿照南阳OJ写了个签到得东西的功能~ ~
                      WHERE user_id='".$_SESSION['user_id']."'AND QD_state=0"); echo "<script type='text/javascript' charset='utf-8'>alert('恭喜你签到成功!快去A题吧!!!');location.href='problemset.php';</script>"; exit; }else{ echo "<script type='text/javascript' charset='utf-8'>alert('这个IP已经被使用了,请换个IP再来签到!');history.back();</script>"; exit; } }

到此~签到功能就可以使用了。(PS:关于数据库的整点更新什么的,我此时还不会做就丢给同学用JAVA写了)

转载于:https://www.cnblogs.com/OMG-By/p/6013938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值