Advertisement
Guest User

Untitled

a guest
Apr 11th, 2016
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. <?php
  2. //функция для работы с БД
  3. function db(){
  4. $db_host = 'localhost';
  5. $db_name = 'db1';
  6. $db_username = 'root';
  7. $db_password = '';
  8.  
  9. $db_conn_str = "mysql:host=$db_host;dbname=$db_name";
  10.  
  11.  
  12. $dbh = new PDO($db_conn_str, $db_username, $db_password, array(
  13. PDO::ATTR_AUTOCOMMIT => false,
  14. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  15. PDO::ATTR_CASE => PDO::CASE_LOWER,
  16. PDO::MYSQL_ATTR_INIT_COMMAND => 'set names cp1251',
  17. ));
  18. return $dbh;
  19. }//db
  20.  
  21. //функция возвращает всю информацию о всех имеющихся студентах
  22. function get_all_info_of_students(){
  23. if (is_dir("labs")) {
  24. $dir='labs';
  25. $i=0;
  26. $files_and_dirs = scandir($dir);}
  27. foreach ($files_and_dirs as $idx=>$dir_or_file){
  28. if (is_dir("labs/".$dir_or_file)&&$dir_or_file!='.'&&$dir_or_file!='..'){
  29. $dirs[$i]=$dir_or_file;
  30. $i++;
  31. //echo $dir_or_file;
  32. }
  33. }
  34. //if (isset($_GET['name_of_student'])){
  35. //$login=$_GET['name_of_student'];}else $login='admin';
  36. foreach($dirs as $id => $login) {
  37. $students[$id]['name']=$login;
  38. $i=0;
  39. $labs=[];
  40. $get=[];
  41. $sql=false;
  42. $lines = file("labs/$login/".$login.'.txt');
  43. foreach($lines as $idx => $line) {
  44. if (preg_match('/^Лабораторная №([\0-9#]+)/', $line, $matches)) {
  45. if ($sql) {$sql=false;$i++;}
  46. $get[$i]['lab']=$matches[1];
  47. }
  48. if (preg_match('/^Задание №([\0-9#]+)/', $line, $matches)) {
  49. $get[$i]['task']=$matches[1];
  50. $get[$i]['date']=$lines[$idx+1];
  51. $get[$i]['otvet']=$lines[$idx+2];
  52. }
  53. if (preg_match('/^\s*select/', $line)) $sql=true;
  54. //if ($sql&&preg_match('/^Лабораторная №/',$line)) {$sql=false;$i++;};
  55. if ($sql) $get[$i]['sql'].=$line;
  56. }
  57. for ($i=0;$i<sizeof($get);$i++){
  58. $labs[$i]=$get[$i]['lab'];
  59. }
  60. if ($labs!=NULL) sort($labs);
  61. $labs=array_unique($labs);
  62. $students[$id]['labs']=$labs;
  63. $students[$id]['lab_with_tasks']=$get;
  64. //var_dump($labs);
  65. }//foreach students
  66. //var_dump($students);
  67. echo(json_encode($students));
  68. }//get_all_info_of_students
  69. //Возвращает данные для compareRows
  70. function checkTask(){
  71. $s=new settings;
  72. $s->get_file("settings.txt");
  73. $color_sovpav=$s->color_sovpav;
  74. $color_your=$s->color_your;
  75. $color_true=$s->color_true;
  76. $max_count_sovpav=$s->max_count_sovpav;
  77. $dbh=db();
  78. $rows[1]=getRows($dbh,$_REQUEST['query']);
  79. $rows[2]=getRows($dbh,$_REQUEST['right_sql']);
  80. $settings['color_sovpav']=$color_sovpav;
  81. $settings['color_your']=$color_your;
  82. $settings['color_true']=$color_true;
  83. $settings['max_count_sovpav']=$max_count_sovpav;
  84. $params['rows']=$rows;
  85. $params['settings']=$settings;
  86. return $params;
  87. }//checkTask
  88.  
  89. $act=$_GET['action'];
  90. $act_post=$_POST['action'];
  91.  
  92. if ($act_post=='getLabs'){//загружает меню лабораторных и заданий
  93. require_once('utils2.php');
  94. $arr = readLabs();
  95. //var_dump($labs);
  96. echo(json_encode($arr));
  97. }
  98. if ($act=='get_all_info_of_students'){//Cроит список студентов
  99. //Cтроит список лабораторных заданного студента по его номеру
  100. //Cтроит таблицу лабораторной по ее номеру
  101. get_all_info_of_students();
  102. }
  103. if ($act_post=='right_otvet'){
  104. require_once('utils2.php');
  105. $dbh=db();
  106. echo(json_encode(getRows($dbh,$_REQUEST['right_sql'])));
  107. }
  108. if ($act=='your_otvet'){
  109. require_once('utils2.php');
  110. $dbh=db();
  111. echo(json_encode(getRows($dbh,$_REQUEST['query'])));
  112. }
  113. if ($act_post=='checkTask'){
  114. require_once('utils2.php');
  115. require_once('settings.php');
  116. $params=checkTask();
  117. echo(json_encode($params));
  118. }
  119. if ($act_post=='saveTask'){
  120. require_once('utils2.php');
  121. require_once('settings.php');
  122. $params=checkTask();
  123. $status=compareRows($params['rows'][1],$params['rows'][2]);
  124. require_once('write.php');
  125. echo(json_encode($params));
  126. }
  127.  
  128. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement