function search_db_fields($fieldname, $fieldvalue) { global $dbfields; if (!in_array($fieldname, $dbfields)) { return false; } init_db(); $query = "select netid from {$fieldname} where {$fieldname}='" . pg_escape_string($fieldvalue) . "' and ldap=false"; $result = pg_query($query); $retres = array(); while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) { foreach (search_db($line["netid"]) as $res) { $retres[] = $res; } } pg_free_result($result); return $retres; }
function find($query, $types) { global $dbfields; if ($query) { $types = get_appropriate_fields($query); $types["address"] = false; $types["department"] = false; $types["title"] = false; $types["shell"] = false; } $retres = array(); foreach ($dbfields as $f) { if (!isset($types[$f]) || !$types[$f]) { continue; } $r = search_db_fields($f, $types[$f]); foreach ($r as $p) { $retres[] = $p; } } if ($types["netid"]) { $results = search_db($types["netid"]); if (!$results) { $results = search_ldap(array("netid" => $types["netid"])); } if (count($results) > 0) { $retres[] = $results[0]; } $types["netid"] = false; } $lres = search_ldap($types); if ($lres) { foreach ($lres as $result) { $retres[] = $result; } } return uniq($retres); }
<?php require_once "dbutils.php"; session_start(); if (!isset($_SESSION['netid'])) { require_once 'CAS.php'; phpCAS::client(CAS_VERSION_2_0, "login.case.edu", 443, '/cas'); phpCAS::setNoCasServerValidation(); phpCAS::forceAuthentication(); $user = phpCAS::getUser(); $_SESSION['netid'] = $user; $ps = search_db($user); if (count($ps) == 0) { $query = "insert into users (netid, from_ldap) values ('" . pg_escape_string($user) . "', false)"; $result = pg_query($query); pg_free_result($result); } else { $query = "update users set from_ldap=false where netid='" . pg_escape_string($user) . "'"; $result = pg_query($query); pg_free_result($result); } header('Location: http://' . $_SERVER['HTTP_HOST'] . "/profile.php?netid={$user}"); } else { header('Location: http://' . $_SERVER['HTTP_HOST'] . '/profile.php?netid=' . $_SESSION['netid']); }
require "core-settings.php"; require "libs/ext.lib.php"; # decide what to do if (isset($_GET["id"])) { $OUTPUT = show_question($_GET["id"]); } elseif (isset($_POST["key"])) { switch ($_POST["key"]) { case "confirm": $OUTPUT = results_db(); break; default: $OUTPUT = search_db(); } } else { # Display default output $OUTPUT = search_db(); } # Get templete require "template.php"; function search_db() { $display = "\n\t\t\t<h2>Support Database Search</h2>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Search By Keyword(s) Or Question</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><input type='text' name='keyword' size='50'></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td><input type='submit' value='Search'></td>\n\t\t\t\t</tr>\n\t\t\t</form>\n\t\t\t</table>\n\t\t"; return $display; } function results_db() { global $_POST; extract($_POST); #fist we process the query #stip out unneccessary tags,etc $keyword = str_replace("?", "", $keyword);