First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
$ValidAccess = 2010;
|
||||
require_once("include/globals.php");
|
||||
|
||||
|
||||
if (SessionActive() != 1 || ! UserLoggedIn()) {
|
||||
logExit("Session is not active\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
include "include/ajax.csrfToken.php";
|
||||
|
||||
|
||||
|
||||
// Set default timezone
|
||||
date_default_timezone_set("Canada/Pacific");
|
||||
$now = date("Y-m-d H:i:s",time());
|
||||
|
||||
$return_data = array();
|
||||
|
||||
$moduleName = "ajax.SearchDBFields.php";
|
||||
// startLog($moduleName);
|
||||
|
||||
|
||||
// Get parameters
|
||||
if (array_key_exists('table_name', $_GET)) $table_name = db_escape_string($_GET['table_name']);
|
||||
if (array_key_exists('field_names', $_GET)) $field_names = db_escape_string($_GET['field_names']);
|
||||
if (array_key_exists('term', $_GET)) $term = db_escape_string($_GET['term']);
|
||||
if (array_key_exists('term', $_GET)) $term = $_GET['term'];
|
||||
|
||||
|
||||
// Ensure parameters are valid
|
||||
if (!is_numeric($school_num)) logExit("School num is not numeric\n");
|
||||
if ($school_num == 0) logExit("school_num is zero\n");
|
||||
if (!isset($table_name)) logExit("ajax.SearchDBFields.php - table_name is not set");
|
||||
if (!isset($field_names)) logExit("ajax.SearchDBFields.php - field_names is not set");
|
||||
|
||||
writeLog("table_name: $table_name\n");
|
||||
writeLog("field_names: $field_names\n");
|
||||
writeLog("term: $term\n");
|
||||
|
||||
$fields = explode(',', $field_names);
|
||||
|
||||
|
||||
$terms = array();
|
||||
|
||||
// Encode \" to something else temporary
|
||||
$str = $term;
|
||||
$str_encoded_quotes = strtr($str,array('\\"'=>'####'));
|
||||
|
||||
// Split by strings between double-quotes
|
||||
$str_arr = preg_split('/("[^"]*")/',$str_encoded_quotes,-1,PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
foreach ($str_arr as $substr) {
|
||||
|
||||
// If value is a dot or a space, do nothing
|
||||
if (!preg_match('/^[\s\.]$/',$substr)) {
|
||||
|
||||
// If value is between double-quotes, it's a string
|
||||
// Return as is
|
||||
if (preg_match('/^"(.*)"$/',$substr)) {
|
||||
$substr = preg_replace('/^"(.*)"$/','\1',$substr); // Remove double-quotes around
|
||||
$terms[] = strtr($substr,array('####'=>'"')); // Get escaped double-quotes back inside the string
|
||||
|
||||
// Else, it must be splitted
|
||||
} else {
|
||||
// Split by dot or space
|
||||
$substr_arr = preg_split('/[\.\s]/',$substr,-1,PREG_SPLIT_NO_EMPTY);
|
||||
foreach ($substr_arr as $subsubstr)
|
||||
$terms[] = strtr($subsubstr,array('####'=>'"')); // Get escaped double-quotes back inside string
|
||||
}
|
||||
}
|
||||
// Else, it's an empty substring
|
||||
}
|
||||
|
||||
|
||||
|
||||
$where = "";
|
||||
|
||||
for ($i = 0; $i < count($fields); $i++) {
|
||||
$field = $fields[$i];
|
||||
|
||||
$wwhere = "";
|
||||
|
||||
for ($w = 0; $w < count($terms); $w++) {
|
||||
$word = db_escape_string($terms[$w]);
|
||||
if (strlen($wwhere)) $wwhere .= "AND ";
|
||||
$wwhere .= "$field LIKE '%$word%' ";
|
||||
}
|
||||
|
||||
if (strlen($where)) $where .= "OR ";
|
||||
if (strlen($wwhere)) $where .= "($wwhere) ";
|
||||
}
|
||||
|
||||
$query = "SELECT * FROM $table_name WHERE school_num = $school_num AND ($where)";
|
||||
writeLog($query);
|
||||
$results = db_query($query);
|
||||
// Format data for return
|
||||
$return_data = array();
|
||||
$num_records = db_num_rows($results);
|
||||
if ($num_records > 0) {
|
||||
writeLog("records: $num_records\n");
|
||||
$return_data[] = array();
|
||||
while ($row = db_fetch_assoc($results)) {
|
||||
$text = "";
|
||||
for ($i = 0; $i < count($fields); $i++) {
|
||||
$field = $fields[$i];
|
||||
$text .= $row[$field].' ';
|
||||
}
|
||||
|
||||
$text = trim($text);
|
||||
$record_num = $row['record_num'];
|
||||
|
||||
$return_data[] = array(
|
||||
"value" => $text,
|
||||
"record_num" => $record_num
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
writeLog("completed\n");
|
||||
echo(json_encode($return_data));
|
||||
?>
|
||||
Reference in new issue
Block a user