PageRenderTime 47ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/AddToDB.php

https://github.com/alexeiemam/GnT
PHP | 1354 lines | 1311 code | 28 blank | 15 comment | 16 complexity | d72b89cc572a793f669f34788e03f30d MD5 | raw file
  1. <?php
  2. include('_CHECK.php');
  3. include_once('_inc_sanitation.php');
  4. function ArchiveTarget($tid)
  5. {
  6. $query =
  7. "INSERT INTO targets_archive
  8. (Target_ID, Student_ID, set_by, subject, target_desc, start, modder, end, timestamp, status, note)
  9. SELECT Target_ID, Student_ID, set_by, subject, target_desc, start, modder, end, timestamp, status, note
  10. FROM targets
  11. WHERE target_ID ='$tid'
  12. LIMIT 1";
  13. $result = mysql_query($query) or die (mysql_error()) ;
  14. return true;
  15. }
  16. function ActivityUpdate($action, $actedOn, $actor, $actedOnID)
  17. {
  18. $timestamp = date("Y-m-d H:i:s");
  19. $query = "
  20. INSERT INTO activities (action, actedOn, actor, actedOnID, tstamp)
  21. VALUES('$action', '$actedOn', '$actor', '$actedOnID','$timestamp' )";
  22. $result = mysql_query($query) or die (mysql_error()) ;
  23. return true;
  24. }
  25. function checkUID($ID, $table, $column)
  26. {
  27. $query = "Select count(*) from $table where $column='$ID'";
  28. $result = mysql_query($query) or die (mysql_error()) ;
  29. $result = mysql_result($result, 0);
  30. While ($result > 0)
  31. {
  32. $ID = $ID."_".($result+1);
  33. $query = "Select count(*) from $table where $column='$ID'";
  34. $result = mysql_query($query) or die (mysql_error()) ;
  35. $result = mysql_result($result, 0);
  36. }
  37. return $ID;
  38. }
  39. function printStatus($title, $info, $buttonCode=NULL, $colour=NULL)
  40. {
  41. echo "<div style=\"border: 3px #99B3B4 double; margin 0;\">
  42. <div class='input' style=\"border: 1px #99B3B4 dashed; text-align:center; ";
  43. if (isset($colour))
  44. echo "color: $colour;";
  45. echo " \">
  46. <big>$title</big>
  47. </div>
  48. <div class='input' style=\"border: 1px #99B3B4 dashed; text-align:center; \">
  49. $info
  50. </div>";
  51. if (isset($buttonCode))
  52. {echo "<div class='input' style=\"border: 1px #99B3B4 dashed;text-align:center; margin: 0; \">
  53. $buttonCode
  54. </div>";}
  55. echo "</div>";
  56. }
  57. function sessionError()
  58. {
  59. $error = "LOGIN TIMEOUT";
  60. $colour = "red";
  61. $info = "Please <a href='logout.php'>logout</a> and re-enter your email address and password.";
  62. printStatus($error, $info, NULL, $colour);
  63. }
  64. if($seshRights>0){
  65. $changeWhat = (sanitize_sql_string($_GET['changeWhat']));
  66. switch($changeWhat) {
  67. case "TargetMod":
  68. if ($seshRights>1){
  69. $TargetID = (sanitize_sql_string($_GET['targetID']));
  70. $newStatus = (sanitize_sql_string($_GET['newStatus']));
  71. $resType = (sanitize_sql_string($_GET['resType']));
  72. $idx = (sanitize_sql_string($_GET['idx']));
  73. $val = (sanitize_sql_string($_GET['val']));
  74. $ong = (sanitize_sql_string($_GET['ong']));
  75. $ach = (sanitize_sql_string($_GET['ach']));
  76. $dro = (sanitize_sql_string($_GET['dro']));
  77. $notes = (sanitize_sql_string($_GET['notes']));
  78. $forma = (sanitize_sql_string($_GET['forma']));
  79. $DateSwitch = date("Y-m-d");
  80. $d8time=date("Y-m-d H:i:s");
  81. $actor = $_SESSION['TID'];
  82. $query=
  83. "UPDATE targets
  84. SET status='$newStatus', end='$DateSwitch', timestamp='$d8time', modder='$actor'
  85. WHERE Target_ID='$TargetID';";
  86. $result = mysql_query($query) or die (mysql_error()) ;
  87. // ARCHIVE
  88. ArchiveTarget($TargetID);
  89. /// ACTIVITY UPDATE ///
  90. $action = "Update-$newStatus";
  91. $actedOn = "Target";
  92. $actor = $_SESSION['TID'];
  93. $actedOnID = $TargetID;
  94. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  95. //////////////////////
  96. include('getResults.php');
  97. } else sessionError();
  98. break;
  99. case "TargetCorrectInit":
  100. if ($seshRights>1){
  101. $TargetID = (sanitize_sql_string($_GET['targetID']));
  102. $resType = (sanitize_sql_string($_GET['resType']));
  103. $idx = (sanitize_sql_string($_GET['idx']));
  104. $val = (sanitize_sql_string($_GET['val']));
  105. $uid = (sanitize_sql_string($_GET['sid']));
  106. $query =
  107. "SELECT student_ID, set_by, start, end, status, subject, target_desc, note
  108. FROM targets
  109. WHERE target_ID='$TargetID'";
  110. $result = mysql_query($query) or die (mysql_error()) ;
  111. echo "<div style=\"border: 3px #99B3B4 double; margin 0; padding 0; width=auto;\">
  112. <div class='input' style=\"border: 1px #99B3B4 dashed;text-align:center; \"><big>EDITING TARGET</big></div> ";
  113. /* Trying to load selector
  114. onload=\"function () {
  115. calSE = new dhtmlxCalendarObject('target_startdate$uid', true, {isMonthEditable: true, isYearEditable: true});
  116. calEE = new dhtmlxCalendarObject('target_enddate$uid', true, {isMonthEditable: true, isYearEditable: true});
  117. } \"
  118. */
  119. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  120. {
  121. $initStudentID=trim($row['student_ID']);
  122. $initTeacherID=trim($row['set_by']);
  123. $initTargDesc=trim($row['target_desc']);
  124. $initSubject=trim($row['subject']);
  125. $initStatus=trim($row['status']);
  126. $initStart=trim($row['start']);
  127. $initEnd=trim($row['end']);
  128. $initNote = trim($row['note']);
  129. }
  130. include_once('_inc_yearFinder.php');
  131. $forma = (sanitize_sql_string($_GET['forma']));
  132. if ($forma != 'true'){
  133. $bit1 = "Stat='Active'";
  134. $StudentList = lowerSchoolAged();
  135. $bit2 = "Student_ID IN ($StudentList)";
  136. $formerbit = "$bit1 AND $bit2";
  137. $formerbit = "WHERE $formerbit";
  138. }
  139. else{
  140. if ($seshRights < 4) {$formerbit = "Stat='Active'"; $formerbit = "WHERE $formerbit";}
  141. else {$formerbit = "";}
  142. }
  143. $StudentsQ =
  144. "SELECT
  145. Student_ID,
  146. CONCAT(first_name, ' ', last_name) as 'Student'
  147. FROM students
  148. $formerbit
  149. ORDER BY first_name, last_name";
  150. $SubjectsQ =
  151. "Select Subject
  152. FROM subjects Group By Subject";
  153. $TeachersQ =
  154. "Select Teacher_ID, CONCAT(First_Name, ' ', Last_Name) as 'Set By Teacher'
  155. FROM teachers
  156. WHERE Stat < 3
  157. ORDER BY first_name, last_name";
  158. echo "<FORM name=\"EditMode\">";
  159. echo "<SELECT class='input' name=\"Students$uid\" id=\"Students$uid\">";
  160. $result2 = mysql_query($StudentsQ) or die (mysql_error()) ;
  161. while($row = mysql_fetch_array($result2, MYSQL_ASSOC))
  162. {
  163. echo "<option ";
  164. if (trim($row['Student_ID']) == $initStudentID)
  165. echo "selected ";
  166. echo "value='".$row['Student_ID']."'>".$row['Student'] ;
  167. }
  168. echo "</SELECT>";
  169. echo "<SELECT class='input' name=\"Teachers$uid\" id=\"Teachers$uid\">";
  170. $result2 = mysql_query($TeachersQ) or die (mysql_error()) ;
  171. while($row = mysql_fetch_array($result2, MYSQL_ASSOC))
  172. {
  173. echo "<option ";
  174. if (trim($row['Teacher_ID']) == $initTeacherID)
  175. echo "selected ";
  176. echo "value='".$row['Teacher_ID']."'>".$row['Set By Teacher'] ;
  177. }
  178. echo "</SELECT>";
  179. echo "<SELECT class='input' name=\"Status$uid\" id=\"Status$uid\">";
  180. $statuses = array('Ongoing', 'Achieved', 'Dropped');
  181. for ( $i = 0; $i< sizeOf($statuses); $i+=1) {
  182. echo "<option ";
  183. if ($statuses[$i] == $initStatus)
  184. echo "selected ";
  185. echo "value='".$statuses[$i]."'>".$statuses[$i] ;
  186. }
  187. echo "</SELECT>";
  188. echo "<hr>";
  189. echo "<SELECT class='input' name=\"Subjects$uid\" id=\"Subjects$uid\">";
  190. $result2 = mysql_query($SubjectsQ) or die (mysql_error()) ;
  191. // Using Init Selected Rather than Match Select
  192. // Because original subject list was different
  193. echo "<option value='$initSubject' Selected>$initSubject";
  194. while($row = mysql_fetch_array($result2, MYSQL_ASSOC))
  195. {
  196. echo "<option ";
  197. /*
  198. if (trim($row['Subject']) == $initSubject)
  199. echo "selected ";
  200. */
  201. echo "value='".$row['Subject']."'>".$row['Subject'] ;
  202. }
  203. echo "</SELECT>";
  204. echo "<label for=\"target_desc_edit\">Target Description</label>
  205. <textarea name=\"target_desc_edit\" id=\"target_desc_edit$uid\" class=\"input\" cols=\"50\" rows=\"8\" wrap=\"virtual\" >$initTargDesc</textarea>";
  206. echo "<label for=\"target_startdate$uid\">Target Start Date</label>
  207. <input type=\"text\" class=\"input\" id=\"target_startdate$uid\" name=\"target_startdate\" value=\"$initStart\" size=\"10\" maxlength=\"10\">";
  208. echo "<label for=\"target_startdate$uid\">Target Completion Date (if applicable))</label>
  209. <input type=\"text\" class=\"input\" id=\"target_enddate$uid\" name=\"target_enddate\" value=\"$initEnd\" size=\"10\" maxlength=\"10\">";
  210. echo "<label for=\"target_note_edit\">Target Note</label>
  211. <textarea name=\"target_note_edit\" id=\"target_note_edit$uid\" class=\"input\" cols=\"50\" rows=\"1\" wrap=\"virtual\" >$initNote</textarea>";
  212. echo "<div class='input' style=\"border: 1px #99B3B4 dashed;text-align:center; padding:4px; margin:0px;\">
  213. <b><a href=# onclick=\"
  214. correctTargetEnd(
  215. '$TargetID',
  216. document.getElementById('Students$uid').value,
  217. document.getElementById('Teachers$uid').value,
  218. document.getElementById('Subjects$uid').value,
  219. document.getElementById('target_desc_edit$uid').value,
  220. document.getElementById('target_startdate$uid').value,
  221. document.getElementById('target_enddate$uid').value,
  222. '$initStatus',
  223. document.getElementById('Status$uid').value,
  224. document.getElementById('target_note_edit$uid').value,
  225. '$resType',
  226. '$idx',
  227. '$val',
  228. document.Arc.Opts[0].checked,
  229. document.Arc.Opts[1].checked,
  230. document.Arc.Opts[2].checked,
  231. document.Arc.Opts[3].checked,
  232. document.Arc.Opts[4].checked,
  233. '$resType"."_Result_Div');
  234. return false;\">
  235. SAVE</a></b> Corrections to Target
  236. |-----|
  237. <b><a href=# onclick=\"
  238. showResultsOr(
  239. '$idx',
  240. '$resType',
  241. '$val',
  242. document.Arc.Opts[0].checked,
  243. document.Arc.Opts[1].checked,
  244. document.Arc.Opts[2].checked,
  245. document.Arc.Opts[3].checked,
  246. document.Arc.Opts[4].checked,
  247. '$resType"."_Result_Div');
  248. return false;\">
  249. CANCEL</a></b> without saving changes
  250. </div>";
  251. echo "</div>";
  252. }else sessionError();
  253. break;
  254. case "TargetCorrectFin":
  255. if ($seshRights>1){
  256. $resType = (sanitize_sql_string($_GET['resType']));
  257. $idx = (sanitize_sql_string($_GET['idx']));
  258. $val = (sanitize_sql_string($_GET['val']));
  259. $ong = (sanitize_sql_string($_GET['ong']));
  260. $ach = (sanitize_sql_string($_GET['ach']));
  261. $dro = (sanitize_sql_string($_GET['dro']));
  262. $notes = (sanitize_sql_string($_GET['notes']));
  263. $forma = (sanitize_sql_string($_GET['forma']));
  264. $TarID = (sanitize_sql_string($_GET['TarID']));
  265. $StuID = (sanitize_sql_string($_GET['StuID']));
  266. $TeachID = (sanitize_sql_string($_GET['TeachID']));
  267. $Subj = (sanitize_sql_string($_GET['Subj']));
  268. $note = (sanitize_sql_string($_GET['note']));
  269. $TargetDesc = (sanitize_sql_string($_GET['TargetDesc']));
  270. $start = (sanitize_sql_string($_GET['TargetDate1']));
  271. $end = (sanitize_sql_string($_GET['TargetDate2']));
  272. $initialStatus = (sanitize_sql_string($_GET['initialStatus']));
  273. $finalStatus = (sanitize_sql_string($_GET['finalStatus']));
  274. $d8time=date("Y-m-d H:i:s");
  275. $actor = $_SESSION['TID'];
  276. if (!(($finalStatus == 'Ongoing')
  277. || ($finalStatus == 'Achieved')
  278. || ($finalStatus == 'Dropped')))
  279. $finalStatus = 'Ongoing';
  280. if (!(isValidDate($start))) $start = date("Y-m-d");
  281. if (($finalStatus == 'Ongoing'))
  282. {$endBit="end=NULL,";}
  283. else
  284. if (!(isValidDate($end)))
  285. {
  286. $end = date("Y-m-d");
  287. $endBit = "end='$end',";
  288. }
  289. else {$endBit = "end='$end',";}
  290. $query=
  291. "UPDATE targets
  292. SET Target_desc='$TargetDesc',
  293. Student_ID='$StuID',
  294. Set_By='$TeachID',
  295. Subject='$Subj',
  296. note='$note',
  297. start='$start',
  298. $endBit
  299. modder='$actor',
  300. timestamp='$d8time',
  301. Status='$finalStatus'
  302. WHERE Target_ID='$TarID'
  303. LIMIT 1";
  304. $result = mysql_query($query) or die (mysql_error());
  305. // ARCHIVE
  306. ArchiveTarget($TarID);
  307. /// ACTIVITY UPDATE ///
  308. $action = "Edit";
  309. $actedOn = "Target";
  310. $actor = $_SESSION['TID'];
  311. $actedOnID = $TarID;
  312. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  313. //////////////////////
  314. include ('getResults.php');
  315. }
  316. else sessionError();
  317. break;
  318. case "TargetAdd":
  319. if ($seshRights>1){
  320. $emptyFields = FALSE;
  321. $emptyErrors = "";
  322. $StudentID = (sanitize_sql_string($_GET['stuID']));
  323. $rnd = (sanitize_sql_string($_GET['sid']));
  324. $TeacherID = (sanitize_sql_string($_GET['teachID']));
  325. $Target = (sanitize_sql_string($_GET['targetDesc']));
  326. $DateSet = (sanitize_sql_string($_GET['targetDate']));
  327. $subject = (sanitize_sql_string($_GET['subject']));
  328. $note = (sanitize_sql_string($_GET['note']));
  329. $repeatDesc = (sanitize_sql_string($_GET['repeatDesc']));
  330. if (($seshRights<3)&&($TeacherID != $_SESSION['TID']))
  331. {
  332. $emptyFields = TRUE;
  333. $emptyErrors = $emptyErrors."TeacherID Mismatch";
  334. }
  335. if ($StudentID == '')
  336. {
  337. $emptyFields = TRUE;
  338. $emptyErrors = $emptyErrors."<hr><strong>Student ID</strong> is missing (Select a student from the dropdown list)";
  339. }
  340. if ($TeacherID == '')
  341. {
  342. $emptyFields = TRUE;
  343. $emptyErrors = $emptyErrors."<hr>Teacher information is missing";
  344. }
  345. if ($Target == '')
  346. {
  347. $emptyFields = TRUE;
  348. $emptyErrors = $emptyErrors."<hr><strong>Description</strong> of target is missing";
  349. }
  350. if ($DateSet == '')
  351. {
  352. $emptyFields = TRUE;
  353. $emptyErrors = $emptyErrors."<hr>Target start date is missing";
  354. }
  355. else
  356. {
  357. if (!(isValidDate($DateSet)))
  358. {
  359. $emptyFields = TRUE;
  360. $emptyErrors = $emptyErrors."<hr><strong>$DateSet</strong> is not a valid date";
  361. }
  362. }
  363. if ($subject == '')
  364. {
  365. $emptyFields = TRUE;
  366. $emptyErrors = $emptyErrors."<hr><strong>Subject</strong> is missing (Select or create a Subject)";
  367. }
  368. if ($emptyFields)
  369. {
  370. $msg = "ERROR";
  371. $info = $emptyErrors;
  372. $btn = "<a href=# onclick=\"
  373. document.getElementById('addTargContent').style.display = 'block';
  374. putThisThere('addTargetButton.php', 'AddTargButton');
  375. return false;\">Try again</a>?";
  376. printStatus($msg, $info, $btn, "red");
  377. }
  378. else
  379. {
  380. //Check if Subject already exists
  381. {
  382. $query = "Select count(*) FROM subjects where Subject='$subject'";
  383. $result = mysql_query($query) or die (mysql_error()) ;
  384. $result = mysql_result($result, 0);
  385. //If not, add it
  386. if ($result == 0)
  387. {
  388. $query = "INSERT INTO subjects(Subject) VALUES ('$subject')";
  389. $result = mysql_query($query) or die (mysql_error()) ;
  390. //Update Activity Table
  391. $action = "Add";
  392. $actedOn = "Subject";
  393. $actor = $_SESSION['TID'];
  394. $actedOnID = $subject;
  395. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  396. //
  397. }
  398. }
  399. $query =
  400. "SELECT Target_ID, status, start, end
  401. FROM targets
  402. WHERE
  403. Student_ID='$StudentID'
  404. AND Set_By='$TeacherID'
  405. AND Subject = '$subject'
  406. AND target_desc ='$Target'
  407. LIMIT 1";
  408. $result = mysql_query($query) or die (mysql_error()) ;
  409. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  410. {
  411. $TID = $row['Target_ID'];
  412. $status = $row['status'];
  413. $dates1 = $row['start'];
  414. $dates2 = $row['end'];
  415. $dates ="$dates1 $dates2";
  416. $dupe = TRUE;
  417. }
  418. if (isset($dupe))
  419. {
  420. $msg = "ERROR";
  421. $info = "Target <strong>not</strong> added to the database
  422. <br>Reason: This target already exists for this student
  423. <br>Its current status is: <strong>".$status."</strong>
  424. <br> The date(s) associated to this target are: <strong>".$dates."</strong>";
  425. $btn = "<a href=# onclick=\"
  426. document.getElementById('target_desc').value='';
  427. document.getElementById('addTargContent').style.display = 'block';
  428. putThisThere('addTargetButton.php', 'AddTargButton');
  429. return false;\">Add a different target</a>?";
  430. printStatus($msg, $info, $btn, "red");
  431. }
  432. else
  433. {
  434. $query = "SELECT max(Target_ID) FROM targets";
  435. $result = mysql_query($query) or die (mysql_error());
  436. $TID = mysql_result($result, 0);
  437. $TID +=1;
  438. $actor = $_SESSION['TID'];
  439. $d8time=date("Y-m-d H:i:s");
  440. //Add Target
  441. $query = "INSERT INTO targets(Target_ID, Student_ID, set_by, subject, target_desc, start, modder, timestamp, status, note) VALUES('$TID', '$StudentID', '$TeacherID', '$subject', '$Target', '$DateSet', '$actor', '$d8time', 'Ongoing', '$note')";
  442. $result = mysql_query($query) or die (mysql_error()) ;
  443. // Copy to Archive
  444. ArchiveTarget($TID);
  445. //Update Activity Table
  446. $action = "Add";
  447. $actedOn = "Target";
  448. $actor = $_SESSION['TID'];
  449. $actedOnID = $TID;
  450. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  451. //
  452. if ($repeatDesc=='false')
  453. {$targetBit = "document.getElementById('target_desc').value='';
  454. document.getElementById('Subject_Select_xml_addTarg').value='';
  455. document.getElementById('Subject_idx_addTarg').value='';";}
  456. else
  457. {$targetBit = "";}
  458. $msg ="SUCCESS";
  459. $info ="<strong>$subject</strong> target successfully added";
  460. $btn="<a href=# onclick=\"
  461. $targetBit
  462. document.getElementById('Student_idx_addTarg').value='';
  463. document.getElementById('target_note_add').value='';
  464. document.getElementById('Student_Select_xml_addTarg').value='';
  465. document.getElementById('addTargContent').style.display = 'block';
  466. putThisThere('addTargetButton.php', 'AddTargButton');
  467. return false;\">Add another</a>?";
  468. printStatus($msg, $info, $btn);
  469. }
  470. }
  471. } else sessionError();
  472. break;
  473. case "Student":
  474. if ($seshRights>3){
  475. $emptyFields = FALSE;
  476. $emptyErrors = "";
  477. // Get Vars
  478. $firstname= (sanitize_sql_string($_GET['firstname']));
  479. $lastname=(sanitize_sql_string($_GET['lastname']));
  480. $class=(sanitize_sql_string($_GET['class']));
  481. $DOB=(sanitize_sql_string($_GET['DOB']));
  482. $DOR=(sanitize_sql_string($_GET['DOR']));
  483. $status=(sanitize_sql_string($_GET['status']));
  484. $skipped=intval(sanitize_sql_string($_GET['skipped']));
  485. if ($firstname == '')
  486. {
  487. $emptyFields = TRUE;
  488. $emptyErrors = $emptyErrors."<hr>First name is missing";
  489. }
  490. if ($lastname == '')
  491. {
  492. $emptyFields = TRUE;
  493. $emptyErrors = $emptyErrors."<hr>Last name is missing";
  494. }
  495. if ($class == '')
  496. {
  497. $emptyFields = TRUE;
  498. $emptyErrors = $emptyErrors."<hr>Class is missing";
  499. }
  500. if ($DOB == '')
  501. {
  502. $emptyFields = TRUE;
  503. $emptyErrors = $emptyErrors."<hr>Date of Birth is missing";
  504. }
  505. else
  506. {
  507. if (!(isValidDate($DOB)))
  508. {
  509. $emptyFields = TRUE;
  510. $emptyErrors = $emptyErrors."<hr>Date of Birth: $DOB is not a valid date";
  511. }
  512. }
  513. if ($DOR == '')
  514. {
  515. $emptyFields = TRUE;
  516. $emptyErrors = $emptyErrors."<hr>Date of Registration is missing";
  517. }
  518. else
  519. {
  520. if (!(isValidDate($DOR)))
  521. {
  522. $emptyFields = TRUE;
  523. $emptyErrors = $emptyErrors."<hr>Registration Date: $DOR is not a valid date";
  524. }
  525. }
  526. if ($status == '')
  527. {
  528. $emptyFields = TRUE;
  529. $emptyErrors = $emptyErrors."<hr>Status information is missing";
  530. }
  531. if (!(($status == 'Active') || ($status == 'Dropped') || ($status == 'Left')))
  532. {
  533. $emptyFields = TRUE;
  534. $emptyErrors = $emptyErrors."<hr><strong>$status</strong> is not a valid status.";
  535. }
  536. if (($skipped < -1 ) || ($skipped > 5))
  537. {
  538. $emptyFields = TRUE;
  539. $emptyErrors = $emptyErrors."<hr>Are you sure the student has skipped <strong>$skipped</strong> years?";
  540. }
  541. if ($emptyFields)
  542. {
  543. $msg = "ERROR";
  544. $info = $emptyErrors;
  545. $btn = "<a href=#
  546. onclick=\"
  547. document.getElementById('addStudeContent').style.display = 'block';
  548. putThisThere('addStudentButton.php', 'AddStudentButton');
  549. return false;\">Try again?</a>";
  550. printStatus($msg, $info, $btn, "red");
  551. }
  552. else
  553. {
  554. // Check if person already exists
  555. $query = "Select count(*) from students where LOWER(First_name)=LOWER('$firstname') AND LOWER(last_name)=LOWER('$lastname') and DOB = '$DOB' and class ='$class'";
  556. $result = mysql_query($query) or die (mysql_error()) ;
  557. $result = mysql_result($result, 0);
  558. if ($result != 0)
  559. {
  560. $msg = "ERROR";
  561. $info = "A Student named <strong>$firstname $lastname</strong> in class <strong>$class</strong> with Date of Birth: <strong>$DOB</strong> already exists in the database.
  562. <br>If you wish to add another student with the same name, DOB and class add their middle initial after their first name";
  563. $btn = "<a href=# onclick=\"
  564. document.getElementById('addStudeContent').style.display = 'block';
  565. putThisThere('addStudentButton.php', 'AddStudentButton');
  566. return false;\">Try again?</a>";
  567. printStatus($msg, $info, $btn, "red");
  568. }
  569. else
  570. {
  571. // Create UID based on name
  572. $UID = substr($firstname, 0,3).substr($lastname, 0, 3)."_".$class;
  573. // Check UID is unique, if not make unique
  574. $UID = checkUID($UID, "students", "Student_ID");
  575. $Dobmod=intval(substr($DOB,0,4));
  576. $Dobmod=$Dobmod - $skipped;
  577. $Dobmod = $Dobmod.(substr($DOB,4,6));
  578. $timestamp = date("Y-m-d H:i:s");
  579. $query = "INSERT INTO students(student_ID, first_name, last_name, class, DOB, reg_date, DOBmod, lastModDate) VALUES('$UID', '$firstname', '$lastname' , '$class', '$DOB', '$DOR', '$Dobmod', '$timestamp' ) ";
  580. $result = mysql_query($query) or die (mysql_error()) ;
  581. /// ACTIVITY UPDATE ///
  582. $action = "Add";
  583. $actedOn = "Student";
  584. $actor = $_SESSION['TID'];
  585. $actedOnID = $UID;
  586. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  587. //////////////////////
  588. //STATUS MESSAGE AND LINK//
  589. $msg = "SUCCESS";
  590. $info = "Student named <strong> $firstname $lastname (DOB:$DOB) </strong> has been successfully added to the database";
  591. $btn = "<a href=# onclick=\"
  592. document.getElementById('Stu_FirstName').value ='';
  593. document.getElementById('Stu_LastName').value='';
  594. document.getElementById('ClassLet').value = '';
  595. document.getElementById('add_student_status').value = 'Active';
  596. document.getElementById('add_skipped_years').value = '0';
  597. document.getElementById('addStudeContent').style.display = 'block';
  598. putThisThere('addStudentButton.php', 'AddStudentButton');
  599. return false;\">Add another</a>?";
  600. printStatus($msg, $info, $btn);
  601. ///////////////////////////
  602. }
  603. }
  604. } else sessionError();
  605. break;
  606. case "editStudent":
  607. if ($seshRights>3){
  608. $emptyFields = FALSE;
  609. $emptyErrors = "";
  610. // Get Vars
  611. $stu_ID= (sanitize_sql_string($_GET['idx']));
  612. $firstname= (sanitize_sql_string($_GET['firstname']));
  613. $lastname=(sanitize_sql_string($_GET['lastname']));
  614. $class=(sanitize_sql_string($_GET['class']));
  615. $DOB=(sanitize_sql_string($_GET['DOB']));
  616. $DOR=(sanitize_sql_string($_GET['DOR']));
  617. $status=(sanitize_sql_string($_GET['status']));
  618. $skipped=intval(sanitize_sql_string($_GET['skipped']));
  619. if ($stu_ID == '')
  620. {
  621. $emptyFields = TRUE;
  622. $emptyErrors = $emptyErrors."<hr>Student ID is missing";
  623. }
  624. if ($firstname == '')
  625. {
  626. $emptyFields = TRUE;
  627. $emptyErrors = $emptyErrors."<hr>First name is missing";
  628. }
  629. if ($lastname == '')
  630. {
  631. $emptyFields = TRUE;
  632. $emptyErrors = $emptyErrors."<hr>Last name is missing";
  633. }
  634. if ($class == '')
  635. {
  636. $emptyFields = TRUE;
  637. $emptyErrors = $emptyErrors."<hr>Class is missing";
  638. }
  639. if ($DOB == '')
  640. {
  641. $emptyFields = TRUE;
  642. $emptyErrors = $emptyErrors."<hr>Date of Birth is missing";
  643. }
  644. else
  645. {
  646. if (!(isValidDate($DOB)))
  647. {
  648. $emptyFields = TRUE;
  649. $emptyErrors = $emptyErrors."<hr>Date of Birth: $DOB is not a valid date";
  650. }
  651. }
  652. if ($DOR == '')
  653. {
  654. $emptyFields = TRUE;
  655. $emptyErrors = $emptyErrors."<hr>Date of Registration is missing";
  656. }
  657. else
  658. {
  659. if (!(isValidDate($DOR)))
  660. {
  661. $emptyFields = TRUE;
  662. $emptyErrors = $emptyErrors."<hr>Registration Date: $DOR is not a valid date";
  663. }
  664. }
  665. if ($status == '')
  666. {
  667. $emptyFields = TRUE;
  668. $emptyErrors = $emptyErrors."<hr>Status information is missing";
  669. }
  670. if (!(($status == 'Active') || ($status == 'Dropped') || ($status == 'Left')))
  671. {
  672. $emptyFields = TRUE;
  673. $emptyErrors = $emptyErrors."<hr><strong>$status</strong> is not a valid status.";
  674. }
  675. if (($skipped < -1 ) || ($skipped > 5))
  676. {
  677. $emptyFields = TRUE;
  678. $emptyErrors = $emptyErrors."<hr>Are you sure the student has skipped <strong>$skipped</strong> years?";
  679. }
  680. if ($emptyFields)
  681. {
  682. $msg = "ERROR";
  683. $info = $emptyErrors;
  684. $btn = "<a href=#
  685. onclick=\"
  686. document.getElementById('editStudeContent').style.display = 'block';
  687. putThisThere('editStudentButton.php', 'editStudentButton');
  688. return false;\">Try again?</a>";
  689. printStatus($msg, $info, $btn, "red");
  690. }
  691. else
  692. {
  693. // Check if person already exists
  694. $query =
  695. "Select
  696. count(*)
  697. FROM
  698. students
  699. WHERE
  700. LOWER(First_name)=LOWER('$firstname')
  701. AND LOWER(last_name)=LOWER('$lastname')
  702. AND DOB = '$DOB'
  703. AND class ='$class'
  704. AND student_ID!='$stu_ID'";
  705. $result = mysql_query($query) or die (mysql_error()) ;
  706. $result = mysql_result($result, 0);
  707. if ($result != 0)
  708. {
  709. $msg = "ERROR";
  710. $info = "A Student named <strong>$firstname $lastname</strong> in class <strong>$class</strong> with Date of Birth: <strong>$DOB</strong> already exists in the database.
  711. <br>If you wish to add another student with the same name, DOB and class add their middle initial after their first name";
  712. $btn = "<a href=# onclick=\"
  713. document.getElementById('addStudeContent').style.display = 'block';
  714. putThisThere('editStudentButton.php', 'editStudentButton');
  715. return false;\">Try again?</a>";
  716. printStatus($msg, $info, $btn, "red");
  717. }
  718. else
  719. {
  720. $Dobmod=intval(substr($DOB,0,4));
  721. $Dobmod=$Dobmod - $skipped;
  722. $Dobmod = $Dobmod.(substr($DOB,4,6));
  723. $timestamp = date("Y-m-d H:i:s");
  724. $query =
  725. "UPDATE
  726. students
  727. SET
  728. first_name='$firstname',
  729. last_name='$lastname',
  730. class='$class',
  731. DOB='$DOB' ,
  732. reg_date='$DOR',
  733. DOBmod='$Dobmod',
  734. Stat='$status',
  735. lastModDate ='$timestamp'
  736. WHERE
  737. student_ID='$stu_ID'";
  738. $result = mysql_query($query) or die (mysql_error()) ;
  739. /// ACTIVITY UPDATE ///
  740. $action = "Edit";
  741. $actedOn = "Student";
  742. $actor = $_SESSION['TID'];
  743. $actedOnID = $stu_ID;
  744. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  745. //////////////////////
  746. //STATUS MESSAGE AND LINK//
  747. $msg = "SUCCESS";
  748. $info = "New details for Student named <strong> $firstname $lastname (DOB:$DOB) </strong> saved.";
  749. $btn = "<a href=# onclick=\"
  750. document.getElementById('Student_Select_xml').value = '$firstname $lastname';
  751. showResultsOr('$stu_ID',
  752. 'Student',
  753. '$firstname $lastname',
  754. document.Arc.Opts[0].checked,
  755. document.Arc.Opts[1].checked,
  756. document.Arc.Opts[2].checked,
  757. document.Arc.Opts[3].checked,
  758. document.Arc.Opts[4].checked,
  759. 'Student_Result_Div');
  760. HideAlert('editStude');
  761. return false;\">Close</a>";
  762. printStatus($msg, $info, $btn);
  763. ///////////////////////////
  764. }
  765. }
  766. }
  767. else sessionError();
  768. break;
  769. case "Teacher":
  770. if ($seshRights>3){
  771. $emptyFields = FALSE;
  772. $emptyErrors = "";
  773. // Get Vars
  774. $teach_firstname= (sanitize_sql_string($_GET['firstname']));
  775. $teach_lastname=(sanitize_sql_string($_GET['lastname']));
  776. $teach_title=(sanitize_sql_string($_GET['title']));
  777. $raw_email=$_GET['email'];
  778. $teach_email=(sanitize_sql_string($_GET['email']));
  779. $teach_pass=(sanitize_sql_string($_GET['pass']));
  780. $teach_status=(sanitize_sql_string($_GET['status']));
  781. $teach_rights=(sanitize_sql_string($_GET['rights']));
  782. if ($teach_firstname == '')
  783. {
  784. $emptyFields = TRUE;
  785. $emptyErrors = $emptyErrors."<hr>First name is missing";
  786. }
  787. if ($teach_lastname == '')
  788. {
  789. $emptyFields = TRUE;
  790. $emptyErrors = $emptyErrors."<hr>Last name is missing";
  791. }
  792. if ($teach_title == '')
  793. {
  794. $emptyFields = TRUE;
  795. $emptyErrors = $emptyErrors."<hr>Title is missing";
  796. }
  797. if ($teach_email == '')
  798. {
  799. $emptyFields = TRUE;
  800. $emptyErrors = $emptyErrors."<hr>E-mail address is missing";
  801. }
  802. else
  803. {
  804. include('_inc_EmailAddressValidator.php');
  805. $validator = new EmailAddressValidator;
  806. if (!($validator->check_email_address($raw_email)))
  807. {
  808. $emptyFields = TRUE;
  809. $emptyErrors = $emptyErrors."<hr><strong>$raw_email</strong> is not a valid E-mail address";
  810. }
  811. else
  812. {
  813. $query = "SELECT title, first_name, last_name
  814. FROM teachers
  815. WHERE LOWER(email) = LOWER('$teach_email')
  816. LIMIT 1";
  817. $result = mysql_query($query) or die (mysql_error());
  818. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  819. {
  820. $t = $row['title'];
  821. $fn = $row['first_name'];
  822. $ln = $row['last_name'];
  823. $emptyFields = TRUE;
  824. $emptyErrors = $emptyErrors."<hr><strong>$teach_email</strong> already in use by <strong>$t $fn $ln</strong>";
  825. }
  826. }
  827. }
  828. if ($teach_pass == '')
  829. {
  830. $emptyFields = TRUE;
  831. $emptyErrors = $emptyErrors."<hr>Blank passwords are not allowed";
  832. }
  833. if ($teach_status == '')
  834. {
  835. $emptyFields = TRUE;
  836. $emptyErrors = $emptyErrors."<hr>Status Information is missing";
  837. }
  838. if ($teach_rights == '')
  839. {
  840. $emptyFields = TRUE;
  841. $emptyErrors = $emptyErrors."<hr>Access Rights Information is missing";
  842. }
  843. if ($emptyFields)
  844. {
  845. $msg = "ERROR";
  846. $info = $emptyErrors;
  847. $btn = "<a href=#
  848. onclick=\"
  849. document.getElementById('addTeachContent').style.display = 'block';
  850. putThisThere('addTeacherButton.php', 'AddTeacherButton');
  851. return false;\">Try again?</a>";
  852. printStatus($msg, $info, $btn, "red");
  853. }
  854. else
  855. {
  856. // Check if person already exists
  857. $query = "Select count(*) from teachers where First_name='$teach_firstname' AND last_name='$teach_lastname'";
  858. $result = mysql_query($query) or die (mysql_error()) ;
  859. $result = mysql_result($result, 0);
  860. if ($result != 0)
  861. {
  862. $msg = "ERROR";
  863. $info = "A teacher named <strong>$teach_firstname $teach_lastname </strong> already exists in the database.<br><small>If you wish to add another teacher with the same name add their middle initial (or the class taught by this teacher) as part of their first name</small>";
  864. $btn = "<a href=#
  865. onclick=\"
  866. document.getElementById('addTeachContent').style.display = 'block';
  867. putThisThere('addTeacherButton.php', 'AddTeacherButton');
  868. return false;\">Try again?</a>";
  869. printStatus($msg, $info, $btn, "red");
  870. }
  871. else
  872. {
  873. // Create UID based on name
  874. $UID = substr($teach_firstname, 0,3).substr($teach_lastname, 0, 3);
  875. // Check UID is unique, if not make unique
  876. $UID = checkUID($UID, "teachers", "Teacher_ID");
  877. $timestamp = date("Y-m-d H:i:s");
  878. $query = "INSERT INTO teachers (teacher_ID, first_name, last_name, title, email, pwd, stat, rights, Status_change_date ) VALUES('$UID', '$teach_firstname', '$teach_lastname' , '$teach_title', '$teach_email', '$teach_pass', '$teach_status', '$teach_rights', '$timestamp' ) ";
  879. $result = mysql_query($query) or die (mysql_error()) ;
  880. /// ACTIVITY UPDATE ///
  881. $action = "Add";
  882. $actedOn = "Teacher";
  883. $actor = $_SESSION['TID'];
  884. $actedOnID = $UID;
  885. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  886. //////////////////////
  887. //STATUS MESSAGE AND LINK//
  888. $msg = "SUCCESS";
  889. $info = "Teacher named <strong>$teach_title $teach_firstname $teach_lastname</strong> has been successfully added to the database";
  890. $btn = "<a href=#
  891. onclick=\"
  892. document.getElementById('Teach_FirstName').value = '';
  893. document.getElementById('Teach_LastName').value = '';
  894. document.getElementById('Teach_Title').value = '';
  895. document.getElementById('Teach_Pass').value = '';
  896. document.getElementById('Teach_Email').value = '';
  897. document.getElementById('Teach_Status').value = 1;
  898. document.getElementById('Teach_Rights').value = 3;
  899. document.getElementById('addTeachContent').style.display = 'block';
  900. putThisThere('addTeacherButton.php', 'AddTeacherButton');
  901. return false;\">Add another</a>?";
  902. printStatus($msg, $info, $btn);
  903. ///////////////////////////
  904. }
  905. }
  906. }
  907. else sessionError();
  908. break;
  909. case "editTeacher":
  910. if ($seshRights>3){
  911. $emptyFields = FALSE;
  912. $emptyErrors = "";
  913. // Get Vars
  914. $teach_ID = (sanitize_sql_string($_GET['idx']));
  915. $teach_firstname= (sanitize_sql_string($_GET['firstname']));
  916. $teach_lastname=(sanitize_sql_string($_GET['lastname']));
  917. $teach_title=(sanitize_sql_string($_GET['title']));
  918. $raw_email=$_GET['email'];
  919. $teach_email=(sanitize_sql_string($_GET['email']));
  920. $teach_pass=(sanitize_sql_string($_GET['pass']));
  921. $teach_status=(sanitize_sql_string($_GET['status']));
  922. $teach_rights=(sanitize_sql_string($_GET['rights']));
  923. if ($teach_ID == '')
  924. {
  925. $emptyFields = TRUE;
  926. $emptyErrors = $emptyErrors."<hr>Teacher ID is missing";
  927. }
  928. if ($teach_firstname == '')
  929. {
  930. $emptyFields = TRUE;
  931. $emptyErrors = $emptyErrors."<hr>First name is missing";
  932. }
  933. if ($teach_lastname == '')
  934. {
  935. $emptyFields = TRUE;
  936. $emptyErrors = $emptyErrors."<hr>Last name is missing";
  937. }
  938. if ($teach_title == '')
  939. {
  940. $emptyFields = TRUE;
  941. $emptyErrors = $emptyErrors."<hr>Title is missing";
  942. }
  943. if ($teach_email == '')
  944. {
  945. $emptyFields = TRUE;
  946. $emptyErrors = $emptyErrors."<hr>E-mail address is missing";
  947. }
  948. else
  949. {
  950. include('_inc_EmailAddressValidator.php');
  951. $validator = new EmailAddressValidator;
  952. if (!($validator->check_email_address($raw_email)))
  953. {
  954. $emptyFields = TRUE;
  955. $emptyErrors = $emptyErrors."<hr><strong>$raw_email</strong> is not a valid E-mail address";
  956. }
  957. else
  958. {
  959. $query =
  960. "SELECT
  961. title,
  962. first_name,
  963. last_name
  964. FROM
  965. teachers
  966. WHERE
  967. LOWER(email) = LOWER('$teach_email')
  968. AND Teacher_ID!='$teach_ID'
  969. LIMIT 1";
  970. $result = mysql_query($query) or die (mysql_error());
  971. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  972. {
  973. $t = $row['title'];
  974. $fn = $row['first_name'];
  975. $ln = $row['last_name'];
  976. $emptyFields = TRUE;
  977. $emptyErrors = $emptyErrors."<hr><strong>$teach_email</strong> already in use by <strong>$t $fn $ln</strong>";
  978. }
  979. }
  980. }
  981. if ($teach_pass == '')
  982. {
  983. $emptyFields = TRUE;
  984. $emptyErrors = $emptyErrors."<hr>Blank passwords are not allowed";
  985. }
  986. if ($teach_status == '')
  987. {
  988. $emptyFields = TRUE;
  989. $emptyErrors = $emptyErrors."<hr>Status Information is missing";
  990. }
  991. if ($teach_rights == '')
  992. {
  993. $emptyFields = TRUE;
  994. $emptyErrors = $emptyErrors."<hr>Access Rights Information is missing";
  995. }
  996. if ($emptyFields)
  997. {
  998. $msg = "ERROR";
  999. $info = $emptyErrors;
  1000. $btn = "<a href=#
  1001. onclick=\"
  1002. document.getElementById('editTeachContent').style.display = 'block';
  1003. putThisThere('editTeacherButton.php', 'editTeacherButton');
  1004. return false;\">Try again?</a>";
  1005. printStatus($msg, $info, $btn, "red");
  1006. }
  1007. else
  1008. {
  1009. // Check if person already exists
  1010. $query = "SELECT
  1011. count(*)
  1012. FROM
  1013. teachers
  1014. WHERE
  1015. First_name='$teach_firstname'
  1016. AND last_name='$teach_lastname'
  1017. AND Teacher_ID!='$teach_ID'";
  1018. $result = mysql_query($query) or die (mysql_error()) ;
  1019. $result = mysql_result($result, 0);
  1020. if ($result != 0)
  1021. {
  1022. $msg = "ERROR";
  1023. $info = "A teacher named <strong>$teach_firstname $teach_lastname </strong> already exists in the database.<br><small>If you wish to add another teacher with the same name add their middle initial (or the class taught by this teacher) as part of their first name</small>";
  1024. $btn = "<a href=#
  1025. onclick=\"
  1026. document.getElementById('editTeachContent').style.display = 'block';
  1027. putThisThere('editTeacherButton.php', 'editTeacherButton');
  1028. return false;\">Try again?</a>";
  1029. printStatus($msg, $info, $btn, "red");
  1030. }
  1031. else
  1032. {
  1033. $timestamp = date("Y-m-d H:i:s");
  1034. $query =
  1035. "UPDATE
  1036. teachers
  1037. SET
  1038. first_name='$teach_firstname',
  1039. last_name='$teach_lastname',
  1040. title='$teach_title',
  1041. email='$teach_email',
  1042. pwd='$teach_pass',
  1043. stat='$teach_status',
  1044. rights='$teach_rights',
  1045. Status_change_date='$timestamp'
  1046. WHERE
  1047. Teacher_ID='$teach_ID'";
  1048. $result = mysql_query($query) or die (mysql_error()) ;
  1049. /// ACTIVITY UPDATE ///
  1050. $action = "Edit";
  1051. $actedOn = "Teacher";
  1052. $actor = $_SESSION['TID'];
  1053. $actedOnID = $teach_ID;
  1054. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  1055. //////////////////////
  1056. //STATUS MESSAGE AND LINK//
  1057. $msg = "SUCCESS";
  1058. $info = "Information successfully modified for teacher named <strong>$teach_title $teach_firstname $teach_lastname</strong>";
  1059. $btn = "<a href=#
  1060. onclick=
  1061. \"document.getElementById('editTeach_ID').value = '';
  1062. document.getElementById('editTeach_FirstName').value = '';
  1063. document.getElementById('editTeach_LastName').value = '';
  1064. document.getElementById('editTeach_Title').value = '';
  1065. document.getElementById('editTeach_Pass').value = '';
  1066. document.getElementById('editTeach_Email').value = '';
  1067. document.getElementById('editTeach_Status').value = '1';
  1068. document.getElementById('editTeach_Rights').value = '3';
  1069. document.getElementById('Teacher_Select_xml').value = '$teach_firstname $teach_lastname';
  1070. showResultsOr('$teach_ID',
  1071. 'Teacher',
  1072. '$teach_firstname $teach_lastname',
  1073. document.Arc.Opts[0].checked,
  1074. document.Arc.Opts[1].checked,
  1075. document.Arc.Opts[2].checked,
  1076. document.Arc.Opts[3].checked,
  1077. document.Arc.Opts[4].checked,
  1078. 'Teacher_Result_Div');
  1079. HideAlert('editTeach');
  1080. return false;\">Close</a>";
  1081. printStatus($msg, $info, $btn);
  1082. ///////////////////////////
  1083. }
  1084. }
  1085. }
  1086. else sessionError();
  1087. break;
  1088. case "editMe":
  1089. $emptyFields = FALSE;
  1090. $emptyErrors = "";
  1091. // Get Vars
  1092. $teachID = $_SESSION['TID'];
  1093. $email = (sanitize_sql_string($_GET['em']));
  1094. $pass= (sanitize_sql_string($_GET['pas']));
  1095. $passo=(sanitize_sql_string($_GET['paso']));
  1096. $passn=(sanitize_sql_string($_GET['pasn']));
  1097. $raw_email=$_GET['em'];
  1098. if (($passo == '') && ($pass == ''))
  1099. {
  1100. $emptyFields = TRUE;
  1101. $emptyErrors = $emptyErrors."<hr>Your Password is required to modify your login details.";
  1102. }
  1103. else
  1104. {
  1105. $passToCheck = mt_rand();
  1106. $passToCheck =
  1107. md5(md5($passToCheck)
  1108. .$passToCheck)
  1109. .$passToCheck
  1110. .md5(mt_rand())
  1111. .mt_rand();
  1112. $passToCheck = ($pass != '') ? $pass : $passToCheck;
  1113. $passToCheck = ($passo != '') ? $passo : $passToCheck;
  1114. $query =
  1115. "SELECT count(pwd)
  1116. FROM teachers
  1117. WHERE
  1118. Teacher_ID='$teachID'
  1119. AND
  1120. LOWER(pwd)=LOWER('$passToCheck')
  1121. LIMIT 1";
  1122. $result = mysql_query($query) or die (mysql_error()) ;
  1123. $pz = mysql_result($result, 0);
  1124. if ($pz < 1)
  1125. {
  1126. $emptyFields = TRUE;
  1127. $emptyErrors = $emptyErrors."<hr>The password you have entered is incorrect";
  1128. }
  1129. }
  1130. if ($passn=='')
  1131. {
  1132. if ($passo!='')
  1133. {
  1134. $emptyFields = TRUE;
  1135. $emptyErrors = $emptyErrors."<hr>Blank passwords are not allowed";
  1136. }
  1137. else
  1138. {
  1139. $query =
  1140. "SELECT pwd
  1141. FROM teachers
  1142. WHERE Teacher_ID='$teachID'
  1143. LIMIT 1";
  1144. $result = mysql_query($query) or die (mysql_error()) ;
  1145. $passn = mysql_result($result, 0);
  1146. }
  1147. }
  1148. if ($email == '')
  1149. {
  1150. $query =
  1151. "SELECT email
  1152. FROM teachers
  1153. WHERE Teacher_ID='$teachID'
  1154. LIMIT 1";
  1155. $result = mysql_query($query) or die (mysql_error()) ;
  1156. $email = mysql_result($result, 0);
  1157. }
  1158. else
  1159. {
  1160. include('_inc_EmailAddressValidator.php');
  1161. $validator = new EmailAddressValidator;
  1162. if (!($validator->check_email_address($raw_email)))
  1163. {
  1164. $emptyFields = TRUE;
  1165. $emptyErrors = $emptyErrors."<hr><strong>$raw_email</strong> is not a valid E-mail address";
  1166. }
  1167. else
  1168. {
  1169. $query =
  1170. "SELECT
  1171. title,
  1172. first_name,
  1173. last_name
  1174. FROM
  1175. teachers
  1176. WHERE
  1177. LOWER(email) = LOWER('$email')
  1178. AND Teacher_ID!='$teachID'
  1179. LIMIT 1";
  1180. $result = mysql_query($query) or die (mysql_error());
  1181. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  1182. {
  1183. $t = $row['title'];
  1184. $fn = $row['first_name'];
  1185. $ln = $row['last_name'];
  1186. $emptyFields = TRUE;
  1187. $emptyErrors = $emptyErrors."<hr><strong>$raw_email</strong> already in use by <strong>$t $fn $ln</strong>";
  1188. }
  1189. }
  1190. }
  1191. if ($emptyErrors == '')
  1192. {
  1193. $timestamp = date("Y-m-d H:i:s");
  1194. $query =
  1195. "UPDATE
  1196. teachers
  1197. SET
  1198. email='$email',
  1199. pwd='$passn',
  1200. Status_change_date='$timestamp'
  1201. WHERE
  1202. Teacher_ID='$teachID'";
  1203. $result = mysql_query($query) or die (mysql_error()) ;
  1204. /// ACTIVITY UPDATE ///
  1205. $action = "Edit";
  1206. $actedOn = "Teacher";
  1207. $actor = $_SESSION['TID'];
  1208. $actedOnID = $teachID;
  1209. ActivityUpdate($action, $actedOn, $actor, $actedOnID);
  1210. //////////////////////
  1211. //STATUS MESSAGE AND LINK//
  1212. $msg = "SUCCESS";
  1213. $info = "<b>$email</b> : Your login information has been successfully modified.</strong>";
  1214. $btn = "<a href=#
  1215. onclick=
  1216. \"document.getElementById('editMeButton').innerHTML='';
  1217. HideAlert('editMe');
  1218. return false;\">Close</a>";
  1219. printStatus($msg, $info, $btn);
  1220. }
  1221. else
  1222. {
  1223. $msg = "ERROR";
  1224. $info = $emptyErrors;
  1225. $btn = "<a href=#
  1226. onclick=\"
  1227. document.getElementById('editMeContent').style.display = 'block';
  1228. document.getElementById('editMeButton').style.display = 'none';
  1229. return false;\">Try again?</a>";
  1230. printStatus($msg, $info, $btn, "red");
  1231. }
  1232. break;
  1233. case "remindMe":
  1234. $query = "SELECT email, pwd
  1235. FROM teachers
  1236. WHERE Teacher_ID='".$_SESSION['TID']."'
  1237. LIMIT 1";
  1238. $result = mysql_query($query) or die (mysql_error());
  1239. while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  1240. {
  1241. $em = $row['email'];
  1242. $pw = $row['pwd'];
  1243. }
  1244. $Name = "Gifted and Talented DataBase"; //senders name
  1245. $email = "GiftednTalented@pembridgehall.co.uk"; //senders e-mail adress
  1246. $recipient = $em; //recipient
  1247. $replyto = "ann-marie.walsh@pembridgehall.co.uk";
  1248. $mail_body = "A password reminder was requested for the Gifted and Talented database from your account. Your password is $pw. If you believe you have received this email in error, please contact the database administrator."; //mail body
  1249. $subject = "Gifted and Talented Reminder"; //subject
  1250. $header = "From: ". $Name . " <" . $email . ">\r\n".
  1251. "Reply-To: $replyto \r\n" .
  1252. "X-Mailer: PHP/" . phpversion();
  1253. // Optional, use if doesn't work
  1254. ini_set('sendmail_from', 'emamio@moran.dreamhost.com'); //Suggested by "Some Guy"
  1255. //
  1256. mail($recipient, $subject, $mail_body, $header);
  1257. //STATUS MESSAGE AND LINK//
  1258. $msg = "SUCCESS";
  1259. $info = "Password reminder sent to <b>$em<b>";
  1260. $btn = "<a href=#
  1261. onclick=
  1262. \"document.getElementById('editMeButton').innerHTML='';
  1263. HideAlert('editMe');
  1264. return false;\">Close</a>";
  1265. printStatus($msg, $info, $btn);
  1266. break;
  1267. default: return false;
  1268. }
  1269. /*
  1270. document.getElementById('SpecSubj').value='';
  1271. document.getElementById('SubjAdd').innerHTML='';
  1272. */
  1273. //include ('_inc_closeDB.php');
  1274. }
  1275. else sessionError();
  1276. ?>