Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
<?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);