CentOS 6.x安装TCExam

PHP完结类似题库抽题效果

我们好,小编顾某人又重临了,近日学了一些PHP,然后就想写个容易小例子试试,于是就写了一个接近于从题库抽题的东西,几乎就是先输入必要抽题的多少,然后从数据库中私自抽取标题。
期望各位大佬轻喷。
假定小编后天有这么七个题库:
图片 1
哎?为啥要用英文?,因为自个儿,,没化解编码难题。
随后我来进展抽题:
图片 2
图片 3
这么就私下抽出了三道标题。


现行来说说自家的思绪,希望各位大佬不吝赐教。
先是要促成那个职能,首先自作者须求三个页面,多个是用户输入页面input.html,三个是后台处理页面select.php,还有一个是大错特错警告页面error.html(若是用户输入为空,只怕输入的抽题数量当先了题库的数据那么就报错),然后是数据库,数据库分为两列,一列是question,用来存放在标题,另一列是id,用于标识question

下一场对用户的输入举办判断:
图片 4


input.html页面:

<html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <form action="select.php" method="get">
        请输入要随机生成的题数:<input type="text" name="input" />
        <input type="submit" name="Submit" value="提交" />
    </form>
</html>

error.html页面:

<html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <p>您的输入有误,请重新输入!</p>
</html>

select.php页面:

<?php
    header("Content-type:text/html;charset=utf8");
    $connect=new mysqli('localhost','wy','000000','test');
    if(!$connect){
        die("数据库连接失败!");
    }                           //连接数据库
    $sql="select id from test";
    $result=$connect->query($sql);
    $array=array();
    $i=0;
    while($row=$result->fetch_row()){
        foreach($row as $val){
            $array[$i]=$val; 
            $i ++;
        }
    }                          //将题目id存放进一个数组array
    $input=$_GET['input'];    //接受用户的输入
    if(empty($input) || $input>count($array)){  //判断用户的输入是否为空或输入大于题库数量
        header("Location:error.html");    //输入有误重定向到错误提示页面
    }else{
        shuffle($array);    //将存放题目id的数组进行随机排序
        $k=0;               //用于取出rand数组中question时的id
        for($j=0;$j<$input;$j++){
            $rand=array_slice($array,0,$input);     //从数组的第一个数开始,取出用户输入数量个id存放进一个数组
            $sql2="select * from test where id='{$rand[$k]}'";  //查找rand数组中每一个id对应的question
            $result2=$connect->query($sql2);    //存放mysql语句返回的结果集
            while($row2=$result2->fetch_assoc()){
                echo $row2['question'];     //返回question对应的内容
                echo '<br />';
            }
            $k++;
        }
        $result2->free();   //释放内存
    }
    $result->free();        //释放内存
    $connect->close();      //关闭连接
?>

诸君大佬,即使你们不介意的话,作者只想要一点流量(民用博客)。

信用社培训部近期有在线考试的要求,而日前利用的在线考试的系统绝非自行评分作用,全体的考题须要人工举行批阅,功能十二分放下。为消除这一个题材,作者上网找了成百上千软件拓展测试,但成效都不是很优良,直到境遇了TCExam那款开源软件。
TCExam是基于PHP开发的在线考试系统,安装环境为LAMP。其安装十一分大概设置也不是很繁锁。

一、安装LAMP环境

虽说说tcexam必要的是lamp环境,可是官方文档中是亟需通过yum安装的,小编透过手工编译安装lamp环境后,在tcexam安装进程中碰到不少标题。所以自个儿在此地运用的是经过yum安装lamp和任何有关的软件的。

1、安装epel-release源

yum install -y epel-release;

2、安装lamp

yum install -y  gd curl ImageMagick   texlive  zbar mysql-server php httpd php-mysql libdbi-dbd-mysql php-gd php-curl memcached

③ 、修改apache配置文件

vim /etc/httpd/conf/httpd.conf

修改ServerName

ServerName localhost:80

4、设置php时区

vim /etc/php.ini

修改 date.timezone

date.timezone = "Asia/Shanghai"

五 、运转有关服务

#设置mysql服务
chkconfig mysqld on
service mysqld start

#设置apache服务
chkconfig httpd on
service httpd start

#设置memcached服务
chkconfig memcached on
service memcached start

二、下载TCExam

一 、进入网站根目录:

cd /var/www/html

贰 、到官网下载安装包

wget https://github.com/tecnickcom/tcexam/archive/master.zip

三 、解压安装包

uzip master.zip

肆 、解压出来的文书夹为“tcexam-master”,将tcexam-master目录下的文本全体平移到/var/www/html中并删除tcexam-master目录

mv ./tcexam-master/* .
rm -rf tcexam-master

三、设置mysql

依照法定文档tcexam的装置页面是可以自行新建tcexam数据库并导入起先数据的,但从实际的操作的作用来看,那么些功用基本上不可以形成这些义务。因而大家要求手工建立数据库并导入初步数据。

1、设置mysql的root密码

tcexams须要mysql的root密码无法为空,所以先安装mysql的root密码。

mysqladmin -u root password "newpassword";

”newpassword” 是你指定的mysql的root密码

② 、举行mysql建立数据库

mysql -uroot -p;
#输入你设置的密码

#新建数据库
create database tcexam;

#退出mysql
quit

③ 、导入开首化数据

1)、进入tcexam安装页目录
cd /var/www/html/install
2)、导入开头数据
mysql -uroot -p tcexam < mysql_db_structure.sql
mysql -uroot -p tcexam < db_data.sql

单独实施每一条语句并回车,按指示输入密码

④ 、关闭主机的selinux 并清空iptabels

① 、修改selinux配置文件

vim /etc/selinux/config
#修改SELINUX=enforcing
SELINUX=disabled

保留退出

② 、一时半刻关张selinx

setenforce 0

3、清空iptables 并保存

iptables -F
service iptables save

相关文章