PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/sys/system_sql.php

https://github.com/Devil399/aurora-online-judge
PHP | 116 lines | 96 code | 17 blank | 3 comment | 37 complexity | 752c5820693bc68a29fd825f1e73fdf2 MD5 | raw file
  1. <?php
  2. function _md5($str){ return $str; } // no hash
  3. function mysql_initiate(){
  4. global $mysql_hostname,$mysql_username,$mysql_password,$mysql_database,$admin,$ajaxlogout,$sessionid,$admin_teamname,$admin_password;
  5. $link = mysql_connect($mysql_hostname,$mysql_username,$mysql_password);
  6. if(!$link){ $_SESSION["message"][] = "SQL Error : Could Not Establish Connection."; return; }
  7. if(!mysql_select_db($mysql_database)){
  8. mysql_query("CREATE DATABASE ".$mysql_database);
  9. if(!mysql_select_db($mysql_database)){ $_SESSION["message"][] = "SQL Error : Could Not Select Database."; return; }
  10. }
  11. $data = mysql_list_tables($mysql_database); $table = array(); if(is_resource($data)) while($temp=mysql_fetch_row($data)) $table[] = $temp[0];
  12. if(!in_array("teams",$table)){ mysql_query("CREATE TABLE teams (tid int not null primary key auto_increment,teamname tinytext,teamname2 tinytext,pass tinytext,status tinytext,score int,penalty bigint,name1 tinytext,roll1 tinytext,branch1 tinytext,email1 tinytext,phone1 tinytext,name2 tinytext,roll2 tinytext,branch2 tinytext,email2 tinytext,phone2 tinytext,name3 tinytext,roll3 tinytext,branch3 tinytext,email3 tinytext,phone3 tinytext,platform text,ip text,session tinytext,gid int not null)"); }
  13. if(!in_array("problems",$table)){ mysql_query("CREATE TABLE problems (pid int not null primary key auto_increment,code tinytext,name tinytext,type tinytext,status tinytext,pgroup tinytext,statement longtext,image blob,imgext tinytext,input longtext,output longtext,timelimit int,score int,languages tinytext,options tinytext)"); }
  14. if(!in_array("runs",$table)){ mysql_query("CREATE TABLE runs (rid int not null primary key auto_increment,pid int,tid int,language tinytext,name tinytext,code longtext,time tinytext,result tinytext,error text,access tinytext,submittime int,output longtext)"); }
  15. if(!in_array("admin",$table)){ mysql_query("CREATE TABLE admin (variable tinytext,value longtext)"); }
  16. if(!in_array("logs",$table)){ mysql_query("CREATE TABLE logs (time int not null primary key,ip tinytext,tid int,request tinytext)"); }
  17. if(!in_array("clar",$table)){ mysql_query("CREATE TABLE clar (time int not null primary key,tid int,pid int,query text,reply text,access tinytext,createtime int)"); }
  18. if(!in_array("groups",$table)){ mysql_query("CREATE TABLE groups (gid int not null primary key auto_increment, groupname tinytext, statusx int)"); }
  19. // If empty tables
  20. $temp = mysql_query("SELECT * FROM teams"); if(is_resource($temp) && mysql_num_rows($temp)==0){
  21. mysql_query("INSERT INTO teams (teamname,pass,status,score,name1,roll1,branch1,email1,phone1) VALUES ('".($admin_teamname)."','"._md5($admin_password)."','Admin',0,'Kaustubh Karkare','','','kaustubh.karkare@gmail.com','')");
  22. mysql_query("INSERT INTO teams (teamname,pass,status,score,name1,roll1,branch1,email1,phone1) VALUES ('ACM','"._md5($admin_password)."','Admin',0,'ACM Team','','','','')"); ###
  23. }
  24. $temp = mysql_query("SELECT * FROM problems"); if(is_resource($temp) && mysql_num_rows($temp)==0){
  25. mysql_query("INSERT INTO problems (pid,code,name,type,status,pgroup,statement,input,output,timelimit,score,languages) VALUES (1,'TEST','Squares','Ad-Hoc','Active','#00 Test','".addslashes(file_get('data/example/problem.txt'))."','".addslashes(file_get('data/example/input.txt'))."','".addslashes(file_get('data/example/output.txt'))."',1,0,'Brain,C,C++,C#,Java,JavaScript,Pascal,Perl,PHP,Python,Ruby,Text')");
  26. }
  27. $temp = mysql_query("SELECT * FROM runs"); if(is_resource($temp) && mysql_num_rows($temp)==0){
  28. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (1,1,1,'C','code','".(addslashes(file_get('data/example/code.c')))."',NULL,NULL,'public')");
  29. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (2,1,1,'C++','code','".(addslashes(file_get('data/example/code.cpp')))."',NULL,NULL,'public')");
  30. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (3,1,1,'C#','code','".(addslashes(file_get('data/example/code.cs')))."',NULL,NULL,'public')");
  31. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (4,1,1,'Java','code','".(addslashes(file_get('data/example/code.java')))."',NULL,NULL,'public')");
  32. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (5,1,1,'JavaScript','code','".(addslashes(file_get('data/example/code.js')))."',NULL,NULL,'public')");
  33. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (6,1,1,'Pascal','code','".(addslashes(file_get('data/example/code.pas')))."',NULL,NULL,'public')");
  34. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (7,1,1,'Perl','code','".(addslashes(file_get('data/example/code.pl')))."',NULL,NULL,'public')");
  35. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (8,1,1,'PHP','code','".(addslashes(file_get('data/example/code.php')))."',NULL,NULL,'public')");
  36. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (9,1,1,'Python','code','".(addslashes(file_get('data/example/code.py')))."',NULL,NULL,'public')");
  37. mysql_query("INSERT INTO runs (rid,pid,tid,language,name,code,time,result,access) VALUES (10,1,1,'Ruby','code','".(addslashes(file_get('data/example/code.rb')))."',NULL,NULL,'public')");
  38. }
  39. $temp = mysql_query("SELECT * FROM admin"); if(is_resource($temp) && mysql_num_rows($temp)==0){
  40. mysql_query("INSERT INTO admin VALUES ('mode','Passive');");
  41. mysql_query("INSERT INTO admin VALUES ('lastjudge','0');");
  42. mysql_query("INSERT INTO admin VALUES ('ajaxrr','0');");
  43. mysql_query("INSERT INTO admin VALUES ('mode','Passive');");
  44. mysql_query("INSERT INTO admin VALUES ('penalty','20');");
  45. mysql_query("INSERT INTO admin VALUES ('mysublist','5');");
  46. mysql_query("INSERT INTO admin VALUES ('allsublist','10');");
  47. mysql_query("INSERT INTO admin VALUES ('ranklist','10');");
  48. mysql_query("INSERT INTO admin VALUES ('clarpublic','2');");
  49. mysql_query("INSERT INTO admin VALUES ('clarprivate','2');");
  50. mysql_query("INSERT INTO admin VALUES ('regautoauth','1');");
  51. mysql_query("INSERT INTO admin VALUES ('multilogin','0');");
  52. mysql_query("INSERT INTO admin VALUES ('clarpage','10');");
  53. mysql_query("INSERT INTO admin VALUES ('substatpage','25');");
  54. mysql_query("INSERT INTO admin VALUES ('probpage','25');");
  55. mysql_query("INSERT INTO admin VALUES ('teampage','25');");
  56. mysql_query("INSERT INTO admin VALUES ('rankpage','25');");
  57. mysql_query("INSERT INTO admin VALUES ('logpage','100');");
  58. mysql_query("INSERT INTO admin VALUES ('notice','Announcements\nWelcome to the Aurora Online Judge.');");
  59. }
  60. // Other Inits
  61. $data = mysql_query("SELECT * FROM admin"); if(is_resource($data)) while($temp = mysql_fetch_array($data))
  62. if(!in_array($temp["variable"],array("scoreboard"))) $admin[$temp["variable"]]=$temp["value"];
  63. if($admin["mode"]=="Active" && time()>=$admin["endtime"]){ $admin["mode"]="Disabled"; }
  64. if($admin["mode"]=="Lockdown" && $_SESSION["tid"]!=0 && $_SESSION["status"]!="Admin"){
  65. $_SESSION["message"][] = "Access Denied : You have been logged out as the contest has been locked down. Please try again again.";
  66. action_logout();
  67. $ajaxlogout=1;
  68. }
  69. if(!$admin["multilogin"] && $_SESSION["tid"] && $_SESSION["status"]!="Admin"){
  70. $sess = mysql_query("SELECT session FROM teams WHERE tid=".$_SESSION["tid"]);
  71. $sess = mysql_fetch_array($sess); $sess = $sess["session"];
  72. if($sess!=$sessionid){
  73. $_SESSION["message"][] = "Multiple Login Not Allowed.";
  74. action_logout();
  75. $ajaxlogout=1;
  76. }
  77. }
  78. if(1 || !isset($admin["adminwork"]) || $admin["adminwork"]<time()){ action_adminwork(); $admin["adminwork"]=time()+10; }
  79. return 0; // Success
  80. }
  81. function mysql_terminate(){
  82. global $admin;
  83. //if($_SESSION["status"]=="Admin") print_r($admin);
  84. foreach($admin as $key=>$value){
  85. $temp = mysql_query("SELECT * FROM admin WHERE variable='$key'");
  86. if(is_resource($temp) && mysql_num_rows($temp)>0) mysql_query("UPDATE admin SET value='".addslashes($value)."' WHERE variable='".addslashes($key)."'");
  87. else mysql_query("INSERT INTO admin VALUES ('".addslashes($key)."','".addslashes($value)."')");
  88. }
  89. $_SESSION["time"]=time();
  90. mysql_close();
  91. }
  92. function mysql_getdata($query){
  93. $t = mysql_query($query);
  94. if(!is_resource($t)) return NULL;
  95. $data = array();
  96. while($row = mysql_fetch_array($t)) $data[] = $row;
  97. return $data;
  98. }
  99. ?>