|
1 | 1 | <?php
|
2 | 2 | require_once('functions.php');
|
| 3 | + include('dbinfo.php'); |
3 | 4 | connectdb();
|
4 | 5 | $query = "SELECT * FROM prefs";
|
5 | 6 | $result = mysql_query($query);
|
|
17 | 18 | $query = "UPDATE solve SET lang='".$_POST['lang']."', attempts='".($fields['attempts']+1)."', soln='".mysql_real_escape_string($_POST['soln'])."', filename='".mysql_real_escape_string($_POST['filename'])."' WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')";
|
18 | 19 | }
|
19 | 20 | mysql_query($query);
|
20 |
| - $filename = "solution/".$_SESSION['username']."/".$_POST['filename']; |
21 |
| - $fp = fopen($filename, 'w'); |
22 |
| - fwrite($fp, $_POST['soln']); |
23 |
| - fclose($fp); |
24 |
| - if($_POST['lang']=='c' and $accept['c'] == 1) |
25 |
| - include('lang/c.php'); |
26 |
| - else if($_POST['lang']=='cpp' and $accept['cpp'] == 1) |
27 |
| - include('lang/cpp.php'); |
28 |
| - else if($_POST['lang']=='java' and $accept['java'] == 1) |
29 |
| - include('lang/java.php'); |
30 |
| - else if($_POST['lang']=='python' and $accept['python'] == 1) |
31 |
| - include('lang/python.php'); |
32 |
| - else |
33 |
| - header("Location: solve.php?lerror=1&id=".$_POST['id']); |
34 |
| - $res=lang_compile($filename, $_POST['id']); |
35 |
| - if($res == 1 or $res == 2) { |
36 |
| - $fp = fopen("$filename.err", 'r'); |
37 |
| - $contents = fread($fp, filesize("$filename.err")); |
38 |
| - fclose($fp); |
39 |
| - } |
40 |
| - unlink("$filename"); |
41 |
| - unlink("$filename.in"); |
42 |
| - unlink("$filename.out"); |
43 |
| - unlink("$filename.err"); |
44 |
| - if($res == 1) { |
| 21 | + $socket = fsockopen($compilerhost, $compilerport); |
| 22 | + fwrite($socket, $_POST['filename']."\n"); |
| 23 | + $soln = str_replace("\n", '$_n_$', treat($_POST['soln'])); |
| 24 | + fwrite($socket, $soln."\n"); |
| 25 | + $query = "SELECT input, output FROM problems WHERE sl='".$_POST['id']."'"; |
| 26 | + $result = mysql_query($query); |
| 27 | + $fields = mysql_fetch_array($result); |
| 28 | + $input = str_replace("\n", '$_n_$', treat($fields['input'])); |
| 29 | + fwrite($socket, $input."\n"); |
| 30 | + fwrite($socket, $_POST['lang']."\n"); |
| 31 | + $status = fgets($socket); |
| 32 | + $contents = ""; |
| 33 | + while(!feof($socket)) |
| 34 | + $contents = $contents."\n".fgets($socket); |
| 35 | + if($status == 0) { |
45 | 36 | $query = "UPDATE solve SET status=1 WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')";
|
46 | 37 | mysql_query($query);
|
47 |
| - $_SESSION['cerror'] = nl2br(trim($contents)); |
| 38 | + $_SESSION['cerror'] = trim($contents); |
48 | 39 | header("Location: solve.php?cerror=1&id=".$_POST['id']);
|
49 |
| - } else if($res == 2) { |
50 |
| - $query = "UPDATE solve SET status=1 WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')"; |
51 |
| - mysql_query($query); |
52 |
| - header("Location: solve.php?oerror=1&id=".$_POST['id']); |
53 |
| - } else if($res == 0) { |
54 |
| - $query = "UPDATE solve SET status=2 WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')"; |
55 |
| - mysql_query($query); |
56 |
| - header("Location: index.php?success=1"); |
| 40 | + } else if($status == 1) { |
| 41 | + if(trim($contents) == trim(treat($fields['output']))) { |
| 42 | + $query = "UPDATE solve SET status=2 WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')"; |
| 43 | + mysql_query($query); |
| 44 | + header("Location: index.php?success=1"); |
| 45 | + } else { |
| 46 | + $query = "UPDATE solve SET status=1 WHERE (username='".$_SESSION['username']."' AND problem_id='".$_POST['id']."')"; |
| 47 | + mysql_query($query); |
| 48 | + header("Location: solve.php?oerror=1&id=".$_POST['id']); |
| 49 | + } |
57 | 50 | }
|
58 | 51 | }
|
59 | 52 | ?>
|
0 commit comments