Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //функция для работы с БД
- function db(){
- $db_host = 'localhost';
- $db_name = 'db1';
- $db_username = 'root';
- $db_password = '';
- $db_conn_str = "mysql:host=$db_host;dbname=$db_name";
- $dbh = new PDO($db_conn_str, $db_username, $db_password, array(
- PDO::ATTR_AUTOCOMMIT => false,
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_CASE => PDO::CASE_LOWER,
- PDO::MYSQL_ATTR_INIT_COMMAND => 'set names cp1251',
- ));
- return $dbh;
- }//db
- //функция возвращает всю информацию о всех имеющихся студентах
- function get_all_info_of_students(){
- if (is_dir("labs")) {
- $dir='labs';
- $i=0;
- $files_and_dirs = scandir($dir);}
- foreach ($files_and_dirs as $idx=>$dir_or_file){
- if (is_dir("labs/".$dir_or_file)&&$dir_or_file!='.'&&$dir_or_file!='..'){
- $dirs[$i]=$dir_or_file;
- $i++;
- //echo $dir_or_file;
- }
- }
- //if (isset($_GET['name_of_student'])){
- //$login=$_GET['name_of_student'];}else $login='admin';
- foreach($dirs as $id => $login) {
- $students[$id]['name']=$login;
- $i=0;
- $labs=[];
- $get=[];
- $sql=false;
- $lines = file("labs/$login/".$login.'.txt');
- foreach($lines as $idx => $line) {
- if (preg_match('/^Лабораторная №([\0-9#]+)/', $line, $matches)) {
- if ($sql) {$sql=false;$i++;}
- $get[$i]['lab']=$matches[1];
- }
- if (preg_match('/^Задание №([\0-9#]+)/', $line, $matches)) {
- $get[$i]['task']=$matches[1];
- $get[$i]['date']=$lines[$idx+1];
- $get[$i]['otvet']=$lines[$idx+2];
- }
- if (preg_match('/^\s*select/', $line)) $sql=true;
- //if ($sql&&preg_match('/^Лабораторная №/',$line)) {$sql=false;$i++;};
- if ($sql) $get[$i]['sql'].=$line;
- }
- for ($i=0;$i<sizeof($get);$i++){
- $labs[$i]=$get[$i]['lab'];
- }
- if ($labs!=NULL) sort($labs);
- $labs=array_unique($labs);
- $students[$id]['labs']=$labs;
- $students[$id]['lab_with_tasks']=$get;
- //var_dump($labs);
- }//foreach students
- //var_dump($students);
- echo(json_encode($students));
- }//get_all_info_of_students
- //Возвращает данные для compareRows
- function checkTask(){
- $s=new settings;
- $s->get_file("settings.txt");
- $color_sovpav=$s->color_sovpav;
- $color_your=$s->color_your;
- $color_true=$s->color_true;
- $max_count_sovpav=$s->max_count_sovpav;
- $dbh=db();
- $rows[1]=getRows($dbh,$_REQUEST['query']);
- $rows[2]=getRows($dbh,$_REQUEST['right_sql']);
- $settings['color_sovpav']=$color_sovpav;
- $settings['color_your']=$color_your;
- $settings['color_true']=$color_true;
- $settings['max_count_sovpav']=$max_count_sovpav;
- $params['rows']=$rows;
- $params['settings']=$settings;
- return $params;
- }//checkTask
- $act=$_GET['action'];
- $act_post=$_POST['action'];
- if ($act_post=='getLabs'){//загружает меню лабораторных и заданий
- require_once('utils2.php');
- $arr = readLabs();
- //var_dump($labs);
- echo(json_encode($arr));
- }
- if ($act=='get_all_info_of_students'){//Cроит список студентов
- //Cтроит список лабораторных заданного студента по его номеру
- //Cтроит таблицу лабораторной по ее номеру
- get_all_info_of_students();
- }
- if ($act_post=='right_otvet'){
- require_once('utils2.php');
- $dbh=db();
- echo(json_encode(getRows($dbh,$_REQUEST['right_sql'])));
- }
- if ($act=='your_otvet'){
- require_once('utils2.php');
- $dbh=db();
- echo(json_encode(getRows($dbh,$_REQUEST['query'])));
- }
- if ($act_post=='checkTask'){
- require_once('utils2.php');
- require_once('settings.php');
- $params=checkTask();
- echo(json_encode($params));
- }
- if ($act_post=='saveTask'){
- require_once('utils2.php');
- require_once('settings.php');
- $params=checkTask();
- $status=compareRows($params['rows'][1],$params['rows'][2]);
- require_once('write.php');
- echo(json_encode($params));
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement