(三)开始在OJ上添加签到效益葡京签到送彩金

 在摸底完OJ文件下的逐条文件夹的显要功能后,大家先河往里面添加东西(其实若是知道各文件夹是干什么的后,添加东西也变得非凡不难了)

同实验室有人在用java写签到系统,正好我在求学PHP,我就在想能无法在从前学长留下来一贯没用OJ上添加一个签到功用。

一 在数据库中添加对应作用的字段。

于是乎说干就干,就找了诸多关于hustoj的作品参考。

  我们这一个学期才刚开数据库那门课,所以我也是边求学边弄那东西。。。为了避免不要求的劳动,我就仅仅只是在原边上做的丰硕,而并从未去添加表。

率先要说的是设置hustoj,因为google code被墙了,所以要去github上去下。

  根据室友的记名系统的装置,我在OJ的users表中添加了登录的处境,一周签到次数和总签到次数还有是还是不是被寻找4个
字段(后边又添加了一个签到IP)

(因为原先学长已经把OJ搭建好了,我就只是在大团结的双系统的ubuntu上装了尝试)

二 在页面添加对应的按钮

1.安装mysql

  找到下图的四面八方的文本——–html/template/bs/oj-header.php

apt-get install mysql-server mysql-client

葡京签到送彩金 1

安装的长河会有一个框,输入sql密码,按TAB切换来ok

下一场在您认为符合签到按钮的地点输入以下PHP代码

2.安装apache2

<?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;//显示未签到
        }
        ?>
apt-get install apache2

三 创立签到的PHP文件

3.安装php

 
  大家必要到主文件html下开创签到的PHP文件——-我创制的是qiandao.php

PS:超过半数小说都是设置php5,而php5好像是找不到资源,所以改成7.0也是可以安装好的

  依照OJ原小编大家照样子把头文件给拿过来 

apt-get install php7.0 libapache2-mod-php7.0
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');

4.安装hustoj

接下来开始写签到功能

sudo apt-get update
sudo apt-get install subversion
sudo svn co https://github.com/zhblue/hustoj/trunk/trunk/install hustoj
cd hustoj
sudo bash install-interactive.sh
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;
    }
}

5.注册账号

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

进入http://127.0.0.1/JudgeOnline/registerpage.php葡京签到送彩金,
注册一个账户admin,刚开端注册的账户都是普通用户。

故此我们要给它管理员权限——进入数据库,接纳jol那么些表然后进入SQL编辑情势输入

insert into privilege(user_id,rightstr) values('admin','administrator');