Added discussion feature to site.
[Assignment-Trapper.git] / upload.php
blob38056804929614d27aba55f1af70d3fa36f4fc2b
1 <?php
3 include_once("auth.php");
4 include_once("detail_lib.php");
5 //include_once("header.php");
7 if (!$_GET["sched"]) { die("No Assignment Sent"); }
9 $_GET["sched"] = mysql_real_escape_string($_GET["sched"]);
10 $_FILES["file"]["name"] = mysql_real_escape_string($_FILES["file"]["name"]);
11 $_FILES["file"]["size"] = mysql_real_escape_string($_FILES["file"]["size"]);
14 $sql = "select count(*) as count, class_id, due_date from schedule where due_date > NOW() and sched_id=".$_GET["sched"];
16 $result = mysql_query($sql);
18 if (!$result) { die("SQL ERROR"); }
20 $row = mysql_fetch_row($result);
22 if($row[0] == 0) { die("Assignment Not Open For Submission"); }
24 $deadline = $row[1];
25 $class_id = $row[2];
28 /* if assignment was late - mark assignment details as late */
29 $sql = 'select due_date-NOW() as late from schedule where sched_id = '.$_GET["sched"];
31 //echo $sql;
33 $result = mysql_query($sql);
35 if (!$result) { die("SQL ERROR: File Details For File Late"); }
37 $row = mysql_fetch_array($result);
39 if($row['late'] < 0) {
40 detail_mark_late($user_id, $_GET["sched"]);
41 detail_viewed_update($user_id, $_GET["sched"], 0, "fac");
44 /* check for correct file extension */
45 $allowedExtensions = array("c", "cpp", "c++", "h", "hpp");
46 if(!in_array(end(explode(".", $_FILES["file"]["name"])), $allowedExtensions)) { die("File Extension Not Correct"); }
48 /* check for file type */
49 //echo "File Type:".$_FILES["file"]["type"];
50 //if ($_FILES["file"]["type"] != "text/plain") { die("Incorrect File Format.<br>Must be C or C++ text file."); }
52 /* check for file size */
53 if($_FILES["file"]["size"] > 400000) { die("File Must be Smaller Than 400KB."); }
55 //echo $_FILES["file"]["tmp_name"];
57 $data = file_get_contents($_FILES["file"]["tmp_name"]);
59 $data = addslashes($data);
61 //echo "->".$data."<-";
63 $sql = 'insert into files values("", '.$_GET["sched"].','.$user_id.',"'.$data.'", "'.$_FILES["file"]["name"].'",'.$_FILES["file"]["size"].', NOW())';
65 //echo $sql;
67 $result = mysql_query($sql);
69 if (!$result) { die("SQL ERROR"); }
71 // send message to user as reciept of file
73 $uid = md5(uniqid(time()));
75 $from_name = "Assignment Trapper";
76 $from_mail = "noreply@opentextbook.info";
77 $filename = $_FILES["file"]["name"];
79 $message = "The attached file has been posted to an assignment.";
81 $header = "From: ".$from_name." <".$from_mail.">\r\n";
82 $header .= "Reply-To: ".$replyto."\r\n";
83 $header .= "MIME-Version: 1.0\r\n";
84 $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
85 $header .= "This is a multi-part message in MIME format.\r\n";
86 $header .= "--".$uid."\r\n";
87 $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
88 $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
89 $header .= $message."\r\n\r\n";
90 $header .= "--".$uid."\r\n";
91 $header .= "Content-Type: text/plain; name=\"".$filename."\"\r\n"; // use different content types here
92 //$header .= "Content-Transfer-Encoding: base64\r\n";
93 $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
94 $header .= $data."\r\n\r\n";
95 $header .= "--".$uid."--";
97 mail($user_email, "File Received", "", $header);
99 /* move to classes page */
101 if($_POST["action"] == 'ret') {
102 echo '<html><meta http-equiv="refresh" content="0;url=detail_root.php?sched='.$_GET["sched"].'&user='.$_POST["user"].'" /></html>';
103 } else {
104 echo '<html><meta http-equiv="refresh" content="0;url=detail_root.php?sched='.$_GET["sched"].'" /></html>';